Skip to main content
The entitlement and feature-flag APIs are how your backend makes authoritative access decisions. Two read endpoints (/check, /entitlements) resolve a company’s access, /usage/consume decrements metered quota, and the /flags/check alias covers single-flag reads. Creating feature flags and rules happens in the dashboard — your code only consumes the resolved result.

Check a single feature

GET /api/v1/check?key=<featureKey> resolves one feature for a company. Auth (either):
  • API key (api_…, sk_…, pk_…, rk_…)
  • Embed access token

Query parameters

string
required
The feature key (feature flag key or entitlement key) to evaluate. Maximum 128 characters.

Company/user resolution

With an API key, pass the company identity via headers:
At least one company key (id, wallet, or email) is required. With an embed access token, the company and user are resolved from the token — no headers needed.

Response

GET /api/v1/flags/check?key=... is an alias for this endpoint.

Bulk entitlements

GET /api/v1/entitlements resolves every feature flag and entitlement for a company in a single request. Same auth options as /check. With an API key, X-Arcen-Company-Keys is required (at least one of id, wallet, or email).

Response

The React SDK hook useCompanyEntitlements calls this endpoint; the Node SDK wraps it as client.listEntitlements().

Consume metered usage

POST /api/v1/usage/consume atomically checks a metered entitlement, burns credits if configured, and increments usage. Auth: API key (api_…, sk_…, rk_…, pk_…) or embed access token.

Request body

string
required
The feature key to consume against. Maximum 128 characters.
object
Attributes recorded with the consumption.
string
Unique key for the logical operation. Maximum 128 characters. Prevents double-charging on retries.

Example

Response

On failure the request returns 403 (feature disabled or tier restriction), 402 (insufficient credits), or 429 (limit reached) with an error message.
Usage metering and credit consumption require a paid platform tier (Growth/Plus or Enterprise/Pro). Free-tier teams receive UPGRADE_REQUIRED (403).

Managing feature flags is dashboard-only

Creating feature flags, rules, overrides, and feature definitions happens in the dashboard’s Features section — there is no SDK method and no API-key access to those management endpoints. The dashboard calls /api/v1/feature-flags, /features, and related routes with a session cookie and role-based permissions (catalog:read / catalog:write). As an integrating developer you only consume the resolved access state via the endpoints above. If you need to force a flag for one customer, the Node SDK exposes setCompanyOverride() (backed by POST /api/v1/companies/:id/overrides with a legacy api_… key).
The POST /api/v1/companies/:id/overrides endpoint accepts legacy api_… keys or a dashboard session. See the endpoint auth matrix.
Last modified on September 19, 2026