Browse documentation
Browse API reference
Authentication v1 stable

Exchange service-account credentials

Exchange an active service account's client credentials for a short-lived bearer token. No refresh token is issued.

POST /api/v1/oauth/token

Access and behavior

Required scope
none (the resulting token carries the service account's scopes)
Authentication
OAuth2 client credentials
Idempotency
not-applicable
Operation ID
exchangeServiceAccountToken

Request headers

Header Presence Description
Content-Type Required Request document media type.

Request body

application/json

Schema: TokenRequest · Required

client_id

Required

string

Request field.

client_secret

Required

string

Request field.

grant_type

Required

enum: client_credentials

Request field.

request.json
{
  "client_id": "cid_example",
  "client_secret": "<client-secret>",
  "grant_type": "client_credentials"
}

Success response

200 A short-lived bearer token.
Media type
application/json
Schema
TokenResponse

Errors and retries

Keep x-request-id from failed responses. Retry only rows marked retryable, and obey Retry-After when present.

Status Code Recovery Meaning
400 unsupported_grant_type Do not retry unchanged grant_type must be client_credentials.
401 invalid_client Do not retry unchanged The credentials are missing, inactive, revoked, or invalid.
429 rate_limited Retry after guidance The request exceeded its rate window; wait for Retry-After.