Quickstart
This page walks through a complete session with the ThriveDesk Public API: create an access token, fetch the current user, list your open conversations, then draft and send a reply. The examples use curl so they run from any shell.
1. Create an API key
In the ThriveDesk app, open Settings → Integrations → API Keys and create a new key. Give it a name, copy the plaintext key when it is shown, and store it in a secrets manager. It will not be displayed again.
export TOKEN="eyJ0eXAiOiJKV1Qi..."
Treat the key as a secret. Keys expire one year after creation; rotate them by revoking the old key from the same screen and issuing a new one. They are the only publicly-documented authentication method at this time, so integrations must never collect ThriveDesk passwords on a user's behalf.
2. Confirm who you are
Hit GET /v1/me with the bearer token. The response includes the
organization, the current user, the inbox IDs you have access to, and your unread
badge count.
curl https://api.thrivedesk.com/v1/me \
-H "Authorization: Bearer $TOKEN"
3. List your open conversations
GET /v1/conversations/mine returns up to five of the conversations
most recently assigned to the current user (no pagination). For a full, paginated
list use GET /v1/inboxes/{inbox_id} (see
Pagination & rate limits).
curl https://api.thrivedesk.com/v1/conversations/mine \
-H "Authorization: Bearer $TOKEN"
4. Read a conversation's thread
GET /v1/conversation/{conversation_id} returns the conversation
metadata plus its thread events. Events include incoming messages, outgoing replies,
notes, drafts, scheduled replies, and system events.
5. Draft a reply
POST /v1/conversation/{conversation_id}/draft creates (or updates) the
authenticated user's reply draft on the conversation. One draft per user per
conversation: posting again overwrites it.
curl -X POST "https://api.thrivedesk.com/v1/conversation/$CONV_ID/draft" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"message": "<p>Thanks for reaching out - fixed in v2.1.</p>"}'
6. Send it
POST /v1/conversation/{conversation_id}/reply dispatches your current
draft (without one the request fails with 404). The body sets what happens to the
conversation after sending. status is required.
curl -X POST "https://api.thrivedesk.com/v1/conversation/$CONV_ID/reply" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"status": "Closed"}'
What to read next
- Authentication & scopes - bearer tokens and how to obtain one
- Errors - what every error response looks like
- Pagination & rate limits - including the global 300 req/min limit