Skip to content

Quickstart

This walkthrough creates a project, an environment, a flag, enables it, and adds a targeting rule. It assumes you have a token. Every request needs Authorization: Bearer <your-token>; every body is Content-Type: application/json.

The base URL is https://api.featureflip.io.

List the organizations your token can access:

GET /api/v1/orgs

Note the key of the org you want to work in — you’ll use it as {org} below. You can also confirm who your token authenticates as with GET /api/v1/me.

POST /api/v1/orgs/{org}/projects
{
"key": "checkout",
"name": "Checkout",
"description": "Checkout flow experiments"
}

Response 201 Created:

{
"id": "0d2b…",
"key": "checkout",
"name": "Checkout",
"description": "Checkout flow experiments",
"createdAt": "2026-07-08T12:00:00Z",
"updatedAt": "2026-07-08T12:00:00Z",
"_actions": { "update": { "allowed": true }, "delete": { "allowed": true } }
}
POST /api/v1/orgs/{org}/projects/checkout/environments
{
"key": "production",
"name": "Production"
}
POST /api/v1/orgs/{org}/projects/checkout/flags
{
"key": "new-checkout",
"name": "New checkout",
"type": "Boolean",
"description": "Rolls out the redesigned checkout",
"clientSideVisible": false
}

Response 201 Created includes the flag’s variations (for a Boolean flag, the generated on/off variations) and an _actions block. A new flag is off in every environment until you enable it.

POST /api/v1/orgs/{org}/projects/checkout/flags/new-checkout/environments/production/toggle
{
"enabled": true
}

The toggle returns 204 No Content. To see the resulting configuration, fetch the flag’s environment config:

GET /api/v1/orgs/{org}/projects/checkout/flags/new-checkout/environments/production

Response 200 OK:

{
"environmentId": "a1c9…",
"environmentKey": "production",
"isEnabled": true,
"defaultVariationId": "",
"strategy": "SingleVariation",
"prerequisites": [],
"_actions": { "update": { "allowed": true } }
}

Serve the flag to a subset of users. This rule targets a segment; you can instead pass conditionGroups for attribute-based targeting or rolloutPercentage for a percentage rollout.

POST /api/v1/orgs/{org}/projects/checkout/flags/new-checkout/environments/production/rules
{
"description": "Beta users",
"variationId": "<on-variation-id>",
"userSegmentId": "<segment-id>",
"conditionGroups": []
}

Response 201 Created:

{
"id": "7f3a…",
"priority": 0,
"description": "Beta users",
"variationId": "<on-variation-id>",
"userSegmentId": "<segment-id>",
"rolloutPercentage": null,
"conditionGroups": [],
"_actions": { "update": { "allowed": true }, "delete": { "allowed": true } }
}
  • Browse every endpoint in the API Reference.
  • Review Conventions for pagination, rate limits, and idempotency.
  • Evaluate the flag in your app with an SDK.