Expert guidance for using the FeatBit REST API to manage projects, environments, and feature flags programmatically. Use when user asks about "FeatBit API", "REST API", "create project API", "create environment API", "create feature flag API", "API authentication", "OpenAPI key", or needs to automate FeatBit operations via HTTP endpoints. Do not use for SDK integration, deployment configuration, or flag evaluation questions.
npx claudepluginhub joshuarweaver/cascade-code-devops-misc-1 --plugin featbit-featbit-skillsThis skill uses the workspace's default tool permissions.
Expert guidance for interacting with FeatBit services through the REST API. Use these endpoints to manage projects, environments, feature flags, and more programmatically.
Generates design tokens/docs from CSS/Tailwind/styled-components codebases, audits visual consistency across 10 dimensions, detects AI slop in UI.
Records polished WebM UI demo videos of web apps using Playwright with cursor overlay, natural pacing, and three-phase scripting. Activates for demo, walkthrough, screen recording, or tutorial requests.
Delivers idiomatic Kotlin patterns for null safety, immutability, sealed classes, coroutines, Flows, extensions, DSL builders, and Gradle DSL. Use when writing, reviewing, refactoring, or designing Kotlin code.
Expert guidance for interacting with FeatBit services through the REST API. Use these endpoints to manage projects, environments, feature flags, and more programmatically.
Activate when users:
https://your-featbit-instance.com/api/v{version}
v1 (URL pattern: /api/v1/{resource})your-featbit-instance.com with your actual FeatBit hostFeatBit supports two authentication methods:
Authorization: Bearer {jwt_token}
Best for: interactive sessions, user-scoped operations.
Authorization: {api_key}
Best for: CI/CD pipelines, automation scripts, service-to-service calls.
Detailed Guide: references/authentication.md
All API responses follow a standardized wrapper:
{
"success": true,
"data": { ... },
"errors": []
}
On failure:
{
"success": false,
"data": null,
"errors": [
{ "code": "Required:name", "message": "The name field is required" }
]
}
| Code | Description |
|---|---|
200 | Success |
400 | Bad Request — validation errors |
401 | Unauthorized — missing or invalid authentication |
403 | Forbidden — insufficient permissions |
404 | Not Found — resource doesn't exist |
500 | Internal Server Error |
| Method | Endpoint | Description | Permission |
|---|---|---|---|
GET | /api/v1/projects | List all projects in the organization | CanAccessProject |
POST | /api/v1/projects | Create a new project | CreateProject |
GET | /api/v1/projects/{projectId} | Get project details with environments | CanAccessProject |
Quick example — Create a project:
curl -X POST "https://your-featbit-instance.com/api/v1/projects" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer {jwt_token}" \
-d '{"name": "E-Commerce Platform", "key": "ecommerce"}'
Full Reference: references/projects-api.md
| Method | Endpoint | Description | Permission |
|---|---|---|---|
POST | /api/v1/projects/{projectId}/envs | Create a new environment | CreateEnv |
Quick example — Create an environment:
curl -X POST "https://your-featbit-instance.com/api/v1/projects/{projectId}/envs" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer {jwt_token}" \
-d '{"name": "Staging", "key": "staging", "description": "QA environment"}'
Full Reference: references/environments-api.md
| Method | Endpoint | Description | Permission |
|---|---|---|---|
POST | /api/v1/envs/{envId}/feature-flags | Create a new feature flag | CreateFlag |
Quick example — Create a boolean feature flag:
curl -X POST "https://your-featbit-instance.com/api/v1/envs/{envId}/feature-flags" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer {jwt_token}" \
-d '{
"name": "New Checkout Flow",
"key": "new-checkout-flow",
"isEnabled": false,
"variationType": "boolean",
"variations": [
{"id": "var-on", "name": "On", "value": "true"},
{"id": "var-off", "name": "Off", "value": "false"}
],
"enabledVariationId": "var-on",
"disabledVariationId": "var-off",
"tags": ["checkout"]
}'
boolean, string, number, json^[a-zA-Z0-9._-]+$Full Reference: references/feature-flags-api.md
A typical setup flow — create project, add environment, create flag:
# 1. Create a project (auto-creates Prod and Dev environments)
PROJECT=$(curl -s -X POST "$BASE_URL/api/v1/projects" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-d '{"name":"My App","key":"my-app"}')
PROJECT_ID=$(echo $PROJECT | jq -r '.data.id')
DEV_ENV_ID=$(echo $PROJECT | jq -r '.data.environments[1].id')
# 2. (Optional) Create a staging environment
curl -s -X POST "$BASE_URL/api/v1/projects/$PROJECT_ID/envs" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-d '{"name":"Staging","key":"staging","description":"QA environment"}'
# 3. Create a feature flag in the dev environment
curl -s -X POST "$BASE_URL/api/v1/envs/$DEV_ENV_ID/feature-flags" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-d '{
"name":"New Feature","key":"new-feature","isEnabled":false,
"variationType":"boolean",
"variations":[{"id":"v1","name":"On","value":"true"},{"id":"v2","name":"Off","value":"false"}],
"enabledVariationId":"v1","disabledVariationId":"v2","tags":["backend"]
}'
More Patterns: references/common-patterns.md
new-checkout-flow)