Download OpenAPI specification:
SupportBee's support ticket system enables teams to organize, prioritize and collaborate on customer support emails.
This page documents SupportBee's REST(like) API and how to access SupportBee's functionality programatically.
We use Bearer Token Authentication to authenticate API requests. Pass your API token via the Authorization header.
Authorization: Bearer your_api_token
To find your API token, click on your profile picture at the top left corner of your SupportBee desk and then click on "API Token".
All API endpoints except the Create Ticket endpoint require authentication.
The API will respond with a HTTP 2xx status upon success and a non 2x status upon failure.
| Description | Status Code |
|---|---|
| Success | 200 |
| Created | 201 |
| Failure | 500 |
| Access Denied | 403 |
| Validation Failure | 400 |
Some of the following API calls accept parameters which represent Date/Time. The date/time should be provided in UTC. The format to specify date is shown in the following examples:
2001-02-15T04:05:06+07:00
20010215T040506+0700
15th Feb 2001 04:05:06 PM
2001-02-15
20010215
An attachment can be created by multipart/form-data POST request to /attachments.
Example (using curl):
curl -v -X POST '<company>.supportbee.com/attachments?auth_token=<auth_token>' -F 'files[]=@/location/of/the/file'
An attachment can be created by multipart/form-data POST request to /attachments.
The name of the POST parameter should be files[].
| Accept required | string Default: application/json Value: "application/json" Must be set to application/json. |
| files[] | string <binary> |
{- "id": 2,
- "created_at": "2001-02-15T04:05:06+07:00",
- "filename": "logo.jpg",
- "content_type": "image/jpeg; charset=UTF-8; name=logo.jpg",
- "url": {
}
}Retrieves all the comments on the ticket specified by the ticket ID.
| id required | integer The tickets ID |
| Accept required | string Default: application/json Value: "application/json" Must be set to application/json. |
{- "comments": [
- {
- "id": 1,
- "created_at": "2001-02-15T04:05:06+07:00",
- "ticket": {
- "replies_count": 0,
- "comments_count": 1
}, - "commenter": {
- "id": 1,
- "name": "Agent1",
- "agent": true,
- "picture": {
}
}, - "content": {
- "text": "test\\n\\n-- \\nRegards,\\nAgent",
- "html": "test<br>-- <br>Regards,<div>Agent</div>",
- "attachments": [
- {
- "id": 2,
- "created_at": "2001-02-15T04:05:06+07:00",
- "filename": "logo.jpg",
- "content_type": "image/jpeg; charset=UTF-8; name=logo.jpg",
- "url": {
}
}
]
}
}
]
}Creates a comment on a ticket specified by the ticket ID.
| id required | integer The tickets ID |
| Accept required | string Default: application/json Value: "application/json" Must be set to application/json. |
A comment for a ticket
object |
{- "comment": {
- "content": {
- "text": "test\\n\\n-- \\nRegards,\\nAgent",
- "html": "test<br>-- <br>Regards,<div>Agent</div>",
- "attachments": [
- {
- "id": 2,
- "created_at": "2001-02-15T04:05:06+07:00",
- "filename": "logo.jpg",
- "content_type": "image/jpeg; charset=UTF-8; name=logo.jpg",
- "url": {
}
}
]
}
}
}{- "comment": {
- "id": 1,
- "created_at": "2001-02-15T04:05:06+07:00",
- "ticket": {
- "replies_count": 0,
- "comments_count": 1
}, - "commenter": {
- "id": 1,
- "name": "Agent1",
- "agent": true,
- "picture": {
}
}, - "content": {
- "text": "test\\n\\n-- \\nRegards,\\nAgent",
- "html": "test<br>-- <br>Regards,<div>Agent</div>",
- "attachments": [
- {
- "id": 2,
- "created_at": "2001-02-15T04:05:06+07:00",
- "filename": "logo.jpg",
- "content_type": "image/jpeg; charset=UTF-8; name=logo.jpg",
- "url": {
}
}
]
}
}
}Retrieves all users of the company
| with_invited | boolean Default: false If true, returns all the agents, including invited (unconfirmed) agents. |
| with_roles | string Default: "admin,agent,collaborator" Enum: "admin" "agent" "collaborator" "customer" |
| type | string Default: "user" Enum: "user" "customer_group" |
| Accept required | string Default: application/json Value: "application/json" Must be set to application/json. |
{- "users": [
- {
- "id": 1,
- "type": "user",
- "first_name": "Sarah",
- "last_name": "Caring",
- "name": "Sarah Caring",
- "role": "agent",
- "agent": true,
- "two_factor_authentication_enabled": true,
- "picture": {
}, - "can_members_access_group_tickets": null,
- "email_domains": [ ],
- "members_count": 0,
- "active_tickets_count": 0,
- "requested_tickets_count": 0,
- "teams": [ ]
}
]
}Creates a user for the company. Also used to create customer groups, which are treated as users.
| Accept required | string Default: application/json Value: "application/json" Must be set to application/json. |
object |
{- "user": {
- "name": "Test Name",
- "role": 10,
- "team_ids": [ ],
- "type": "user"
}
}{- "user": {
- "id": 1,
- "type": "user",
- "first_name": "Sarah",
- "last_name": "Caring",
- "name": "Sarah Caring",
- "role": "agent",
- "agent": true,
- "two_factor_authentication_enabled": true,
- "picture": {
}, - "can_members_access_group_tickets": null,
- "email_domains": [ ],
- "members_count": 0,
- "active_tickets_count": 0,
- "requested_tickets_count": 0,
- "teams": [ ]
}
}Retrieves the user specified by id.
| id required | integer The users ID. |
| max_tickets | integer Default: 5 Specify the maximum number of recent tickets you want to retrieve that this user created. If false returns all tickets. |
| Accept required | string Default: application/json Value: "application/json" Must be set to application/json. |
{- "user": {
- "id": 1,
- "type": "user",
- "first_name": "Sarah",
- "last_name": "Caring",
- "name": "Sarah Caring",
- "role": "agent",
- "agent": true,
- "two_factor_authentication_enabled": true,
- "picture": {
}, - "can_members_access_group_tickets": null,
- "email_domains": [ ],
- "members_count": 0,
- "active_tickets_count": 0,
- "requested_tickets_count": 0,
- "teams": [ ]
}
}Retrieves all members of a customer group specified by the customer groups ID.
| id required | integer The ID of the customer group. |
| Accept required | string Default: application/json Value: "application/json" Must be set to application/json. |
{- "users": [
- {
- "id": 1,
- "type": "user",
- "first_name": "Sarah",
- "last_name": "Caring",
- "name": "Sarah Caring",
- "role": "agent",
- "agent": true,
- "two_factor_authentication_enabled": true,
- "picture": {
}, - "can_members_access_group_tickets": null,
- "email_domains": [ ],
- "members_count": 0,
- "active_tickets_count": 0,
- "requested_tickets_count": 0,
- "teams": [ ]
}
]
}Add a user to a customer group as a member.
| id required | integer The ID of the customer group |
| Accept required | string Default: application/json Value: "application/json" Must be set to application/json. |
object |
{- "member": {
- "id": 0
}
}{- "user": {
- "id": 1,
- "type": "user",
- "first_name": "Sarah",
- "last_name": "Caring",
- "name": "Sarah Caring",
- "role": "agent",
- "agent": true,
- "two_factor_authentication_enabled": true,
- "picture": {
}, - "can_members_access_group_tickets": null,
- "email_domains": [ ],
- "members_count": 0,
- "active_tickets_count": 0,
- "requested_tickets_count": 0,
- "teams": [ ]
}
}Create, update, fetch and delete reply drafts on tickets.
Drafts allow agents to save work-in-progress replies before sending them.
Retrieves the reply draft for the ticket specified by the ticket ID. If no draft exists, returns a new draft with quoted content from the last message.
| id required | integer The ticket ID |
| quote | boolean Default: true If false, the draft is returned without quoted content from the previous message. |
| time_zone | string Default: "UTC" The time zone to use when formatting quoted content timestamps. Accepts IANA time zone names (e.g. "America/New_York"). |
| Accept required | string Default: application/json Value: "application/json" Must be set to application/json. |
{- "draft": {
- "id": 1,
- "cc": [
- {
- "name": "",
- "picture": {
}
}
], - "bcc": [
- {
- "name": "",
- "picture": {
}
}
], - "last_saved_by": {
- "id": 1,
- "name": "Agent1",
- "agent": true,
- "picture": {
}
}, - "last_saved_at": "2001-02-15T04:05:06+07:00",
- "content": {
- "text": "test\\n\\n-- \\nRegards,\\nAgent",
- "html": "test<br>-- <br>Regards,<div>Agent</div>",
- "attachments": [
- {
- "id": 2,
- "created_at": "2001-02-15T04:05:06+07:00",
- "filename": "logo.jpg",
- "content_type": "image/jpeg; charset=UTF-8; name=logo.jpg",
- "url": {
}
}
]
}
}
}Creates a reply draft on the ticket specified by the ticket ID.
| id required | integer The ticket ID |
| Accept required | string Default: application/json Value: "application/json" Must be set to application/json. |
A draft for a ticket reply
object |
{- "draft": {
- "content": {
- "text": "Draft reply content",
- "html": "<p>Draft reply content</p>",
- "attachment_ids": [
- 1240,
- 1241
]
}, - "bcc": "[email protected]"
}
}{- "draft": {
- "id": 1,
- "cc": [
- {
- "name": "",
- "picture": {
}
}
], - "bcc": [
- {
- "name": "",
- "picture": {
}
}
], - "last_saved_by": {
- "id": 1,
- "name": "Agent1",
- "agent": true,
- "picture": {
}
}, - "last_saved_at": "2001-02-15T04:05:06+07:00",
- "content": {
- "text": "test\\n\\n-- \\nRegards,\\nAgent",
- "html": "test<br>-- <br>Regards,<div>Agent</div>",
- "attachments": [
- {
- "id": 2,
- "created_at": "2001-02-15T04:05:06+07:00",
- "filename": "logo.jpg",
- "content_type": "image/jpeg; charset=UTF-8; name=logo.jpg",
- "url": {
}
}
]
}
}
}Updates the reply draft on the ticket specified by the ticket ID.
| id required | integer The ticket ID |
| Accept required | string Default: application/json Value: "application/json" Must be set to application/json. |
A draft for a ticket reply
object |
{- "draft": {
- "content": {
- "text": "Draft reply content",
- "html": "<p>Draft reply content</p>",
- "attachment_ids": [
- 1240,
- 1241
]
}, - "bcc": "[email protected]"
}
}{- "draft": {
- "id": 1,
- "cc": [
- {
- "name": "",
- "picture": {
}
}
], - "bcc": [
- {
- "name": "",
- "picture": {
}
}
], - "last_saved_by": {
- "id": 1,
- "name": "Agent1",
- "agent": true,
- "picture": {
}
}, - "last_saved_at": "2001-02-15T04:05:06+07:00",
- "content": {
- "text": "test\\n\\n-- \\nRegards,\\nAgent",
- "html": "test<br>-- <br>Regards,<div>Agent</div>",
- "attachments": [
- {
- "id": 2,
- "created_at": "2001-02-15T04:05:06+07:00",
- "filename": "logo.jpg",
- "content_type": "image/jpeg; charset=UTF-8; name=logo.jpg",
- "url": {
}
}
]
}
}
}Creates an email for the company
| Accept required | string Default: application/json Value: "application/json" Must be set to application/json. |
Payload to create a forwarding address
object |
{- "forwarding_address": {
- "name": "Company Inc",
- "filter_spam": true,
- "use_agent_name": true
}
}{- "forwarding_address": {
- "id": 1,
- "name": "Company Inc"
}
}A filter is composed of two parts; a rule and a consequence.
To create a filter, you need to create a rule, a consequence and then associate them together.
Creates a new rule
| Accept required | string Default: application/json Value: "application/json" Must be set to application/json. |
Payload to create a rule.
object |
{
}{- "rule": {
- "id": "5_20130430051603"
}
}Creates a new consequence
| Accept required | string Default: application/json Value: "application/json" Must be set to application/json. |
Payload to create a consequence.
object |
{- "consequence": {
- "archive": false,
- "spam": false,
- "trash": false,
- "label": "desktop_uploader",
- "assign_user": "22102",
- "assign_team": ""
}
}{- "consequence": {
- "id": "5_20130430051603"
}
}Creates a filter with a rule and a consequence.
| Accept required | string Default: application/json Value: "application/json" Must be set to application/json. |
| consequence_id | string |
| rule_id | string |
{- "consequence_id": "5_20130430051603",
- "rule_id": "5_20130430051601"
}Adds a label to the ticket. The label must already exist in your company.
| ticket_id required | integer The ticket ID |
| label_name required | string The name of the label to add |
| Accept required | string Default: application/json Value: "application/json" Must be set to application/json. |
{- "label": {
- "id": 5,
- "label": "important",
- "ticket": 1
}
}Removes a label from the ticket.
| ticket_id required | integer The ticket ID |
| label_name required | string The name of the label to remove |
| Accept required | string Default: application/json Value: "application/json" Must be set to application/json. |
Retrieves all the custom labels of a company.
| Accept required | string Default: application/json Value: "application/json" Must be set to application/json. |
{- "labels": [
- {
- "name": "label1",
- "color": "#ffffff"
}
]
}Retrieves all the replies of a ticket specified by it's ID
| id required | integer The tickets ID |
| Accept required | string Default: application/json Value: "application/json" Must be set to application/json. |
{- "replies": [
- {
- "id": 1,
- "created_at": "2001-02-15T04:05:06+07:00",
- "summary": "Reply Content",
- "cc": [ ],
- "bcc": [ ],
- "ticket": {
- "replies_count": 2,
- "comments_count": 0
}, - "replier": {
- "id": 1,
- "name": "Agent Argentus",
- "agent": true,
- "picture": {
}
}, - "content": {
- "body": "Reply Content",
- "html": null,
- "attachments": [ ]
}
}
]
}Post a reply to a ticket specified by it's ID. Admin users can reply on behalf of an agent.
| id required | integer The tickets ID |
| Accept required | string Default: application/json Value: "application/json" Must be set to application/json. |
A reply to a ticket
object |
{- "reply": {
- "cc": [ ],
- "bcc": [ ],
- "content": {
- "html": "<p>Reply content</p>",
- "text": "Reply content",
- "attachment_ids": [ ]
}
}
}{- "reply": {
- "id": 1,
- "created_at": "2001-02-15T04:05:06+07:00",
- "summary": "Reply Content",
- "cc": [ ],
- "bcc": [ ],
- "ticket": {
- "replies_count": 2,
- "comments_count": 0
}, - "replier": {
- "id": 1,
- "name": "Agent Argentus",
- "agent": true,
- "picture": {
}
}, - "content": {
- "body": "Reply Content",
- "html": null,
- "attachments": [ ]
}
}
}Retrieves the reply for the ticket specified by the ticket and reply IDs.
| ticket_id required | integer The tickets ID |
| id required | integer The reply ID |
| Accept required | string Default: application/json Value: "application/json" Must be set to application/json. |
{- "id": 1,
- "created_at": "2001-02-15T04:05:06+07:00",
- "summary": "Reply Content",
- "cc": [ ],
- "bcc": [ ],
- "ticket": {
- "replies_count": 2,
- "comments_count": 0
}, - "replier": {
- "id": 1,
- "name": "Agent Argentus",
- "agent": true,
- "picture": {
}
}, - "content": {
- "body": "Reply Content",
- "html": null,
- "attachments": [ ]
}
}Reports on average first response time, ticket counts and replies count.
Note: Reports are only available to admins.
Returns data points for average first response time.
| user | integer ID of the agent to filter data points on. |
| team | integer ID of the team to filter data points on. |
| label | string Name of the label to filter data points on. |
Date (string) or DateTime (string) or Timestamp (string) |
| Accept required | string Default: application/json Value: "application/json" Must be set to application/json. |
{- "data_points": [
- {
- "value": "42",
- "timestamp": "1360627200"
}
]
}Returns data points for tickets' count.
| user | integer ID of the agent to filter data points on. |
| team | integer ID of the team to filter data points on. |
| label | string Name of the label to filter data points on. |
Date (string) or DateTime (string) or Timestamp (string) |
| Accept required | string Default: application/json Value: "application/json" Must be set to application/json. |
{- "data_points": [
- {
- "value": "42",
- "timestamp": "1360627200"
}
]
}Returns data points for replies' count.
| user | integer ID of the agent to filter data points on. |
| team | integer ID of the team to filter data points on. |
| label | string Name of the label to filter data points on. |
Date (string) or DateTime (string) or Timestamp (string) |
| Accept required | string Default: application/json Value: "application/json" Must be set to application/json. |
{- "data_points": [
- {
- "value": "42",
- "timestamp": "1360627200"
}
]
}Snippets allow you to create canned responses you can use when replying to your customers.
List, create, update and delete snippets.
Returns all the snippets of the company
| Accept required | string Default: application/json Value: "application/json" Must be set to application/json. |
{- "snippets": [
- {
- "id": 4,
- "created_at": "2001-02-15T04:05:06+07:00",
- "name": "Facebook Link",
- "tags": "facebook, link",
- "content": {
- "text": "Facebook",
- "html": ""
}
}
]
}Creates a snippet for the company
| Accept required | string Default: application/json Value: "application/json" Must be set to application/json. |
Snippet payload to create a snippet
object |
{- "snippet": {
- "name": "Facebook Link",
- "tags": "facebook, link",
- "content": {
- "text": "Facebook",
- "html": ""
}
}
}{- "snippet": {
- "id": 4,
- "created_at": "2001-02-15T04:05:06+07:00",
- "name": "Facebook Link",
- "tags": "facebook, link",
- "content": {
- "text": "Facebook",
- "html": ""
}
}
}Updates a Snippet specified by it's ID.
| id required | integer The ID of the snippet to be updated. |
| Accept required | string Default: application/json Value: "application/json" Must be set to application/json. |
Snippet payload to create a snippet
object |
{- "snippet": {
- "name": "Facebook Link",
- "tags": "facebook, link",
- "content": {
- "text": "Facebook",
- "html": ""
}
}
}{- "snippet": {
- "id": 4,
- "created_at": "2001-02-15T04:05:06+07:00",
- "name": "Facebook Link",
- "tags": "facebook, link",
- "content": {
- "text": "Facebook",
- "html": ""
}
}
}Assigns a ticket to a team specified by the tickets ID and the team to be assigned (If the ticket is already assigned to a team and a user, reassigning the ticket to another team will remove the user assignee).
| id required | integer The tickets ID |
| Accept required | string Default: application/json Value: "application/json" Must be set to application/json. |
A ticket assignation to a team
object |
{- "team_assignment": {
- "team_id": 1
}
}{- "team_assignment": {
- "id": 2,
- "created_at": "2001-02-15T04:05:06+07:00",
- "ticket": {
- "id": 1
}
}, - "asignee": {
- "team": {
- "id": 2,
- "name": "Team 1",
- "picture": {
}
}
}
}Retrieves all the teams of the company
| with_users | boolean If true, retrieves only teams with users in them. |
| user | string Value: "me" When me, retrives only the teams of the current user. All other values passed to this parameter is ignored |
| Accept required | string Default: application/json Value: "application/json" Must be set to application/json. |
{- "teams": [
- {
- "id": 2,
- "name": "Team 1",
- "picture": {
}
}
]
}Actions you can do on tickets.
List, add, create, search, delete, archive, unarchive, assign, answer, mark as spam, trash, show replies and comment on tickets.
Returns 15 tickets of the company in the order of their last activity.
Only tickets that are not archived are returned.
| per_page | integer Default: 15 Specifies the number of tickets to retrieve. Must be less than 100. |
| page | integer Default: 1 Specifies the page of tickets to retrieve. |
| archived | string Default: false If true, retrieves only archived tickets. If false, it does not return any archived tickets. If any, includes archived tickets in the result. |
| spam | boolean Default: false If true, retrieved tickets contain tickets marked as spam. |
| trash | boolean Default: false If true, retrieved tickets contain tickets that are trashed. |
| replies | boolean If true, retrieved tickets contain only tickets with replies. If false, retrieved tickets contain only tickets without replies. |
| max_replies | integer Specifies the number of replies that a ticket must have. This cannot be used with replies = false. |
| assigned_user | string If me, retrieves only tickets assigned to the current user If agent_id, retrieves only tickets assigned to the Agent with id agent_id If any, retrieves tickets that are assigned to any user If none, retrieves tickets that aren't assigned to any user. |
| assigned_team | string If mine, retrieves only tickets assigned to the teams of the current user If team_id, retrieves only tickets assigned to the team with id team_id If none, retrieves tickets that aren't assigned to any team. |
| label | string Set to label_name, retrieves only the tickets with the label label_name |
Date (string) or DateTime (string) or Timestamp (string) Can be used to retrieve tickets whose last activity timestamp is greater than the time specified in this parameter. The last activity timestamp of a ticket is updated whenever there is a new reply or a new comment on the ticket. To retrieve tickets sorted by creation time, instead of last activity, send the sort_by parameter along with the since parameter. | |
Date (string) or DateTime (string) or Timestamp (string) Can be used to retrieve tickets whose last activity timestamp is lesser than the time specified in this parameter. The last activity timestamp of a ticket is updated whenever there is a new reply or a new comment on the ticket. To retrieve tickets sorted by creation time, instead of last activity, send the sort_by parameter along with the until parameter. | |
| sort_by | string Default: "last_activity" If last_activity, retrieves tickets sorted by last activity. If creation_time, retrieves tickets sorted by creation time. |
| requester_emails | string Can be used to filter tickets by requester email addresses. Accepts a string of comma separated email addresses. |
| total_only | boolean Default: false Can be used in conjunction with any other parameters to return only the total number of tickets |
| Accept required | string Default: application/json Value: "application/json" Must be set to application/json. |
{- "total": 1,
- "current_page": 1,
- "per_page": 0,
- "total_pages": 0,
- "tickets": [
- {
- "id": 1,
- "subject": "Welcome to SupportBee",
- "replies_count": 0,
- "comments_count": 0,
- "last_activity_at": "2001-02-15T04:05:06+07:00",
- "created_at": "2001-02-15T04:05:06+07:00",
- "unanswered": true,
- "archived": false,
- "spam": false,
- "summary": "test -- Regards, Agent",
- "cc": [ ],
- "bcc": [ ],
- "labels": [ ],
- "requester": {
- "id": 21,
- "name": "Robert Requester",
- "role": "customer",
- "agent": false,
- "picture": [
- {
}
]
}, - "content": {
- "text": "test\\n\\n-- \\nRegards,\\nAgent",
- "html": "test<br>-- <br>Regards,<div>Agent</div>",
- "attachments": [
- {
- "id": 2,
- "created_at": "2001-02-15T04:05:06+07:00",
- "filename": "logo.jpg",
- "content_type": "image/jpeg; charset=UTF-8; name=logo.jpg",
- "url": {
}
}
]
}, - "current_user_asignee": {
- "id": 19,
- "name": "John Doe",
- "agent": true,
- "picture": [
- {
}
]
}, - "current_team_asignee": {
- "id": 1,
- "name": "Team 1",
- "agent": false,
- "picture": [
- {
}
]
}
}
]
}This API endpoint doesn't require Authentication and can be used directly in your website's javascript (to create a ticket in your SupportBee desk upon a form submission for example). When Authentication information not provided, the endpoint is rate limited to 5 API requests per hour per IP address to prevent abuse by spammers. When the rate limit is hit, the endpoint will respond with a 429 status code.
If you use the API endpoint in your website's backend, we recommended that you provide Authentication information. When Authentication information is provided, the rate limit is 8 tickets per minute.
| Accept required | string Default: application/json Value: "application/json" Must be set to application/json. |
A support ticket
object |
{- "ticket": {
- "subject": "Subject",
- "requester_name": "John Doe",
- "notify_requester": false,
- "content": {
- "text": "Creating a ticket",
- "html": "<p>Creating a ticket</p>",
- "attachment_ids": [
- 1240,
- 1241
]
}, - "forwarding_address_id": ""
}
}{- "id": 1,
- "subject": "Welcome to SupportBee",
- "replies_count": 0,
- "comments_count": 0,
- "last_activity_at": "2001-02-15T04:05:06+07:00",
- "created_at": "2001-02-15T04:05:06+07:00",
- "unanswered": true,
- "archived": false,
- "spam": false,
- "summary": "test -- Regards, Agent",
- "cc": [ ],
- "bcc": [ ],
- "labels": [ ],
- "requester": {
- "id": 21,
- "name": "Robert Requester",
- "role": "customer",
- "agent": false,
- "picture": [
- {
}
]
}, - "content": {
- "text": "test\\n\\n-- \\nRegards,\\nAgent",
- "html": "test<br>-- <br>Regards,<div>Agent</div>",
- "attachments": [
- {
- "id": 2,
- "created_at": "2001-02-15T04:05:06+07:00",
- "filename": "logo.jpg",
- "content_type": "image/jpeg; charset=UTF-8; name=logo.jpg",
- "url": {
}
}
]
}, - "current_user_asignee": {
- "id": 19,
- "name": "John Doe",
- "agent": true,
- "picture": [
- {
}
]
}, - "current_team_asignee": {
- "id": 1,
- "name": "Team 1",
- "agent": false,
- "picture": [
- {
}
]
}
}Returns 15 tickets of the company in the order of their last activity matching the search query.
| query required | string Specifies the query or keywords to searched. |
| per_page | integer Default: 15 Specifies the number of tickets to retrieve. Must be less than 100. |
| page | integer Default: 1 Specifies the page of tickets to retrieve. |
| spam | boolean Default: false If true, retrieved tickets contain tickets marked as spam. |
| trash | boolean Default: false If true, retrieved tickets contain tickets marked as trash. |
| Accept required | string Default: application/json Value: "application/json" Must be set to application/json. |
{- "total": 1,
- "current_page": 1,
- "per_page": 10,
- "total_pages": 1,
- "tickets": [
- {
- "id": 1,
- "subject": "Welcome to SupportBee",
- "replies_count": 0,
- "comments_count": 0,
- "last_activity_at": "2001-02-15T04:05:06+07:00",
- "created_at": "2001-02-15T04:05:06+07:00",
- "unanswered": true,
- "archived": false,
- "spam": false,
- "summary": "test -- Regards, Agent",
- "cc": [ ],
- "bcc": [ ],
- "labels": [ ],
- "requester": {
- "id": 21,
- "name": "Robert Requester",
- "role": "customer",
- "agent": false,
- "picture": [
- {
}
]
}, - "content": {
- "text": "test\\n\\n-- \\nRegards,\\nAgent",
- "html": "test<br>-- <br>Regards,<div>Agent</div>",
- "attachments": [
- {
- "id": 2,
- "created_at": "2001-02-15T04:05:06+07:00",
- "filename": "logo.jpg",
- "content_type": "image/jpeg; charset=UTF-8; name=logo.jpg",
- "url": {
}
}
]
}, - "current_user_asignee": {
- "id": 19,
- "name": "John Doe",
- "agent": true,
- "picture": [
- {
}
]
}, - "current_team_asignee": {
- "id": 1,
- "name": "Team 1",
- "agent": false,
- "picture": [
- {
}
]
}
}
]
}Retrieves a ticked recognized by it's ID
| id required | integer The tickets ID |
| Accept required | string Default: application/json Value: "application/json" Must be set to application/json. |
{- "ticket": {
- "id": 1,
- "subject": "Welcome to SupportBee",
- "replies_count": 0,
- "comments_count": 0,
- "last_activity_at": "2001-02-15T04:05:06+07:00",
- "created_at": "2001-02-15T04:05:06+07:00",
- "unanswered": true,
- "archived": false,
- "spam": false,
- "summary": "test -- Regards, Agent",
- "cc": [ ],
- "bcc": [ ],
- "labels": [ ],
- "requester": {
- "id": 21,
- "name": "Robert Requester",
- "role": "customer",
- "agent": false,
- "picture": [
- {
}
]
}, - "content": {
- "text": "test\\n\\n-- \\nRegards,\\nAgent",
- "html": "test<br>-- <br>Regards,<div>Agent</div>",
- "attachments": [
- {
- "id": 2,
- "created_at": "2001-02-15T04:05:06+07:00",
- "filename": "logo.jpg",
- "content_type": "image/jpeg; charset=UTF-8; name=logo.jpg",
- "url": {
}
}
]
}, - "current_user_asignee": {
- "id": 19,
- "name": "John Doe",
- "agent": true,
- "picture": [
- {
}
]
}, - "current_team_asignee": {
- "id": 1,
- "name": "Team 1",
- "agent": false,
- "picture": [
- {
}
]
}
}
}Deletes a ticked recognized by it's ID. Only Admins can delete trashed tickets.
| id required | integer The tickets ID |
| Accept required | string Default: application/json Value: "application/json" Must be set to application/json. |
Assigns a ticket to a user specified by the tickets ID and the user to be assigned (If the ticket is already assigned to a team, then the given user must be a member of that team).
| id required | integer The tickets ID |
| Accept required | string Default: application/json Value: "application/json" Must be set to application/json. |
A ticket assignation to a user
object |
{- "user_assignment": {
- "user_id": 1
}
}{- "user_assignment": {
- "id": 2,
- "created_at": "2001-02-15T04:05:06+07:00",
- "ticket": {
- "id": 1
}
}, - "asignee": {
- "user": {
- "id": 1,
- "name": "Agent1",
- "agent": true,
- "picture": {
}
}
}
}Assigns a ticket to a team specified by the tickets ID and the team to be assigned (If the ticket is already assigned to a team and a user, reassigning the ticket to another team will remove the user assignee).
| id required | integer The tickets ID |
| Accept required | string Default: application/json Value: "application/json" Must be set to application/json. |
A ticket assignation to a team
object |
{- "team_assignment": {
- "team_id": 1
}
}{- "team_assignment": {
- "id": 2,
- "created_at": "2001-02-15T04:05:06+07:00",
- "ticket": {
- "id": 1
}
}, - "asignee": {
- "team": {
- "id": 2,
- "name": "Team 1",
- "picture": {
}
}
}
}Retrieves all the replies of a ticket specified by it's ID
| id required | integer The tickets ID |
| Accept required | string Default: application/json Value: "application/json" Must be set to application/json. |
{- "replies": [
- {
- "id": 1,
- "created_at": "2001-02-15T04:05:06+07:00",
- "summary": "Reply Content",
- "cc": [ ],
- "bcc": [ ],
- "ticket": {
- "replies_count": 2,
- "comments_count": 0
}, - "replier": {
- "id": 1,
- "name": "Agent Argentus",
- "agent": true,
- "picture": {
}
}, - "content": {
- "body": "Reply Content",
- "html": null,
- "attachments": [ ]
}
}
]
}Post a reply to a ticket specified by it's ID. Admin users can reply on behalf of an agent.
| id required | integer The tickets ID |
| Accept required | string Default: application/json Value: "application/json" Must be set to application/json. |
A reply to a ticket
object |
{- "reply": {
- "cc": [ ],
- "bcc": [ ],
- "content": {
- "html": "<p>Reply content</p>",
- "text": "Reply content",
- "attachment_ids": [ ]
}
}
}{- "reply": {
- "id": 1,
- "created_at": "2001-02-15T04:05:06+07:00",
- "summary": "Reply Content",
- "cc": [ ],
- "bcc": [ ],
- "ticket": {
- "replies_count": 2,
- "comments_count": 0
}, - "replier": {
- "id": 1,
- "name": "Agent Argentus",
- "agent": true,
- "picture": {
}
}, - "content": {
- "body": "Reply Content",
- "html": null,
- "attachments": [ ]
}
}
}Retrieves the reply for the ticket specified by the ticket and reply IDs.
| ticket_id required | integer The tickets ID |
| id required | integer The reply ID |
| Accept required | string Default: application/json Value: "application/json" Must be set to application/json. |
{- "id": 1,
- "created_at": "2001-02-15T04:05:06+07:00",
- "summary": "Reply Content",
- "cc": [ ],
- "bcc": [ ],
- "ticket": {
- "replies_count": 2,
- "comments_count": 0
}, - "replier": {
- "id": 1,
- "name": "Agent Argentus",
- "agent": true,
- "picture": {
}
}, - "content": {
- "body": "Reply Content",
- "html": null,
- "attachments": [ ]
}
}Retrieves all the comments on the ticket specified by the ticket ID.
| id required | integer The tickets ID |
| Accept required | string Default: application/json Value: "application/json" Must be set to application/json. |
{- "comments": [
- {
- "id": 1,
- "created_at": "2001-02-15T04:05:06+07:00",
- "ticket": {
- "replies_count": 0,
- "comments_count": 1
}, - "commenter": {
- "id": 1,
- "name": "Agent1",
- "agent": true,
- "picture": {
}
}, - "content": {
- "text": "test\\n\\n-- \\nRegards,\\nAgent",
- "html": "test<br>-- <br>Regards,<div>Agent</div>",
- "attachments": [
- {
- "id": 2,
- "created_at": "2001-02-15T04:05:06+07:00",
- "filename": "logo.jpg",
- "content_type": "image/jpeg; charset=UTF-8; name=logo.jpg",
- "url": {
}
}
]
}
}
]
}Creates a comment on a ticket specified by the ticket ID.
| id required | integer The tickets ID |
| Accept required | string Default: application/json Value: "application/json" Must be set to application/json. |
A comment for a ticket
object |
{- "comment": {
- "content": {
- "text": "test\\n\\n-- \\nRegards,\\nAgent",
- "html": "test<br>-- <br>Regards,<div>Agent</div>",
- "attachments": [
- {
- "id": 2,
- "created_at": "2001-02-15T04:05:06+07:00",
- "filename": "logo.jpg",
- "content_type": "image/jpeg; charset=UTF-8; name=logo.jpg",
- "url": {
}
}
]
}
}
}{- "comment": {
- "id": 1,
- "created_at": "2001-02-15T04:05:06+07:00",
- "ticket": {
- "replies_count": 0,
- "comments_count": 1
}, - "commenter": {
- "id": 1,
- "name": "Agent1",
- "agent": true,
- "picture": {
}
}, - "content": {
- "text": "test\\n\\n-- \\nRegards,\\nAgent",
- "html": "test<br>-- <br>Regards,<div>Agent</div>",
- "attachments": [
- {
- "id": 2,
- "created_at": "2001-02-15T04:05:06+07:00",
- "filename": "logo.jpg",
- "content_type": "image/jpeg; charset=UTF-8; name=logo.jpg",
- "url": {
}
}
]
}
}
}Adds a label to the ticket. The label must already exist in your company.
| ticket_id required | integer The ticket ID |
| label_name required | string The name of the label to add |
| Accept required | string Default: application/json Value: "application/json" Must be set to application/json. |
{- "label": {
- "id": 5,
- "label": "important",
- "ticket": 1
}
}Removes a label from the ticket.
| ticket_id required | integer The ticket ID |
| label_name required | string The name of the label to remove |
| Accept required | string Default: application/json Value: "application/json" Must be set to application/json. |
Retrieves the audit trail for the ticket specified by the ticket ID. Returns a chronological list of actions performed on the ticket.
| id required | integer The ticket ID |
| Accept required | string Default: application/json Value: "application/json" Must be set to application/json. |
{- "audit": [
- {
- "action": "Commented",
- "actor": {
- "name": "John Doe",
}, - "url": "#comments/1",
- "severity": "info",
- "happened_at": "2026-03-18T09:23:47Z"
}
]
}Retrieves the reply draft for the ticket specified by the ticket ID. If no draft exists, returns a new draft with quoted content from the last message.
| id required | integer The ticket ID |
| quote | boolean Default: true If false, the draft is returned without quoted content from the previous message. |
| time_zone | string Default: "UTC" The time zone to use when formatting quoted content timestamps. Accepts IANA time zone names (e.g. "America/New_York"). |
| Accept required | string Default: application/json Value: "application/json" Must be set to application/json. |
{- "draft": {
- "id": 1,
- "cc": [
- {
- "name": "",
- "picture": {
}
}
], - "bcc": [
- {
- "name": "",
- "picture": {
}
}
], - "last_saved_by": {
- "id": 1,
- "name": "Agent1",
- "agent": true,
- "picture": {
}
}, - "last_saved_at": "2001-02-15T04:05:06+07:00",
- "content": {
- "text": "test\\n\\n-- \\nRegards,\\nAgent",
- "html": "test<br>-- <br>Regards,<div>Agent</div>",
- "attachments": [
- {
- "id": 2,
- "created_at": "2001-02-15T04:05:06+07:00",
- "filename": "logo.jpg",
- "content_type": "image/jpeg; charset=UTF-8; name=logo.jpg",
- "url": {
}
}
]
}
}
}Creates a reply draft on the ticket specified by the ticket ID.
| id required | integer The ticket ID |
| Accept required | string Default: application/json Value: "application/json" Must be set to application/json. |
A draft for a ticket reply
object |
{- "draft": {
- "content": {
- "text": "Draft reply content",
- "html": "<p>Draft reply content</p>",
- "attachment_ids": [
- 1240,
- 1241
]
}, - "bcc": "[email protected]"
}
}{- "draft": {
- "id": 1,
- "cc": [
- {
- "name": "",
- "picture": {
}
}
], - "bcc": [
- {
- "name": "",
- "picture": {
}
}
], - "last_saved_by": {
- "id": 1,
- "name": "Agent1",
- "agent": true,
- "picture": {
}
}, - "last_saved_at": "2001-02-15T04:05:06+07:00",
- "content": {
- "text": "test\\n\\n-- \\nRegards,\\nAgent",
- "html": "test<br>-- <br>Regards,<div>Agent</div>",
- "attachments": [
- {
- "id": 2,
- "created_at": "2001-02-15T04:05:06+07:00",
- "filename": "logo.jpg",
- "content_type": "image/jpeg; charset=UTF-8; name=logo.jpg",
- "url": {
}
}
]
}
}
}Updates the reply draft on the ticket specified by the ticket ID.
| id required | integer The ticket ID |
| Accept required | string Default: application/json Value: "application/json" Must be set to application/json. |
A draft for a ticket reply
object |
{- "draft": {
- "content": {
- "text": "Draft reply content",
- "html": "<p>Draft reply content</p>",
- "attachment_ids": [
- 1240,
- 1241
]
}, - "bcc": "[email protected]"
}
}{- "draft": {
- "id": 1,
- "cc": [
- {
- "name": "",
- "picture": {
}
}
], - "bcc": [
- {
- "name": "",
- "picture": {
}
}
], - "last_saved_by": {
- "id": 1,
- "name": "Agent1",
- "agent": true,
- "picture": {
}
}, - "last_saved_at": "2001-02-15T04:05:06+07:00",
- "content": {
- "text": "test\\n\\n-- \\nRegards,\\nAgent",
- "html": "test<br>-- <br>Regards,<div>Agent</div>",
- "attachments": [
- {
- "id": 2,
- "created_at": "2001-02-15T04:05:06+07:00",
- "filename": "logo.jpg",
- "content_type": "image/jpeg; charset=UTF-8; name=logo.jpg",
- "url": {
}
}
]
}
}
}Assigns a ticket to a user specified by the tickets ID and the user to be assigned (If the ticket is already assigned to a team, then the given user must be a member of that team).
| id required | integer The tickets ID |
| Accept required | string Default: application/json Value: "application/json" Must be set to application/json. |
A ticket assignation to a user
object |
{- "user_assignment": {
- "user_id": 1
}
}{- "user_assignment": {
- "id": 2,
- "created_at": "2001-02-15T04:05:06+07:00",
- "ticket": {
- "id": 1
}
}, - "asignee": {
- "user": {
- "id": 1,
- "name": "Agent1",
- "agent": true,
- "picture": {
}
}
}
}Retrieves all users of the company
| with_invited | boolean Default: false If true, returns all the agents, including invited (unconfirmed) agents. |
| with_roles | string Default: "admin,agent,collaborator" Enum: "admin" "agent" "collaborator" "customer" |
| type | string Default: "user" Enum: "user" "customer_group" |
| Accept required | string Default: application/json Value: "application/json" Must be set to application/json. |
{- "users": [
- {
- "id": 1,
- "type": "user",
- "first_name": "Sarah",
- "last_name": "Caring",
- "name": "Sarah Caring",
- "role": "agent",
- "agent": true,
- "two_factor_authentication_enabled": true,
- "picture": {
}, - "can_members_access_group_tickets": null,
- "email_domains": [ ],
- "members_count": 0,
- "active_tickets_count": 0,
- "requested_tickets_count": 0,
- "teams": [ ]
}
]
}Creates a user for the company. Also used to create customer groups, which are treated as users.
| Accept required | string Default: application/json Value: "application/json" Must be set to application/json. |
object |
{- "user": {
- "name": "Test Name",
- "role": 10,
- "team_ids": [ ],
- "type": "user"
}
}{- "user": {
- "id": 1,
- "type": "user",
- "first_name": "Sarah",
- "last_name": "Caring",
- "name": "Sarah Caring",
- "role": "agent",
- "agent": true,
- "two_factor_authentication_enabled": true,
- "picture": {
}, - "can_members_access_group_tickets": null,
- "email_domains": [ ],
- "members_count": 0,
- "active_tickets_count": 0,
- "requested_tickets_count": 0,
- "teams": [ ]
}
}Retrieves the user specified by id.
| id required | integer The users ID. |
| max_tickets | integer Default: 5 Specify the maximum number of recent tickets you want to retrieve that this user created. If false returns all tickets. |
| Accept required | string Default: application/json Value: "application/json" Must be set to application/json. |
{- "user": {
- "id": 1,
- "type": "user",
- "first_name": "Sarah",
- "last_name": "Caring",
- "name": "Sarah Caring",
- "role": "agent",
- "agent": true,
- "two_factor_authentication_enabled": true,
- "picture": {
}, - "can_members_access_group_tickets": null,
- "email_domains": [ ],
- "members_count": 0,
- "active_tickets_count": 0,
- "requested_tickets_count": 0,
- "teams": [ ]
}
}Updates a user specified by id. Cannot update the user whose API Token is being used. You must use the UI or submit a form to /users/{id}/settings to do that.
| id required | integer The users ID. |
| Accept required | string Default: application/json Value: "application/json" Must be set to application/json. |
This specifies the data in JSON required to update a user. All fields are optional. Any fields not provided will not be updated.
object |
{- "user": {
- "name": "Test Name",
- "role": 10,
- "team_ids": [ ],
- "type": "user"
}
}{- "user": {
- "id": 1,
- "type": "user",
- "first_name": "Sarah",
- "last_name": "Caring",
- "name": "Sarah Caring",
- "role": "agent",
- "agent": true,
- "two_factor_authentication_enabled": true,
- "picture": {
}, - "can_members_access_group_tickets": null,
- "email_domains": [ ],
- "members_count": 0,
- "active_tickets_count": 0,
- "requested_tickets_count": 0,
- "teams": [ ]
}
}Retrieves all members of a customer group specified by the customer groups ID.
| id required | integer The ID of the customer group. |
| Accept required | string Default: application/json Value: "application/json" Must be set to application/json. |
{- "users": [
- {
- "id": 1,
- "type": "user",
- "first_name": "Sarah",
- "last_name": "Caring",
- "name": "Sarah Caring",
- "role": "agent",
- "agent": true,
- "two_factor_authentication_enabled": true,
- "picture": {
}, - "can_members_access_group_tickets": null,
- "email_domains": [ ],
- "members_count": 0,
- "active_tickets_count": 0,
- "requested_tickets_count": 0,
- "teams": [ ]
}
]
}Add a user to a customer group as a member.
| id required | integer The ID of the customer group |
| Accept required | string Default: application/json Value: "application/json" Must be set to application/json. |
object |
{- "member": {
- "id": 0
}
}{- "user": {
- "id": 1,
- "type": "user",
- "first_name": "Sarah",
- "last_name": "Caring",
- "name": "Sarah Caring",
- "role": "agent",
- "agent": true,
- "two_factor_authentication_enabled": true,
- "picture": {
}, - "can_members_access_group_tickets": null,
- "email_domains": [ ],
- "members_count": 0,
- "active_tickets_count": 0,
- "requested_tickets_count": 0,
- "teams": [ ]
}
}