Request
The field is named
code, not device_code. The device-authorize
response calls it device_code; the field you send it back in is code. A
request with an empty code is rejected as a malformed request.Response
The token response is returned bare. Unlike the/v1 endpoints, it is not
wrapped in a data envelope — read the fields off the top level of the body.
The access token’s claims carry
iss (the management API host), sub (your
user id), aud (a one-element array [client_id], not a bare string),
account_id, scope, token_type (always "access_token"), iat, and
exp.
A successful exchange consumes the device session — the device code is
single-use.
Polling responses
Poll on theinterval returned by /oauth/device/authorize. Five outcomes —
still pending, polling too fast, denied, expired, or an unusable code — all
come back as the same HTTP 400; only the JSON body’s error field tells them
apart.
Status codes
There is no rate limit on this endpoint.