Skip to main content
These endpoints are live in production today, served by the FloKit payments gateway. They are separate from the v1 REST API, which is still in design-partner preview.
Use the entitlement endpoints to gate premium features: after a purchase is verified (see the Paywall API), your app or backend can check whether the user’s entitlement is active. Entitlement state is authoritative only after a verified source updates it: StoreKit/Google receipt verification, provider import/live-read, or a provider webhook that has passed readiness gates. A Paddle browser redirect alone never grants access. Base URL: https://payments-gateway.flokitai.com GET /api/entitlements/current is the single entitlement endpoint. It requires your app’s publishable key (pk_..., created per app in the FloKit dashboard) in the x-app-key header — or a short-lived app-session token (minted via POST /api/paywall/token) in x-app-token instead. The key scopes the request to your app and is safe to embed in your app build. @flokitai/subscriptions-sdk v2.0+ sends it automatically — set appKey in initSubscriptionsSdk() and reads carry x-app-key (or x-app-token) for you. Tenant resolution happens server-side from the app key and user identity — clients never send a company or tenant ID.
x-app-key enforcement is on in production. Requests without a valid app credential receive 401 — there is no grace period.
Migrating from the paywall path. GET /api/paywall/entitlement was removed — it now 404s. Read entitlements from GET /api/entitlements/current instead. The response field product_id was renamed to entitlement_key.

GET /api/entitlements/current

Returns the caller’s current entitlement state.

Headers

Query parameters

string
User identity fallback if the x-user-id header is not set.
string
Anonymous identity fallback for pre-login users.
Identity resolution order: x-user-id header, then the userId query parameter, then anonymousId.

Example

Response

When there is no entitlement, the response carries only active: false and source:
Paddle entitlements are exposed here only after Paddle webhook and canonical entitlement projection are both ready for the app/environment.

Errors