/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: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
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
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.
