> For the complete documentation index, see [llms.txt](https://docs.january.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.january.ai/client-sdks/ios-sdk/getting-started/backend-token-endpoint.md).

# Backend token endpoint

The app gets client tokens from an endpoint on your backend. The endpoint is the same for every January SDK: build it from [Your token endpoint](/docs/authentication.md#your-token-endpoint).

{% hint style="info" %}
No backend yet? Run the [token relay](/docs/authentication.md#develop-with-the-token-relay) and continue to [Authentication](/client-sdks/ios-sdk/getting-started/authentication.md). Come back before launch.
{% endhint %}

## What the iOS SDK reads

Return January's `201` body unchanged. The SDK reads `token` and `expires_in` (it also accepts `expiresIn`) and ignores the other fields.

## Scopes

A `JanuaryClient` uses one token for every call it makes, so mint the token with the scopes of every feature your app uses ([scope table](/rest-api/authentication.md#client-token-scopes)). A call outside them fails with `403 scope_insufficient`.

## Enable client tokens

Minting fails with `403 forbidden` until **Enable client tokens** is on in the [Developer Dashboard → Client tokens](https://dashboard.january.ai/dashboard/client-tokens).

Next: [Authentication](/client-sdks/ios-sdk/getting-started/authentication.md).
