Skip to content
On this page

Getting started

Scopes

Every token carries scopes, chosen when an API key is created or approved on the OAuth consent screen. Each endpoint needs one of them.

Available scopes

Pick scopes when you create an API key, or request them in an OAuth authorization (scope, space-separated). The lookups (tags, departments, products) accept any read scope, and team members (users) need tickets:read.

ScopeAccessAllows
tickets:readReadList, search and read tickets, their replies, notes and custom fields.
tickets:writeWriteCreate tickets, reply, add notes, assign, change status or fields, and merge tickets.
customers:readReadList and read customers (team owners and admins only).
customers:writeWriteCreate and update customers (team owners and admins only).
conversations:readReadRead channel conversations and their messages.
conversations:writeWriteReply to conversations, add internal notes, assign, resolve and reopen them, and show live chat visitors you are typing.
knowledge:readReadSearch the help center and knowledge sources, and ask for cited answers.
licenses:readReadLook up and verify license keys and purchases.
webhooks:manageWriteSubscribe and unsubscribe webhooks for Zapier, n8n or Make (owners and admins only), for the events the app may read.

Scopes per endpoint

A call without the scope it needs answers 403, and the message names the missing scope.

EndpointScope
GET/api/v1/meAny scope
GET/api/v1/ticketstickets:read
GET/api/v1/tickets/{ticket}tickets:read
POST/api/v1/ticketstickets:write
PATCH/api/v1/tickets/{ticket}tickets:write
GET/api/v1/tickets/{ticket}/repliestickets:read
POST/api/v1/tickets/{ticket}/repliestickets:write
GET/api/v1/tickets/{ticket}/notestickets:read
POST/api/v1/tickets/{ticket}/notestickets:write
POST/api/v1/tickets/{ticket}/spamtickets:write
DELETE/api/v1/tickets/{ticket}/spamtickets:write
PATCH/api/v1/tickets/{ticket}/metadatatickets:write
GET/api/v1/customerscustomers:read
GET/api/v1/customers/{customer}customers:read
POST/api/v1/customerscustomers:write
PATCH/api/v1/customers/{customer}customers:write
PATCH/api/v1/customers/{customer}/attributescustomers:write
GET/api/v1/licenseslicenses:read
POST/api/v1/licenses/verifylicenses:read
GET/api/v1/conversationsconversations:read
GET/api/v1/conversations/{conversation}conversations:read
PATCH/api/v1/conversations/{conversation}conversations:write
PATCH/api/v1/conversations/{conversation}/metadataconversations:write
POST/api/v1/conversations/{conversation}/spamconversations:write
DELETE/api/v1/conversations/{conversation}/spamconversations:write
GET/api/v1/conversations/{conversation}/messagesconversations:read
POST/api/v1/conversations/{conversation}/messagesconversations:write
POST/api/v1/conversations/{conversation}/readconversations:read
POST/api/v1/conversations/{conversation}/typingconversations:write
GET/api/v1/tagsAny read scope
GET/api/v1/tags/{tag}Any read scope
GET/api/v1/departmentsAny read scope
GET/api/v1/departments/{department}Any read scope
GET/api/v1/productsAny read scope
GET/api/v1/products/{product}Any read scope
GET/api/v1/userstickets:read
GET/api/v1/users/{user}tickets:read
GET/api/v1/knowledge-base/articlesknowledge:read
GET/api/v1/knowledge-base/articles/{article}knowledge:read
GET/api/v1/hookswebhooks:manage
GET/api/v1/hooks/{hook}webhooks:manage
POST/api/v1/hookswebhooks:manage
DELETE/api/v1/hooks/{hook}webhooks:manage
GET/api/v1/hooks/samples/{event}webhooks:manage

Keys made before scopes

API keys made before scopes existed keep working as before: read-only keys can call every GET endpoint, read-write keys every endpoint.