Skip to main content

End-User API

Use the End-User API to store and retrieve data for the authenticated end user across applications and devices. For trusted backend integrations that explicitly select other users' data or make bulk changes, use the Management API.

End-user application context for the Personalization Service

Endpoint​

https://personalization.service.eu.axinom.net/graphql

Authentication​

Requests require a JWT bearer token issued through the User Service. Send the token in the HTTP Authorization header:

Authorization: Bearer <end-user-token>
Content-Type: application/json

The token supplies the tenant, environment, user, profile, and application context. You do not select a different user by passing a user ID to an End-User API operation. See the User Service guides for signing in with external identity providers and integrating without the React library.

Choose a storage API​

RequirementAPI
Store one JSON value per scoped key, such as preferencesKey-value API
Store frequently changing integers, such as playback positionProgress API
Store independently addressable collection items, such as favorites or watch historyArray API

For new array integrations, use the itemId-based operations. Earlier array operations remain available for compatibility but are deprecated; see Migrate from deprecated Array APIs.

Select a scope​

Every scope requires an authenticated user. Choose the scope according to which context should own the value:

ScopeRequired token contextUse when
USERUserData belongs to the user across profiles
PROFILEUser and active profileData belongs to one profile
APPLICATIONUser, active profile, and applicationData belongs to one profile within one application

The same key can hold different values in each scope. A scope is available only when its required context is present in the token.

Keys, values, and limits​

Keys use colon-separated namespaces such as ui:preferences and content:favorites. The key pattern is ^[\\w-]+(:[\\w-]+)*$. Key-value and array values are valid JSON, limited to 10,240 bytes per value. Progress values are integers rather than arbitrary JSON.

For pagination, selector limits, datetime formats, and machine-readable errors, see End-User API errors and limits.

Was this page helpful?