Skip to main content

API Reference

The FeatureSignals REST API provides programmatic access to all platform features. The API is organized into two main groups:

Base URL

http://localhost:8080/v1

Authentication

The API uses two authentication methods:

MethodHeaderUse Case
JWT Bearer TokenAuthorization: Bearer <token>Management API (dashboard, admin)
API KeyX-API-Key: <key>Evaluation API (SDKs, clients)

See Authentication for details.

API Groups

Evaluation API (API Key Auth)

Endpoints for SDKs and client applications. Rate-limited to 1000 requests/minute per client.

MethodPathDescription
POST/v1/evaluateEvaluate a single flag
POST/v1/evaluate/bulkEvaluate multiple flags
GET/v1/client/{envKey}/flagsGet all flag values for an environment
GET/v1/stream/{envKey}SSE stream for real-time updates
POST/v1/trackTrack A/B impressions

Management API (JWT Auth)

Endpoints for the dashboard and administrative operations.

Read (All Roles)

MethodPathDescription
GET/v1/projectsList projects
GET/v1/projects/{id}Get project
GET/v1/projects/{id}/environmentsList environments
GET/v1/projects/{id}/flagsList flags
GET/v1/projects/{id}/flags/{key}Get flag
GET/v1/projects/{id}/flags/{key}/environments/{envId}Get flag state
GET/v1/projects/{id}/segmentsList segments
GET/v1/projects/{id}/segments/{key}Get segment
GET/v1/environments/{envId}/api-keysList API keys
GET/v1/auditList audit log
GET/v1/membersList team members
GET/v1/approvalsList approvals

Write (Owner, Admin, Developer)

MethodPathDescription
POST/v1/projectsCreate project
POST/v1/projects/{id}/environmentsCreate environment
POST/v1/projects/{id}/flagsCreate flag
PUT/v1/projects/{id}/flags/{key}Update flag
DELETE/v1/projects/{id}/flags/{key}Delete flag
PUT/v1/projects/{id}/flags/{key}/environments/{envId}Update flag state
POST/v1/projects/{id}/flags/{key}/promotePromote flag config
POST/v1/projects/{id}/flags/{key}/killKill switch
POST/v1/projects/{id}/segmentsCreate segment
PUT/v1/projects/{id}/segments/{key}Update segment
DELETE/v1/projects/{id}/segments/{key}Delete segment
POST/v1/approvalsCreate approval request

Admin (Owner, Admin)

MethodPathDescription
DELETE/v1/projects/{id}Delete project
DELETE/v1/projects/{id}/environments/{envId}Delete environment
POST/v1/environments/{envId}/api-keysCreate API key
DELETE/v1/api-keys/{keyId}Revoke API key
POST/v1/approvals/{id}/reviewReview approval
POST/v1/members/inviteInvite member
PUT/v1/members/{id}Update member role
DELETE/v1/members/{id}Remove member
GET/POST/v1/metrics/*Evaluation metrics
CRUD/v1/webhooks/*Webhook management

Error Responses

All errors follow a consistent format:

{
"error": "descriptive error message"
}

Common HTTP status codes:

CodeMeaning
400Bad request (validation error)
401Unauthorized (missing/invalid auth)
403Forbidden (insufficient permissions)
404Not found
409Conflict (duplicate resource)
429Rate limit exceeded
500Internal server error

Rate Limiting

Evaluation endpoints are rate-limited to 1000 requests per minute per client. The client is identified by the first 12 characters of the X-API-Key header, or by IP address if no key is provided.