0.x — pre-release, no compatibility promise yet.What this means
Exchange a code or a refresh token for tokens
Exchange an authorization code (with its PKCE verifier) or a refresh token for an access token and a new
refresh token. Errors are OAuth JSON (error, error_description).
Request Bodyrequired
Section titled “Request Bodyrequired”object
Authorization_code: the code from the redirect
Authorization_code: exactly the one in the authorization request
Authorization_code: the PKCE verifier (43-128 characters)
Refresh_token: the current refresh token (single use)
Refresh_token: optional, narrower scopes (space-separated)
Required for a public app; a confidential app may send it with client_secret instead of HTTP Basic
client_secret_post (or use HTTP Basic)
Responses
Section titled “ Responses ”Successful Response
Returned by oauth.token.
object
A TasksMate access token (tm_live_…), 1 hour
Seconds
tmr_… — single use: each refresh returns a new one
Space-separated scopes this access token holds
Example
{ "access_token": "tm_live_Ab3xQ9eLr0v2Zk5n8WcHt1YpUo4MiGs7Fj6Da-_Bq0R", "expires_in": 3600, "refresh_token": "tmr_Zk5n8WcHt1YpUo4MiGs7Fj6Da-_Bq0RAb3xQ9eLr0v2", "scope": "tasks:write projects:read", "token_type": "Bearer"}An OAuth error (invalid_request, invalid_grant, invalid_scope, unsupported_grant_type)
Client authentication failed (invalid_client)