Bulk Evaluation
The bulk evaluation endpoint lets you evaluate multiple flags and fetch multiple configs in a single request. This is the recommended approach for client applications that need several values at once.
Request
curl -X POST \ -H "Authorization: Bearer $TOKEN" \ -H "Content-Type: application/json" \ -d '{ "context": { "user_id": "u_123", "email": "user@example.com", "plan": "premium", "custom": { "country": "US", "beta_enrolled": true } }, "flags": ["new_checkout", "dark_mode", "premium_feature"], "configs": ["payment_providers", "api_limits"] }' \ "https://edgeflags.net/api/v1/evaluate"Request body
| Field | Type | Required | Description |
|---|---|---|---|
context | object | Yes | User context for targeting evaluation |
flags | string[] | No | Flag keys to evaluate (omit to skip flags) |
configs | string[] | No | Config keys to retrieve (omit to skip configs) |
The context object is limited to 64KB.
Response
{ "flags": { "new_checkout": true, "dark_mode": true, "premium_feature": false }, "configs": { "payment_providers": { "stripe_public_key": "pk_test_123", "paypal_enabled": true, "apple_pay_enabled": false }, "api_limits": { "requests_per_minute": 1000, "burst_limit": 2000 } }}Flags return their evaluated value directly (not the full evaluation response with reason and type). Configs return the value for the environment specified in context.environment, falling back to the default value.
Permissions
The evaluate endpoint checks permissions based on what you request:
flagsarray requiresread:flagspermissionconfigsarray requiresread:configspermission
If you have read:flags but not read:configs, you can still evaluate flags — the configs portion will be empty. A 403 Forbidden is only returned if you lack both permissions.
Rate limits
The evaluate endpoint has a higher rate limit (10,000 requests/minute) compared to management endpoints (1,000 requests/minute). See Rate Limiting for details.
Method restriction
Only POST is accepted. A GET request to /api/v1/evaluate returns 405 Method Not Allowed.