Developers
/api/v1/oauth/revokeRevocation as per RFC 7009. Body application/x-www-form-urlencoded with token (access or refresh token) and optionally token_type_hint. Client authentication as for the token endpoint. Revoking a refresh token also revokes all tokens derived from it. The response is always 200, even for unknown tokens.
No authentication required.
Response 200
Empty object
{}/api/v1/oauth/tokenToken endpoint as per RFC 6749. Body application/x-www-form-urlencoded.
Redeem authorisation code: grant_type=authorization_code, code, redirect_uri (if passed during authorisation), code_verifier (PKCE, mandatory for all apps).
Refresh: grant_type=refresh_token, refresh_token, optionally scope (subset).
Client authentication: HTTP Basic (client_id:client_secret) or client_id/client_secret in the body; public apps only client_id. Errors in OAuth format { "error": "invalid_grant", "error_description": "…" }. Every refresh returns a new refresh token; the old one becomes invalid. Parallel refreshes with the same refresh token within 30 s receive the same token pair as long as the new refresh token is unused; later reuse revokes the entire token chain.
No authentication required.
Response 200 · OAuthTokenResponse
access_tokenstringrequireddfo_… (valid for 1 hour)token_type"Bearer"requiredexpires_inintegerrequired-9007199254740991–9007199254740991refresh_tokenstringrequireddfr_… (rotated on every use)scopestringrequiredGranted scopes, space-separated
{
"access_token": "string",
"token_type": "Bearer",
"expires_in": 0,
"refresh_token": "string",
"scope": "string"
}/api/v1/openapi.json