POST /oauth/token issues tokens and POST /oauth/revoke revokes them.client_credentials gives your application its own token. It carries no connection, so it cannot read or write connection data.connection_id claim (sub stays your client id), and the token response includes connection_id too.Content-Type: application/x-www-form-urlencoded. POST /oauth/token also accepts a JSON object with the same parameters as string values under Content-Type: application/json. Any other content type is a 400.client_id and client_secret body fields, never both.redirect_uri with a code. See Launching Makini Link.POST /oauth/token with the authorization_code grant and the code, as in the example above. redirect_uri is optional; if you send it, it must match the one used during authorization exactly, byte for byte.scope parameter. Makini scopes a connection token during the exchange and again on every refresh, so neither the authorization_code nor the refresh_token grant accepts one.connection_id and refresh_token with your customer's account. The access token is valid for 3,600 seconds (expires_in in the response).| Token | Lifetime |
|---|---|
| Access token | 3,600 seconds (expires_in in the response). |
| Refresh token | 30 days from its last use. |
client_credentials response never includes a refresh token. On rare occasions a code exchange answers without one too, so treat refresh_token as optional and keep using the access token until it expires.POST /oauth/revoke with a refresh token revokes its whole family and immediately stops every access token issued from it. Pass the refresh token, not an access token: access tokens are self-contained and not stored, so revoking the refresh token is what stops them.token_type_hint is accepted and ignored.200 whether or not the token existed, so it cannot be used to test whether a token is valid. The exceptions are a missing token parameter (400) and a temporary outage (503).