Get an access token
Exchange your client credentials for an access token using the OAuth 2.0 Client Credentials flow.
This endpoint lives on the Alvys authorization server (https://auth.alvys.com), not on the API host — the playground targets it directly. It takes no bearer token of its own; the credentials in the body are the authentication.
Accepts either application/json or application/x-www-form-urlencoded. Both return the same token and enforce scopes identically.
Create the Client ID and Secret in the Alvys Admin Portal under Admin → API Access. See Authentication for the full walkthrough and the scope catalog.
https://auth.alvys.com — not the API host. It is the one endpoint that takes no bearer token: the client_id and client_secret in the body are the authentication./api/authentication/{tenant_id}/token flow.
Using the token
The response’saccess_token goes on every Public API request:
expires_in window returned with them. Cache the token for that period rather than requesting a new one per call — the token endpoint is rate limited and will return 429 if you request one per API call.
The scope claim on the returned token lists what it may do, and the Public API enforces those scopes on every request. A token always carries every scope granted to your client application; see Available Scopes for the full list.Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Body
The Client ID of your Alvys client application.
"YOUR_CLIENT_ID"
The Client Secret issued alongside the Client ID. Treat it as a credential — never expose it in front-end code.
"YOUR_CLIENT_SECRET"
The API the token is for. Must be https://api.alvys.com/public/.
"https://api.alvys.com/public/"
The OAuth 2.0 grant flow. Must be client_credentials.
client_credentials Optional and non-narrowing. The issued token always carries every scope granted to your client application regardless of this value; its only effect is that the request fails if you name a scope your client was not granted. Omit it unless you want that check.
"load:read trip:read"
Response
An access token for the Alvys Public API.
The JWT access token. Send it as Authorization: Bearer <access_token> on every Public API request.
Always Bearer.
"Bearer"
Lifetime of the token in seconds.
86400
Space-delimited scopes granted to the token. The Public API enforces these on every request.
"load:read trip:read"