Skip to main content
POST
/
v1
/
evaluate
/
bulk
curl -X POST https://fly.feather.mupeni.dev/v1/evaluate/bulk \
  -H "Authorization: Bearer <api_key>" \
  -H "Content-Type: application/json" \
  -d '{
    "flags": ["new-checkout", "checkout-copy"],
    "context": {
      "userId": "user_123",
      "attributes": { "country": "DE" }
    }
  }'
{
  "results": {
    "new-checkout": { "value": true, "reason": "DEFAULT" },
    "checkout-copy": { "value": "variant-b", "reason": "ROLLOUT", "variant": "b" }
  },
  "meta": {
    "environmentId": "env_01hx...",
    "evaluatedAt": "2026-04-03T10:00:00.000Z",
    "cacheAge": 2,
    "requestId": "73d24f43-d5ac-428e-b57a-fce4cb4d5685"
  }
}
Returns a results map keyed by flag key and a meta block with evaluation metadata. Auth: API key only (Authorization: Bearer <key>).

Body

flags
string[]
required
List of flag keys to evaluate. Minimum 1, maximum 100.
context
object
required
Shared evaluation context for all requested flags.
context.userId
string
Stable user identifier.
context.anonymousId
string
Anonymous identifier when userId is not available.
context.attributes
Record<string, string | number | boolean>
Additional attributes used by flag rules.

Response

results
Record<string, { value: boolean | string | number | null; reason: "DISABLED" | "RULE_MATCH" | "ROLLOUT" | "DEFAULT" | "FLAG_NOT_FOUND" | "ERROR"; ruleId?: string; variant?: string }>
required
meta.environmentId
string
required
meta.evaluatedAt
string
required
meta.cacheAge
number
required
meta.requestId
string
Unknown flags and client-restricted flags both return FLAG_NOT_FOUND.

Status codes

StatusMeaning
200Evaluation succeeded
400Invalid JSON body (INVALID_JSON)
401Missing/invalid API key (UNAUTHORIZED, INVALID_API_KEY)
422Validation failed (VALIDATION_ERROR)
429Rate-limited (RATE_LIMITED)
503Bundle unavailable; all results return reason: "ERROR"
curl -X POST https://fly.feather.mupeni.dev/v1/evaluate/bulk \
  -H "Authorization: Bearer <api_key>" \
  -H "Content-Type: application/json" \
  -d '{
    "flags": ["new-checkout", "checkout-copy"],
    "context": {
      "userId": "user_123",
      "attributes": { "country": "DE" }
    }
  }'
{
  "results": {
    "new-checkout": { "value": true, "reason": "DEFAULT" },
    "checkout-copy": { "value": "variant-b", "reason": "ROLLOUT", "variant": "b" }
  },
  "meta": {
    "environmentId": "env_01hx...",
    "evaluatedAt": "2026-04-03T10:00:00.000Z",
    "cacheAge": 2,
    "requestId": "73d24f43-d5ac-428e-b57a-fce4cb4d5685"
  }
}