API tokens and developer access
On this page
API tokens give code or scripts a way to talk to your Deskwoot account without using a password. You generate one per integration (a CRM sync, a custom dashboard, an internal tool) and scope it to only the permissions that integration actually needs. Tokens can be revoked anytime; revoking is instant and doesn't affect any other token. Base URL is https://deskwoot.com/api/v1/ and the auth header is Authorization: Bearer YOUR_TOKEN. API access is Enterprise-only; pre-existing tokens from older plans keep working until expiry.
Deskwoot provides a REST API that gives you programmatic access to your support data and workflows. Whether you are building custom integrations, syncing ticket data with internal tools, or automating repetitive tasks, API tokens let you authenticate securely without sharing your login credentials. This guide walks you through generating tokens, making your first API call, and following the practices that keep your account safe.
The REST API is an Enterprise feature. The 7-day Enterprise trial that every new account starts on does not include API tokens; you need an active Enterprise plan to create and use them. If you are on a lower plan and need API access, you will need to be on Enterprise. For a fuller picture of what the API covers, see the REST API overview.
How do I generate an API token?
- Log in to your Deskwoot account and go to Settings > API Tokens.
- Click Create token. Only administrators can create tokens.
- Give the token a descriptive name (for example CRM sync, production) so you can identify its purpose later.
- Select the specific permission scopes the token should have. Grant only the access levels your integration actually needs. Optionally pick an expiration date.
- Confirm and copy the token immediately. For security reasons, the full token is shown only once.
How do I use the API?
All API requests are made against the following base URL:
https://deskwoot.com/api/v1/
Include your API token in the Authorization header of every request:
Authorization: Bearer YOUR_TOKEN
Example request
A simple cURL call to test your connection might look like this:
curl -H "Authorization: Bearer YOUR_TOKEN" https://deskwoot.com/api/v1/me
If the token is valid, the API returns your account ID and the token's scopes. If not, you get an authentication error. The full endpoint reference is in the API docs.
What are the best practices?
- Grant the least access needed. Assign each token only the permissions it requires. Avoid creating tokens with full admin access unless you genuinely need it.
- Rotate tokens regularly. Periodically revoke old tokens and generate new ones, especially when team members change roles or leave.
- Store tokens securely. Keep tokens in environment variables or a secrets manager. Never hard-code them in client-side code or commit them to version control.
- Use descriptive names. Naming tokens after the integration or environment they serve makes auditing straightforward.
- Monitor usage. Review your active tokens in Settings > API Tokens on a regular basis and delete any that are no longer in use.
How do I troubleshoot token errors?
- 401 Unauthorized: Double-check that the token is copied correctly, has not been revoked, and is included in the header with the
Bearerprefix. - 403 Forbidden: The token may lack the permissions for the endpoint you are calling. Create a new token with the right scopes and revoke the old one. A 403 also appears when the workspace is no longer on the Enterprise plan.
- Rate limiting: If you receive rate-limit errors, reduce how often you call the API or add exponential back-off to your code.
Frequently asked questions
What if I want an AI agent to use the helpdesk instead?
Where do I create an API token?
What scopes are available?
What happens if I lose a token?
Which plans get API access?
Can I scope a token to a single inbox or team?
Are tokens user-bound or account-bound?
How do I rotate tokens safely without downtime?
Does the API count toward my AI conversations quota?
Can I use the API from the browser?
Can I set an expiry on a token?
Can I get webhooks instead of polling?
Is the REST API available on all plans?
Can I create multiple API tokens?
What happens if my token is compromised?
Where do I create a token?
Was this guide helpful?
Keep reading
- Importing from FreshdeskMove every Freshdesk ticket, contact and knowledge base article to Deskwoot. Folders that were not public stay internal.Read guide
- Deleting your accountHow to delete your Deskwoot account and what happens to your dataRead guide
- Importing from IntercomMove Intercom conversations, contacts and every help center collection to Deskwoot with one access token.Read guide
Ask Fynn about this guide
Get a short answer from this guide and the rest of the help center.