Skip to main content

Making Authenticated Requests

Include the access token in the Authorization header of your API requests:

Token Expiration

Access tokens expire after 1 hour. Use the refresh token to obtain a new access token without requiring the user to re-authorize.
To refresh an expired access token:
The response has the same shape as the first token response, including team_id, with a new refresh token: refresh tokens rotate on every use. Replace the stored pair as soon as the response arrives. The old refresh token keeps working for 60 seconds after its first use (so a retry of a request that timed out still succeeds); after that, using it again answers 400 invalid_grant and the person has to authorize again. Refresh tokens expire 30 days after they are issued, so an app that refreshes at least monthly never loses its connection.

Authentication Errors

Best Practices

Store tokens securely

Never expose tokens in client-side code or logs.

Proactively refresh

Refresh tokens before they expire to avoid interruptions.

Handle errors gracefully

Implement proper error handling for auth failures.

Next Steps

App Permissions

Learn about available scopes

API Reference

Make your first API call