Skip to main content
Resolves parameters for a given context server-side. Use this when an SDK can’t cache a full config bundle, or when you want every resolution to use the freshest possible state. The React Native SDK uses this endpoint by default. Most server and web use cases should prefer the bundle-based path (GET /v1/config/:projectId + local resolution) — it’s faster, works offline, and scales further.

Request

Headers

The project is identified by the API key, not the request body. Keys created for a specific project need no extra headers.

Body

There is no defaults field: fallback values come from each parameter’s configured default in the config bundle (with environment overrides applied). Parameters not covered by any matching policy resolve to those defaults.

Response

200 OK

When a matched adaptive policy is configured to log context fields, the response also includes metadata.filteredContext containing just those fields. Each entry in metadata.layers describes one layer’s resolution: Every successful resolution automatically records a decision event — you don’t need to send one through POST /v1/events.

400 Bad request

Also returned for an invalid JSON body, and for org-scoped keys that omit the X-Project-Id header.

401 Unauthorized

403 Forbidden

Returned when the key lacks the sdk:read scope, or when an X-Org-Id or X-Project-Id header doesn’t match the key:

404 Not found

503 Service unavailable

The config store is temporarily unavailable. Fall back to local resolution or defaults and retry shortly.

When to use this

  • Mobile clients where caching a full bundle isn’t reasonable (very limited memory, or very rare resolutions).
  • Server-to-server systems where you want fresh state without managing bundle refresh in your own code.
  • Per-entity adaptive policies where bundle-mode freshness isn’t sufficient — though POST /v1/decide/:policyId is usually the right answer for that specific case.
For everything else, prefer GET /v1/config/:projectId and resolve locally.