Skip to main content
Returns one user’s accumulated entitlements, split into verified and provisional, so your server can decide what to unlock. This is the pull counterpart to the Offer Completed webhook: the webhook pushes each completion to you as it verifies, this endpoint answers “what does this user hold right now” on demand. It is the one server-to-server read an API integration needs, because entitlements are server-authoritative: never gate real access on anything a client reports.

Authentication

Unlike the offer endpoints, this endpoint is HMAC-signed. Three headers are required, plus X-Platform for multi-app projects: The base string is timestamp.METHOD.path.query, and two details cause most signature failures:
  • The path you sign is not the URL you call. Encore’s gateway strips the /encore prefix before the API sees the request, so you call /encore/publisher/sdk/v1/entitlements/server but sign /publisher/sdk/v1/entitlements/server. Signing the public path is a silent 401.
  • A GET signs a canonical query string, not a body. Sort the parameters by key, URI-encode each key and value, and join with &. This endpoint has one parameter, so the canonical string is just userId=..., encoded.

Request

Response

Gate real access on verified. provisional exists for the immediate unlock a client shows while the brand-side completion is still unverified; treat it as a UX courtesy, never as proof. Timestamps are ISO 8601 and nullable.

Status codes