Skip to main content

1. Create a project

curl -X POST https://nest.feather.mupeni.dev/v1/projects \
  -H "Authorization: Bearer <server_key>" \
  -H "Content-Type: application/json" \
  -d '{ "name": "My App", "slug": "my-app" }'
The API automatically seeds three environments: production, staging, and development.

2. Create a flag

curl -X POST https://nest.feather.mupeni.dev/v1/projects/<projectId>/flags \
  -H "Authorization: Bearer <server_key>" \
  -H "Content-Type: application/json" \
  -d '{
    "key": "new-checkout",
    "name": "New Checkout Flow",
    "type": "boolean"
  }'

3. Enable the flag in an environment

Grab your environmentId from the project response, then push a new flag version:
curl -X PUT https://nest.feather.mupeni.dev/v1/projects/<projectId>/environments/<envId>/flags/new-checkout \
  -H "Authorization: Bearer <server_key>" \
  -H "Content-Type: application/json" \
  -d '{
    "version": 1,
    "enabled": true,
    "defaultValue": true,
    "rules": []
  }'

4. Create an API key for the SDK

curl -X POST https://nest.feather.mupeni.dev/v1/projects/<projectId>/environments/<envId>/api-keys \
  -H "Authorization: Bearer <server_key>" \
  -H "Content-Type: application/json" \
  -d '{ "type": "server", "description": "Backend service" }'
The raw key is returned once in the response. Store it securely — it cannot be retrieved again.

5. Evaluate the flag

Install the SDK:
npm install @feather-flag/sdk
Then evaluate in your application:
import { FeatureFlagServerClient } from "@feather-flag/sdk";

const client = new FeatureFlagServerClient({ apiKey: process.env.FEATHER_FLAG_KEY });

const enabled = await client.evaluate("new-checkout", { userId: "user_123" });

if (enabled) {
  // show new checkout
}

What’s next