Query structured spec data via REST or MCP. Get exactly what your agent needs.
https://{subdomain}.{domain}.com
/api/v2/account/settings
Shows the settings that are available for the account.
Success response
GET /api/v2/account/settings
/api/v2/activities
Lists ticket activities in the last 30 days affecting the agent making the request.
Also sideloads the following arrays of user records:
See Pagination.
Returns a maximum of 100 records per page.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| since | query | optional | string | A UTC time in ISO 8601 format to return ticket activities since said date. |
Success response
GET /api/v2/activities
/api/v2/activities/count
Returns an approximate count of ticket activities in the last 30 days affecting the agent making the request. If the count exceeds 100,000, the count will return a cached result. This cached result will update every 24 hours.
The count[refreshed_at] property is a timestamp that indicates when the count was last updated.
Note: When the count exceeds 100,000, count[refreshed_at] may occasionally be null.
This indicates that the count is being updated in the background, and count[value] is limited to 100,000 until the update is complete.
Count of ticket activities
GET /api/v2/activities/count
/api/v2/activities/{activity_id}
Lists a specific activity.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| activity_id | path | optional | integer | The activity ID |
Success response
GET /api/v2/activities/{activity_id}
/api/lotus/assignables/groups.json
List assignable groups on the AssigneeField
Success response
GET /api/lotus/assignables/groups.json
/api/lotus/assignables/groups/{group_id}/agents.json
List assignable agents from a group on the AssigneeField
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| group_id | path | optional | integer | The ID of the group |
Success response
GET /api/lotus/assignables/groups/{group_id}/agents.json
/api/lotus/assignables/autocomplete.json
List assignable groups and agents based on query matched against name
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| name | query | optional | string | Query string used to search assignable groups & agents in the AssigneeField |
Success response
GET /api/lotus/assignables/autocomplete.json
/api/v2/attachments/{attachment_id}
Shows attachment details. You can get the value of the attachment_id parameter by listing the ticket’s comments.
See List Comments. Each comment
in the list has an attachments list that specifies an id for each attachment.
#### Allowed for
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| attachment_id | path | optional | integer | The ID of the attachment |
Success Response
GET /api/v2/attachments/{attachment_id}
/api/v2/audit_logs
See Pagination.
Returns a maximum of 100 records per page.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| filter[source_type] | query | optional | string | Filter audit logs by the source type. For example, user or rule |
| filter[source_id] | query | optional | integer | Filter audit logs by the source id. Requires |
| filter[actor_id] | query | optional | integer | Filter audit logs by the actor id |
| filter[ip_address] | query | optional | string | Filter audit logs by the ip address |
| filter[created_at] | query | optional | string | Filter audit logs by the time of creation. When used, you must specify |
| filter[action] | query | optional | string | Filter audit logs by the action |
| sort_by | query | optional | string | Offset pagination only. Sort audit logs. Default is |
| sort_order | query | optional | string | Offset pagination only. Sort audit logs. Default is |
| sort | query | optional | string | Cursor pagination only. Sort audit logs. Default is |
Success response
GET /api/v2/audit_logs
/api/v2/audit_logs/{audit_log_id}
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| audit_log_id | path | optional | integer | The ID of the audit log |
Success response
GET /api/v2/audit_logs/{audit_log_id}
/api/v2/automations
Lists all automations for the current account.
You can pass in any combination of the following optional filters:
| Name | Type | Comment |
|---|---|---|
| active | boolean | Only active automations if true, inactive automations if false |
| sort_by | string | Possible values are “alphabetical”, “created_at”, “updated_at”, “usage_1h”, “usage_24h”, or “usage_7d”. Defaults to “position” |
| sort_order | string | One of “asc” or “desc”. Defaults to “asc” for alphabetical and position sort, “desc” for all others |
The following sideloads are supported. The usage sideloads are only supported on the Support Professional or Suite Growth plan or above.
| Name | Will sideload |
|---|---|
| app_installation | The app installation that requires each automation, if present |
| permissions | The permissions for each automation |
| usage_1h | The number of times each automation has been used in the past hour |
| usage_24h | The number of times each automation has been used in the past day |
| usage_7d | The number of times each automation has been used in the past week |
| usage_30d | The number of times each automation has been used in the past thirty days |
See Pagination.
Returns a maximum of 100 records per page.
Success response
GET /api/v2/automations
/api/v2/automations/active
Lists all active automations.
You can pass in any combination of the following optional filters:
| Name | Type | Comment |
|---|---|---|
| sort_by | string | Possible values are “alphabetical”, “created_at”, “updated_at”, “usage_1h”, “usage_24h”, or “usage_7d”. Defaults to “position” |
| sort_order | string | One of “asc” or “desc”. Defaults to “asc” for alphabetical and position sort, “desc” for all others |
The following sideloads are supported:
| Name | Will sideload |
|---|---|
| app_installation | The app installation that requires each automation, if present |
| permissions | The permissions for each automation |
| usage_1h | The number of times each automation has been used in the past hour |
| usage_24h | The number of times each automation has been used in the past day |
| usage_7d | The number of times each automation has been used in the past week |
| usage_30d | The number of times each automation has been used in the past thirty days |
Success response
GET /api/v2/automations/active
/api/v2/automations/search
The following sideloads are supported. For more information, see Side-loading.
| Name | Will sideload |
|---|---|
| app_installation | The app installation that requires each automation, if present |
| permissions | The permissions for each automation |
| usage_1h | The number of times each automation has been used in the past hour |
| usage_24h | The number of times each automation has been used in the past day |
| usage_7d | The number of times each automation has been used in the past week |
| usage_30d | The number of times each automation has been used in the past thirty days |
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| query | query | optional | string | Query string used to find all automations with matching title |
| active | query | optional | boolean | Filter by active automations if true or inactive automations if false |
| sort_by | query | optional | string | Possible values are “alphabetical”, “created_at”, “updated_at”, and “position”. If unspecified, the automations are sorted by relevance |
| sort_order | query | optional | string | One of “asc” or “desc”. Defaults to “asc” for alphabetical and position sort, “desc” for all others |
| include | query | optional | string | A sideload to include in the response. See Sideloads |
Success response
GET /api/v2/automations/search
/api/v2/automations/{automation_id}
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| automation_id | path | optional | integer | The ID of the automation |
Success response
GET /api/v2/automations/{automation_id}
/api/v2/bookmarks
Successful response
GET /api/v2/bookmarks
/api/v2/brands
Returns a list of all brands for your account sorted by name.
See Pagination.
Successful response
GET /api/v2/brands
/api/v2/brands/check_host_mapping
Returns a JSON object determining whether a host mapping is valid for a given subdomain.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| host_mapping | query | optional | string | The hostmapping to a brand, if any (only admins view this key) |
| subdomain | query | optional | string | Subdomain for a given Zendesk account address |
Successful response
GET /api/v2/brands/check_host_mapping
/api/v2/brands/{brand_id}
Returns a brand for your account.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| brand_id | path | optional | integer | The ID of the brand |
Successful response
GET /api/v2/brands/{brand_id}
/api/v2/brands/{brand_id}/check_host_mapping
Returns a JSON object determining whether a host mapping is valid for the given brand.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| brand_id | path | optional | integer | The ID of the brand |
Successful response
GET /api/v2/brands/{brand_id}/check_host_mapping
/api/v2/custom_objects/{custom_object_key}/fields
Lists all undeleted custom fields for the specified object.
See Pagination.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| custom_object_key | path | optional | string | The key of a custom object |
| include_standard_fields | query | optional | boolean | Include standard fields if true. Exclude them if false |
Success response
GET /api/v2/custom_objects/{custom_object_key}/fields
/api/v2/custom_objects/{custom_object_key}/fields/{custom_object_field_key_or_id}
Returns a custom field for a specific object using a provided key or id of the field.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| custom_object_key | path | optional | string | The key of a custom object |
| custom_object_field_key_or_id | path | optional | string | The key or id of a custom object field |
Custom Object Field
GET /api/v2/custom_objects/{custom_object_key}/fields/{custom_object_field_key_or_id}
/api/v2/custom_objects/{custom_object_key}/limits/field_limit
List the current count and the limit for a custom object’s fields
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| custom_object_key | path | optional | string | The key of a custom object |
Success response
GET /api/v2/custom_objects/{custom_object_key}/limits/field_limit
/api/v2/custom_objects/limits/record_limit
List the current count and the limit for custom object records
Success response
GET /api/v2/custom_objects/limits/record_limit
/api/v2/custom_objects/{custom_object_key}/records
Lists all undeleted custom object records for the specified object
#### Pagination
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| custom_object_key | path | optional | string | The key of a custom object |
| filter[ids] | query | optional | string | Optional comma-separated list of ids to filter records by. If one or more ids are specified, only matching records are returned. The ids must be unique and are case sensitive. |
| filter[external_ids] | query | optional | string | Optional comma-separated list of external ids to filter records by. If one or more ids are specified, only matching records are returned. The ids must be unique and are case sensitive. |
| sort | query | optional | string | One of |
| page[before] | query | optional | string | A pagination cursor that tells the endpoint which page to start on. It should be a |
| page[after] | query | optional | string | A pagination cursor that tells the endpoint which page to start on. It should be a |
| page[size] | query | optional | integer | Specifies how many records should be returned in the response. You can specify up to 100 records per page. |
Success response
GET /api/v2/custom_objects/{custom_object_key}/records
/api/v2/custom_objects/{custom_object_key}/records/autocomplete
Retrieves an array of custom object records that have a field value that matches the value specified in the name parameter.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| custom_object_key | path | optional | string | The key of a custom object |
| name | query | optional | string | Part of a name of the record you are searching for |
| page[before] | query | optional | string | A pagination cursor that tells the endpoint which page to start on. It should be a |
| page[after] | query | optional | string | A pagination cursor that tells the endpoint which page to start on. It should be a |
| page[size] | query | optional | integer | The number of records to return in the response. You can specify up to 100 records per page. |
| field_id | query | optional | string | The id of the lookup field. If the field has a relationship filter, the filter is applied to the results. Must be used with |
| source | query | optional | string | One of “zen:user”, “zen:ticket”, “zen:organization”, or “zen:custom_object:CUSTOM_OBJECT_KEY”. Represents the object |
| requester_id | query | optional | integer | The id of the requester. For use with dynamic filters. |
| assignee_id | query | optional | integer | The id of the selected assignee. For use with dynamic filters. |
| organization_id | query | optional | integer | The id of the organization the requester belongs to. For use with dynamic filters. |
Success response
GET /api/v2/custom_objects/{custom_object_key}/records/autocomplete
/api/v2/custom_objects/{custom_object_key}/records/count
Returns a total count of records for a specific custom object as well as the time the count was refreshed.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| custom_object_key | path | optional | string | The key of a custom object |
Success response
GET /api/v2/custom_objects/{custom_object_key}/records/count
/api/v2/custom_objects/{custom_object_key}/records/search
Returns an array of custom object records that meet the search criteria
sort parameter, only the first 10,000 records are returned. With a sort parameter, all records are returned.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| custom_object_key | path | optional | string | The key of a custom object |
| query | query | optional | string | The query parameter is used to search text-based fields for records that match specific query terms. Fuzzy search is supported for the following text-based field types: : Text fields, Multi Line Text fields, and RegExp fields. For example, you might want to search for records related to Tesla vehicles: You can include multiple words or numbers in your search. For example: |
| sort | query | optional | string | One of |
| page[before] | query | optional | string | A pagination cursor that tells the endpoint which page to start on. It should be a |
| page[after] | query | optional | string | A pagination cursor that tells the endpoint which page to start on. It should be a |
| page[size] | query | optional | integer | Specifies how many records should be returned in the response. You can specify up to 100 records per page. |
Success response
GET /api/v2/custom_objects/{custom_object_key}/records/search
/api/v2/custom_objects/{custom_object_key}/records/{custom_object_record_id}
Returns a custom record for a specific object using a provided id.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| custom_object_key | path | optional | string | The key of a custom object |
| custom_object_record_id | path | optional | string | The id of a custom object record |
Custom Object Record
GET /api/v2/custom_objects/{custom_object_key}/records/{custom_object_record_id}
/api/v2/custom_objects
Lists all undeleted custom objects for the account
Success response
GET /api/v2/custom_objects
/api/v2/custom_objects/limits/object_limit
List the current count and the limit for custom objects
Success response
GET /api/v2/custom_objects/limits/object_limit
/api/v2/custom_objects/{custom_object_key}
Returns an object with the specified key
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| custom_object_key | path | optional | string | The key of a custom object |
Custom Object
GET /api/v2/custom_objects/{custom_object_key}
/api/v2/custom_roles
Success response
GET /api/v2/custom_roles
/api/v2/custom_roles/{custom_role_id}
manage_roles permission| Name | In | Required | Type | Description |
|---|---|---|---|---|
| custom_role_id | path | optional | integer | The ID of the custom agent role |
Success response
GET /api/v2/custom_roles/{custom_role_id}
/api/v2/custom_statuses
Lists all undeleted custom ticket statuses for the account. No pagination is provided.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| status_categories | query | optional | string | Filter the list of custom ticket statuses by a comma-separated list of status categories |
| active | query | optional | boolean | If true, show only active custom ticket statuses. If false, show only inactive custom ticket statuses. If the filter is not used, show all custom ticket statuses |
| default | query | optional | boolean | If true, show only default custom ticket statuses. If false, show only non-default custom ticket statuses. If the filter is not used, show all custom ticket statuses |
List custom ticket statuses
GET /api/v2/custom_statuses
/api/v2/custom_statuses/{custom_status_id}
Returns the custom ticket status object.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| custom_status_id | path | optional | integer | The id of the custom status |
Custom Status
GET /api/v2/custom_statuses/{custom_status_id}
/api/v2/dynamic_content/items
Returns a list of all dynamic content items for your account if accessed as an admin or agents who have permission to manage dynamic content.
See Pagination.
Success response
GET /api/v2/dynamic_content/items
/api/v2/dynamic_content/items/show_many
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| identifiers | query | optional | string | Identifiers for the dynamic contents |
Success response
GET /api/v2/dynamic_content/items/show_many
/api/v2/dynamic_content/items/{dynamic_content_item_id}
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| dynamic_content_item_id | path | optional | integer | The ID of the dynamic content item |
Success response
GET /api/v2/dynamic_content/items/{dynamic_content_item_id}
/api/v2/dynamic_content/items/{dynamic_content_item_id}/variants
Returns all the variants of the specified dynamic content item.
See Pagination.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| dynamic_content_item_id | path | optional | integer | The ID of the dynamic content item |
Success response
GET /api/v2/dynamic_content/items/{dynamic_content_item_id}/variants
/api/v2/dynamic_content/items/{dynamic_content_item_id}/variants/{dynammic_content_variant_id}
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| dynamic_content_item_id | path | optional | integer | The ID of the dynamic content item |
| dynammic_content_variant_id | path | optional | integer | The ID of the variant |
Success response
GET /api/v2/dynamic_content/items/{dynamic_content_item_id}/variants/{dynammic_content_variant_id}
/api/v2/object_layouts/essentials_cards
Gets the list of essentials cards.
Success response
GET /api/v2/object_layouts/essentials_cards
/api/v2/object_layouts/{object_type}/essentials_card
Gets the essentials card for an object type.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| object_type | path | optional | string | Essentials card type. Example: |
Success response
GET /api/v2/object_layouts/{object_type}/essentials_card
/api/v2/group_memberships
See Pagination.
Returns a maximum of 100 records per page.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| group_id | path | optional | integer | The ID of the group |
| user_id | path | optional | integer | The id of the user |
Success response
GET /api/v2/group_memberships
/api/v2/group_memberships/assignable
Returns a maximum of 100 group memberships per page.
See Pagination.
Returns a maximum of 100 records per page.
Success response
GET /api/v2/group_memberships/assignable
/api/v2/group_memberships/{group_membership_id}
The ‘id’ is the group membership id, not a group id.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| group_membership_id | path | optional | integer | The ID of the group membership |
| user_id | path | optional | integer | The id of the user |
Success response
GET /api/v2/group_memberships/{group_membership_id}
/api/v2/group_slas/policies
Success response
GET /api/v2/group_slas/policies
/api/v2/group_slas/policies/definitions
Success response
GET /api/v2/group_slas/policies/definitions
/api/v2/group_slas/policies/{group_sla_policy_id}
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| group_sla_policy_id | path | optional | integer | The id of the Group SLA policy |
Success response
GET /api/v2/group_slas/policies/{group_sla_policy_id}
/api/v2/groups
See Pagination.
Returns a maximum of 100 records per page.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| user_id | path | optional | integer | The id of the user |
| exclude_deleted | query | optional | boolean | Whether to exclude deleted entities |
Success response
GET /api/v2/groups
/api/v2/groups/assignable
See Pagination.
Returns a maximum of 100 records per page.
Success response
GET /api/v2/groups/assignable
/api/v2/groups/count
Returns an approximate count of groups. If the count exceeds 100,000, it is updated every 24 hours.
The refreshed_at property of the count object is a timestamp that indicates when the count was last updated.
Note: When the count exceeds 100,000, refreshed_at may occasionally be null. This indicates that the count is being updated in the background, and the value property of the count object is limited to 100,000 until the update is complete.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| user_id | path | optional | integer | The id of the user |
Success response
GET /api/v2/groups/count
/api/v2/groups/{group_id}
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| group_id | path | optional | integer | The ID of the group |
Success response
GET /api/v2/groups/{group_id}
/api/v2/incremental/organizations
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| start_time | query | optional | integer | The time to start the incremental export from. Must be at least one minute in the past. Data isn’t provided for the most recent minute |
Success response
GET /api/v2/incremental/organizations
/api/v2/incremental/ticket_events
Returns a stream of changes that occurred on tickets. Each event is tied
to an update on a ticket and contains all the fields that were updated in that
change. For more information, see:
You can include comments in the event stream by using the comment_events
sideload. See Sideloading below. If you don’t specify the sideload, any comment
present in the ticket update is described only by Boolean comment_present
and comment_public object properties in the event’s child_events array.
The comment itself is not included.
The endpoint supports the comment_events sideload. Any comment present in the ticket
update is listed as an object in the event’s child_events array. Example:
"child_events": [
{
"id": 91048994488,
"via": {
"channel": "api",
"source": {"from":{},"to":{},"rel":null}},
"via_reference_id":null,
"type": "Comment",
"author_id": 5031726587,
"body": "This is a comment",
"html_body": "<div class="zd-comment"><p dir="auto">This is a comment</p>",
"public": true,
"attachments": [],
"audit_id": 91048994468,
"created_at": "2009-06-25T10:15:18Z",
"event_type": "Comment"
},
...
],
...
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| start_time | query | optional | integer | The time to start the incremental export from. Must be at least one minute in the past. Data isn’t provided for the most recent minute |
Success response
GET /api/v2/incremental/ticket_events
/api/v2/incremental/tickets
Returns the tickets that changed since the start time. For more information,
see Exporting tickets in Using the Incremental Exports API.
This endpoint supports time-based incremental exports.
For more information, see Time-based incremental exports in Using the Incremental Exports API. You can also return tickets using cursor-based pagination. See Incremental Ticket Export, Cursor Based.
The results include tickets that were updated by the system. See
Excluding system-updated tickets in Using the Incremental Exports API.
The endpoint can return tickets with an updated_at time that’s earlier than the
start_time time. The reason is that the API compares the start_time with the ticket’s
generated_timestamp value, not its updated_at value. The updated_at value is
updated only if the update generates a ticket event.
The generated_timestamp value is updated for all ticket updates, including system
updates. If a system update occurs after a ticket event, the unchanged
updated_at time will become earlier relative to the updated generated_timestamp
time.
See Tickets sideloads. For performance reasons,
last_audits sideloads aren’t supported.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| start_time | query | optional | integer | The time to start the incremental export from. Must be at least one minute in the past. Data isn’t provided for the most recent minute |
Success response
GET /api/v2/incremental/tickets
/api/v2/incremental/tickets/cursor
Returns the tickets that changed since the start time. For more information,
see Exporting tickets in Using the Incremental Exports API.
This endpoint supports cursor-based incremental exports.
Cursor-based exports are highly encouraged because they provide more consistent performance and
response body sizes. For more information, see Cursor-based incremental exports in Using the Incremental Exports API.
See Tickets sideloads. For performance reasons,
last_audits sideloads aren’t supported.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| start_time | query | optional | integer | The time to start the incremental export from. Must be at least one minute in the past. Data isn’t provided for the most recent minute |
| cursor | query | optional | string | The cursor pointer to work with for all subsequent exports after the initial request |
Success response
GET /api/v2/incremental/tickets/cursor
/api/v2/incremental/users
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| start_time | query | optional | integer | The time to start the incremental export from. Must be at least one minute in the past. Data isn’t provided for the most recent minute |
| per_page | query | optional | integer | The number of records to return per page |
Success response
GET /api/v2/incremental/users
/api/v2/incremental/users/cursor
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| start_time | query | optional | integer | The time to start the incremental export from. Must be at least one minute in the past. Data isn’t provided for the most recent minute |
| cursor | query | optional | string | The cursor pointer to work with for all subsequent exports after the initial request |
| per_page | query | optional | integer | The number of records to return per page |
Success response
GET /api/v2/incremental/users/cursor
/api/v2/incremental/{incremental_resource}/sample
Use this endpoint to test the incremental export format. It’s more strict in terms of rate limiting,
at 10 requests per 20 minutes instead of 10 requests per minute. It also returns only up to 50
results per request. Otherwise, it’s identical to the above APIs.
Use the incremental_resource parameter to specify the resource. Possible values are “tickets”, “ticket_events”, “users”, or “organizations”.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| start_time | query | optional | integer | The time to start the incremental export from. Must be at least one minute in the past. Data isn’t provided for the most recent minute |
| incremental_resource | path | optional | string | The resource requested for incremental sample export |
Success response
GET /api/v2/incremental/{incremental_resource}/sample
/api/v2/incremental/routing/attribute_values
Returns a stream of changes that occurred on routing attribute values.
Optional
| Name | Type | Comment |
|---|---|---|
| cursor | string | The cursor parameter is a non-human-readable argument you can use to move forward or backward in time. The cursor is a read-only URL parameter that’s only available in API responses. See Pagination. |
Success response
GET /api/v2/incremental/routing/attribute_values
/api/v2/incremental/routing/attributes
Returns a stream of changes that occurred on routing attributes.
Optional
| Name | Type | Comment |
|---|---|---|
| cursor | string | The cursor parameter is a non-human-readable argument you can use to move forward or backward in time. The cursor is a read-only URL parameter that’s only available in API responses. See Pagination. |
Success response
GET /api/v2/incremental/routing/attributes
/api/v2/incremental/routing/instance_values
Returns a stream of changes that occurred on routing instance values. Changes are grouped by attribute_value_id,
with unassociate type events listed with associate type events by the associate event’s timestamp.
Optional
| Name | Type | Comment |
|---|---|---|
| cursor | string | The cursor parameter is a non-human-readable argument you can use to move forward or backward in time. The cursor is a read-only URL parameter that’s only available in API responses. See Pagination. |
Success response
GET /api/v2/incremental/routing/instance_values
/api/v2/job_statuses
Shows the statuses for background jobs. Statuses are sorted first by completion date and then by creation date in descending order.
See Pagination.
Success Response
GET /api/v2/job_statuses
/api/v2/job_statuses/show_many
Accepts a comma-separated list of job status ids.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| ids | query | required | string | Comma-separated list of job status ids. |
Success Response
GET /api/v2/job_statuses/show_many
/api/v2/job_statuses/{job_status_id}
Shows the status of a background job.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| job_status_id | path | optional | string | the Id of the Job status |
Success Response
GET /api/v2/job_statuses/{job_status_id}
/api/v2/locales
Lists the translation locales available for the account.
Note: You can alter the list by passing an updated locale_ids array to the Update Account Settings endpoint.
Success response
GET /api/v2/locales
/api/v2/locales/agent
Lists the translation locales that have been localized for agents on a specific account.
Success response
GET /api/v2/locales/agent
/api/v2/locales/current
This works like Show Locale, but instead of taking a locale id as an argument, it renders the locale of the user performing the request.
Success response
GET /api/v2/locales/current
/api/v2/locales/detect_best_locale
Success response
GET /api/v2/locales/detect_best_locale
/api/v2/locales/public
Lists the translation locales that are available to all accounts.
Success response
GET /api/v2/locales/public
/api/v2/locales/{locale_id}
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| locale_id | path | optional | string | The ID or the BCP-47 code of the locale. Examples: es-419, en-us, pr-br |
Success Response
GET /api/v2/locales/{locale_id}
/api/v2/relationships/definitions/{target_type}
Returns filter definitions based on the given target type. Target types
include users (zen:user), tickets (zen:ticket), organizations (zen:organization), or custom objects (zen:custom_object:CUSTOM_OBJECT_KEY).
The returned filter definitions are the options that you can use to build a custom field or ticket field’s
relationship_filter.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| target_type | path | required | string | The target type for which you would like to see filter definitions. |
| source_type | query | optional | string | The source type for which you would like to see filter definitions. |
Success response
GET /api/v2/relationships/definitions/{target_type}
/api/v2/{target_type}/{target_id}/relationship_fields/{field_id}/{source_type}
Returns a list of source objects whose values are populated with the id of a related target object. For example,
if you have a lookup field called “Success Manager” on a ticket, this endpoint can answer the question,
“What tickets (sources) is this user (found by target_type and target_id)
assigned as the ‘Success Manager’ (field referenced by field_id)?”
See Pagination.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| target_type | path | required | string | The type of object the relationship field is targeting. |
| target_id | path | required | integer | The id of the object the relationship field is targeting |
| field_id | path | required | integer | The id of the lookup relationship field |
| source_type | path | required | string | The type of object the relationship field belongs to (example. ticket field belongs to a ticket object). |
Success response
GET /api/v2/{target_type}/{target_id}/relationship_fields/{field_id}/{source_type}
/api/v2/macros
Lists all shared and personal macros available to the current user. For admins, the API returns all macros for the account, including the personal macros of agents and other admins.
See Pagination.
Returns a maximum of 100 records per page.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| include | query | optional | string | A sideload to include in the response. See Sideloads |
| access | query | optional | string | Filter macros by access. Possible values are “personal”, “agents”, “shared”, or “account”. The “agents” value returns all personal macros for the account’s agents and is only available to admins. |
| active | query | optional | boolean | Filter by active macros if true or inactive macros if false |
| category | query | optional | integer | Filter macros by category |
| group_id | query | optional | integer | Filter macros by group |
| only_viewable | query | optional | boolean | If true, returns only macros that can be applied to tickets. If false, returns all macros the current user can manage. Default is false |
| sort_by | query | optional | string | Possible values are alphabetical, “created_at”, “updated_at”, “usage_1h”, “usage_24h”, “usage_7d”, or “usage_30d”. Defaults to alphabetical |
| sort_order | query | optional | string | One of “asc” or “desc”. Defaults to “asc” for alphabetical and position sort, “desc” for all others |
Success Response
GET /api/v2/macros
/api/v2/macros/actions
Success Response
GET /api/v2/macros/actions
/api/v2/macros/active
Lists all active shared and personal macros available to the current user.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| include | query | optional | string | A sideload to include in the response. See Sideloads |
| access | query | optional | string | Filter macros by access. Possible values are “personal”, “agents”, “shared”, or “account”. The “agents” value returns all personal macros for the account’s agents and is only available to admins. |
| category | query | optional | integer | Filter macros by category |
| group_id | query | optional | integer | Filter macros by group |
| sort_by | query | optional | string | Possible values are alphabetical, “created_at”, “updated_at”, “usage_1h”, “usage_24h”, “usage_7d”, or “usage_30d”. Defaults to alphabetical |
| sort_order | query | optional | string | One of “asc” or “desc”. Defaults to “asc” for alphabetical and position sort, “desc” for all others |
Success Response
GET /api/v2/macros/active
/api/v2/macros/attachments/{attachment_id}
Shows the properties of the specified macro attachment.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| attachment_id | path | optional | integer | The ID of the attachment |
Success Response
GET /api/v2/macros/attachments/{attachment_id}
/api/v2/macros/categories
Lists all macro categories available to the current user.
Success Response
GET /api/v2/macros/categories
/api/v2/macros/definitions
Returns the definitions of the actions a macro can perform. For example,
one action can set the status of a ticket. The definition of the action
includes a title (“Status”), a type (“list”), and possible values. For a
list of support actions, see Actions reference.
Success Response
GET /api/v2/macros/definitions
/api/v2/macros/new
Returns an unpersisted macro representation derived from a ticket or macro.
The endpoint takes one of the following query parameters: macro_id or ticket_id. If you include both, macro_id is used.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| macro_id | query | optional | integer | The ID of the macro to replicate |
| ticket_id | query | required | integer | The ID of the ticket from which to build a macro replica |
Success Response
GET /api/v2/macros/new
/api/v2/macros/search
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| include | query | optional | string | A sideload to include in the response. See Sideloads |
| access | query | optional | string | Filter macros by access. Possible values are “personal”, “agents”, “shared”, or “account”. The “agents” value returns all personal macros for the account’s agents and is only available to admins. |
| active | query | optional | boolean | Filter by active macros if true or inactive macros if false |
| category | query | optional | integer | Filter macros by category |
| group_id | query | optional | integer | Filter macros by group |
| only_viewable | query | optional | boolean | If true, returns only macros that can be applied to tickets. If false, returns all macros the current user can manage. Default is false |
| sort_by | query | optional | string | Possible values are alphabetical, “created_at”, “updated_at”, “usage_1h”, “usage_24h”, “usage_7d”, or “usage_30d”. Defaults to alphabetical |
| sort_order | query | optional | string | One of “asc” or “desc”. Defaults to “asc” for alphabetical and position sort, “desc” for all others |
| query | query | optional | string | Query string used to find macros with matching titles |
Success Response
GET /api/v2/macros/search
/api/v2/macros/{macro_id}
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| macro_id | path | optional | integer | The ID of the macro |
Success Response
GET /api/v2/macros/{macro_id}
/api/v2/macros/{macro_id}/apply
Returns the changes the macro would make to a ticket. It doesn’t actually
change a ticket. You can use the response data in a subsequent API call
to the Tickets endpoint to update the ticket.
The response includes only the ticket fields that would be changed by the
macro. To get the full ticket object after the macro is applied,
see Show Ticket After Changes.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| macro_id | path | optional | integer | The ID of the macro |
Success Response
GET /api/v2/macros/{macro_id}/apply
/api/v2/macros/{macro_id}/attachments
Lists the attachments associated with a macro.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| macro_id | path | optional | integer | The ID of the macro |
Success Response
GET /api/v2/macros/{macro_id}/attachments
/api/v2/tickets/{ticket_id}/macros/{macro_id}/apply
Returns the full ticket object as it would be after applying the macro to the ticket.
It doesn’t actually change the ticket.
To get only the ticket fields that would be changed by the macro,
see Show Changes to Ticket.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| macro_id | path | optional | integer | The ID of the macro |
| ticket_id | path | required | integer | The ID of the ticket |
Success Response
GET /api/v2/tickets/{ticket_id}/macros/{macro_id}/apply
/api/v2/queues
Success response
GET /api/v2/queues
/api/v2/queues/definitions
Success response
GET /api/v2/queues/definitions
/api/v2/queues/{queue_id}
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| queue_id | path | optional | string | The id of the omnichannel routing queue |
Success response
GET /api/v2/queues/{queue_id}
/api/v2/organization_fields
Returns a list of custom organization fields in your account. Fields are returned in the order that you specify in your organization fields configuration in Zendesk Support. Clients should cache this resource for the duration of their API usage and map the key for each organization field to the values returned under the organization_fields attribute on the organization resource.
See Pagination.
Returns a maximum of 100 records per page.
Success response
GET /api/v2/organization_fields
/api/v2/organization_fields/{organization_field_id}
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| organization_field_id | path | optional | The ID or key of the organization field |
Success response
GET /api/v2/organization_fields/{organization_field_id}
/api/v2/organization_memberships
Returns a list of organization memberships for the account, user or organization in question.
Note: When returning organization memberships for a user, organization memberships are sorted with the default organization first, and then by organization name.
See Pagination.
Returns a maximum of 100 records per page.
Success response
GET /api/v2/organization_memberships
/api/v2/organization_memberships/{organization_membership_id}
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| organization_membership_id | path | optional | integer | The ID of the organization membership |
Success response
GET /api/v2/organization_memberships/{organization_membership_id}
/api/v2/organization_subscriptions
See Pagination.
Returns a maximum of 100 records per page.
For end users, the response will only list the subscriptions created by the requesting end user.
Successful response
GET /api/v2/organization_subscriptions
/api/v2/organization_subscriptions/{organization_subscription_id}
For end users, the response will only list the subscriptions created by the requesting end user.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| organization_subscription_id | path | optional | integer | The ID of the organization subscription |
Successful response
GET /api/v2/organization_subscriptions/{organization_subscription_id}
/api/v2/organization_merges/{organization_merge_id}
Retrieves the details of a specific organization merge operation. This endpoint is useful for obtaining the status and outcome of a merge that was previously initiated. It provides information such as the winning and losing organization IDs, the status of the merge, and the associated URLs.
This endpoint can be used to determine if a merge is still in progress, has completed successfully, or has encountered an error.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| organization_merge_id | path | optional | string | The ID of the organization merge |
Success response
GET /api/v2/organization_merges/{organization_merge_id}
/api/v2/organizations
See Pagination.
Returns a maximum of 100 records per page.
If the agent has a custom agent role that restricts their access to only users in their own organization, a 403 Forbidden error is returned. See Creating custom agent roles in Zendesk help.
Success response
GET /api/v2/organizations
/api/v2/organizations/autocomplete
Returns an array of organizations whose name starts with the
value specified in the name parameter.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| name | query | optional | string | A substring of an organization to search for |
| field_id | query | optional | string | The id of a lookup relationship field. The type of field is determined |
| source | query | optional | string | If a |
Success response
Bad request
Too Many Requests
Internal Server Error
GET /api/v2/organizations/autocomplete
/api/v2/organizations/count
Returns an approximate count of organizations. If the count exceeds
100,000, it is updated every 24 hours.
The refreshed_at property of the count object is a timestamp that indicates
when the count was last updated.
When the count exceeds 100,000, the refreshed_at property may
occasionally be null. This indicates that the count is being
updated in the background and the value property of the count object is limited to
100,000 until the update is complete.
Success response
GET /api/v2/organizations/count
/api/v2/organizations/search
Returns an array of organizations matching the criteria. You may search by an organization’s external_id or name, but not both:
external_idIf you set the external_id value of an organization to associate it to an external record, you can use it to search for the organization.
For an organization to be returned, its external_id must exactly match the value provided (case insensitive).
nameFor an organization to be returned, its name must exactly match the value provided (case insensitive).
See Creating custom agent roles in the Support Help Center.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| external_id | query | optional | integer | The external id of an organization |
| name | query | optional | string | The name of an organization |
Success response
GET /api/v2/organizations/search
/api/v2/organizations/show_many
Accepts a comma-separated list of up to 100 organization ids or external ids.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| ids | query | optional | string | A list of organization ids |
| external_ids | query | optional | string | A list of external ids |
Success response
GET /api/v2/organizations/show_many
/api/v2/organizations/{organization_id}
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| organization_id | path | optional | integer | The ID of an organization |
Success response
GET /api/v2/organizations/{organization_id}
/api/v2/organizations/{organization_id}/merges
Retrieves a list of all organization merge operations associated with a given organization. This endpoint allows you to track the history of merge actions for an organization, including ongoing and completed merges.
Each entry in the list contains details such as the ID of the merge, the winning and losing organization IDs, the current status of the merge, and a URL to access the Organization Merge record.
See Pagination for more details.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| organization_id | path | optional | integer | The ID of an organization |
Success response
GET /api/v2/organizations/{organization_id}/merges
/api/v2/organizations/{organization_id}/related
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| organization_id | path | optional | integer | The ID of an organization |
Success response
GET /api/v2/organizations/{organization_id}/related
/api/v2/requests
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| sort_by | query | optional | string | Possible values are “updated_at”, “created_at” |
| sort_order | query | optional | string | One of “asc”, “desc”. Defaults to “asc” |
Success response
GET /api/v2/requests
/api/v2/requests/search
Examples:
GET /api/v2/requests/search.json?query=printerGET /api/v2/requests/search.json?query=printer&organization_id=1GET /api/v2/requests/search.json?query=printer&cc_id=trueGET /api/v2/requests/search.json?query=printer&status=hold,openThe Search Requests endpoint returns up to 1,000 results per query, with a maximum of 100 results per page. See Pagination. If you request a page past the limit (page=11 at 100 results per page), a 422 Insufficient Resource Error is returned.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| query | query | optional | string | The syntax and matching logic for the string is detailed in the Zendesk Support search reference. See also Query basics in the Tickets API doc. |
Success response
GET /api/v2/requests/search
/api/v2/requests/{request_id}
The following sideloads are supported:
| Name | Will sideload |
|---|---|
| users | The email ccs for a request by side-loading users |
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| request_id | path | optional | integer | The ID of the request |
Success response
GET /api/v2/requests/{request_id}
/api/v2/requests/{request_id}/comments
See Pagination.
By default, comments are sorted by creation date in ascending order.
When using cursor pagination, use the following parameter to change the sort order:
| Name | Type | Required | Comments |
|---|---|---|---|
sort |
string | no | Possible values are “created_at” (ascending order) or “-created_at” (descending order) |
When using offset pagination, use the following parameters to change the sort order:
| Name | Type | Required | Comments |
|---|---|---|---|
sort_by |
string | no | One of created_at, updated_at |
sort_order |
string | no | One of asc, desc |
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| request_id | path | optional | integer | The ID of the request |
| since | query | optional | string | Filters the comments from the given datetime |
| role | query | optional | string | One of “agent”, “end_user”. If not specified it does not filter |
Success response
GET /api/v2/requests/{request_id}/comments
/api/v2/requests/{request_id}/comments/{ticket_comment_id}
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| request_id | path | optional | integer | The ID of the request |
| ticket_comment_id | path | optional | integer | The ID of the ticket comment |
Success response
GET /api/v2/requests/{request_id}/comments/{ticket_comment_id}
/api/v2/accounts/available
Zendesk Support credentials are not required to access this endpoint. You can use any Zendesk Support subdomain.
Returns “true” if the subdomain is available.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| subdomain | query | required | string | Specify the name of the subdomain you want to verify. The name can’t contain underscores, hyphens, or spaces. |
Success response
GET /api/v2/accounts/available
/api/v2/resource_collections
Lists resource collections for the account.
Success response
GET /api/v2/resource_collections
/api/v2/resource_collections/{resource_collection_id}
Retrieves details for a specified resource collection.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| resource_collection_id | path | optional | integer | The id of the resource collection |
Success response
GET /api/v2/resource_collections/{resource_collection_id}
/api/v2/slas/policies
Success response
GET /api/v2/slas/policies
/api/v2/slas/policies/definitions
Success response
GET /api/v2/slas/policies/definitions
/api/v2/slas/policies/{sla_policy_id}
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| sla_policy_id | path | optional | integer | The ID of the SLA Policy |
Success response
GET /api/v2/slas/policies/{sla_policy_id}
/api/v2/satisfaction_ratings
See Pagination.
| Parameter | Value |
|---|---|
| score | offered, unoffered, received, received_with_comment, received_without_comment, good, good_with_comment, good_without_comment, bad, bad_with_comment, bad_without_comment |
| start_time | Time of the oldest satisfaction rating, as a Unix epoch time |
| end_time | Time of the most recent satisfaction rating, as a Unix epoch time |
If you specify an unqualified score such as good, the results include all the records with and without comments.
Examples:
/api/v2/satisfaction_ratings.json?score=bad/api/v2/satisfaction_ratings.json?score=bad&start_time=1498151194/api/v2/satisfaction_ratings.json?start_time=1340384793&end_time=1371920793Success response
GET /api/v2/satisfaction_ratings
/api/v2/satisfaction_ratings/count
Returns an approximate count of satisfaction ratings in the account. If the count exceeds 100,000, the count will return a cached result. This cached result will update every 24 hours.
The count[refreshed_at] property is a timestamp that indicates when the count was last updated.
Note: When the count exceeds 100,000, count[refreshed_at] may occasionally be null.
This indicates that the count is being updated in the background, and count[value] is limited to 100,000 until the update is complete.
Count of satisfaction ratings
GET /api/v2/satisfaction_ratings/count
/api/v2/satisfaction_ratings/{satisfaction_rating_id}
Returns a specific satisfaction rating. You can get the id from
the List Satisfaction Ratings endpoint.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| satisfaction_rating_id | path | required | integer | The id of the satisfaction rating to retrieve |
Success response
GET /api/v2/satisfaction_ratings/{satisfaction_rating_id}
/api/v2/satisfaction_reasons
List all reasons for an account
Success response
GET /api/v2/satisfaction_reasons
/api/v2/satisfaction_reasons/{satisfaction_reason_id}
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| satisfaction_reason_id | path | required | integer | The id of the satisfaction rating reason |
Success response
GET /api/v2/satisfaction_reasons/{satisfaction_reason_id}
/api/v2/search
Use the ampersand character (&) to append the sort_by or sort_order parameters to the URL.
For examples, see Searching with Zendesk API.
Offset pagination may result in duplicate results when paging. You can also use the
Export Search Results endpoint, which
uses cursor-based pagination and doesn’t return duplicate results. See
Pagination for more information.
Errors are represented as JSON objects which have the following keys:
| Name | Type | Comment |
|---|---|---|
| error | string | The type of error. Examples: “unavailable”, “invalid” |
| description | string |
{
"error": "unavailable",
"description": "Sorry, we could not complete your search query. Please try again in a moment."
}
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| query | query | required | string | The search query. See Query basics above. For details on the query syntax, see the Zendesk Support search reference |
| sort_by | query | optional | string | One of |
| sort_order | query | optional | string | One of |
Success response
GET /api/v2/search
/api/v2/search/count
Returns the number of items matching the query rather than the items. The search string works the same as a regular search.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| query | query | required | string | The search query |
Success response
GET /api/v2/search/count
/api/v2/search/export
Exports a set of results. See Query basics for the syntax of the query parameter.
This endpoint is for search queries that will return more than 1000 results. The result set is ordered only by the created_at attribute.
The search only returns results of a single object type. The following object types are supported: ticket, organization, user, or group.
You must specify the type in the filter[type] parameter. Searches with type in the query string will result in an error.
See Pagination.
Returns a maximum of 1000 records per page. The number of results shown in a page is determined by the page[size] parameter.
Note: You may experience a speed reduction or a timeout if you request 1000 results per page and you have many archived tickets in the results. Try reducing the number of results per page. We recommend 100 results per page.
The cursor specified by the after_cursor property in a response expires after one hour.
For more information on cursor-based pagination, see the following articles:
This API endpoint is rate-limited to 100 requests per minute per account. The limit also counts towards the global API rate limit.
| Name | Type | Comment |
|---|---|---|
| links[next] | string | URL to the next page of results |
| meta[has_more] | string | Boolean indicating if there are more results |
| meta[after_cursor] | string | Cursor object returned from the Search Service |
| results | array | May consist of tickets, users, groups, or organizations, as specified by the filter_type parameter |
The response is similar to the response of GET /api/v2/search.json?, with a few changes:
links - Has the following nested properties: prev and next. These replace the next_page and prev_page links. The prev property is always null because backward pagination is not supported. The next property may include an auto-generated link to the next page of results.meta - Has the following nested properties: has_more and after_cursor. The has_more property indicates whether the next page has more results. The after_cursor property is the cursor used to paginate to the next page. It expires after one hour.There’s no count property.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| query | query | required | string | The search query. See Query basics above. For details on the query syntax, see the Zendesk Support search reference |
| page[size] | query | optional | integer | The number of results shown in a page. |
| filter[type] | query | optional | string | The object type returned by the export query. Can be |
Success response
GET /api/v2/search/export
/api/v2/sessions
If authenticated as an admin, returns all the account’s sessions. If authenticated as an agent or end user, returns only the sessions of the user making the request.
See Pagination.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| user_id | path | optional | integer | The id of the user |
Success response
GET /api/v2/sessions
/api/v2/users/me/session
Success response
GET /api/v2/users/me/session
/api/v2/users/me/session/renew
Success response
GET /api/v2/users/me/session/renew
/api/v2/users/{user_id}/sessions/{session_id}
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| session_id | path | optional | integer | The ID of the session |
| user_id | path | optional | integer | The id of the user |
Success response
GET /api/v2/users/{user_id}/sessions/{session_id}
/api/v2/sharing_agreements
Success response
GET /api/v2/sharing_agreements
/api/v2/sharing_agreements/{sharing_agreement_id}
Returns a sharing agreement for your account.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| sharing_agreement_id | path | optional | integer | The ID of the sharing agreement |
Success response
GET /api/v2/sharing_agreements/{sharing_agreement_id}
/api/v2/routing/agents/{user_id}/instance_values
Returns an attribute value.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| user_id | path | optional | integer | The id of the user |
Success response
GET /api/v2/routing/agents/{user_id}/instance_values
/api/v2/routing/attributes
Returns a list of attributes for the account.
The following sideloads are supported:
| Name | Will sideload |
|---|---|
| attribute_values | The attribute values available on the account |
Success response
GET /api/v2/routing/attributes
/api/v2/routing/attributes/definitions
Returns the condition definitions that can be configured to apply attributes to a ticket.
Success response
GET /api/v2/routing/attributes/definitions
/api/v2/routing/attributes/{attribute_id}
Returns an attribute.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| attribute_id | path | optional | string | The ID of the skill-based routing attribute |
Success response
GET /api/v2/routing/attributes/{attribute_id}
/api/v2/routing/attributes/{attribute_id}/values
Returns a list of attribute values for a provided attribute.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| attribute_id | path | optional | string | The ID of the skill-based routing attribute |
Success response
GET /api/v2/routing/attributes/{attribute_id}/values
/api/v2/routing/attributes/{attribute_id}/values/{attribute_value_id}
Returns an attribute value.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| attribute_id | path | optional | string | The ID of the skill-based routing attribute |
| attribute_value_id | path | optional | string | The ID of the skill-based routing attribute value |
Success response
GET /api/v2/routing/attributes/{attribute_id}/values/{attribute_value_id}
/api/v2/routing/requirements/fulfilled
Returns a list of ticket ids that contain attributes matching the current user’s attributes. Accepts a ticket_ids parameter for relevant tickets to check for matching attributes.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| ticket_ids | query | required | integer | The IDs of the relevant tickets to check for matching attributes |
Success response
GET /api/v2/routing/requirements/fulfilled
/api/v2/routing/tickets/{ticket_id}/instance_values
Returns a list of attributes values for the ticket.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| ticket_id | path | optional | integer | The ID of the ticket |
Success response
GET /api/v2/routing/tickets/{ticket_id}/instance_values
/api/v2/recipient_addresses
Lists all the support addresses for the account.
See Pagination.
Returns a maximum of 100 records per page.
Success response
GET /api/v2/recipient_addresses
/api/v2/recipient_addresses/{support_address_id}
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| support_address_id | path | optional | integer | The ID of the support address |
Success response
GET /api/v2/recipient_addresses/{support_address_id}
/api/v2/suspended_tickets
You can sort the tickets with the sort_by and sort_order query string parameters.
See Pagination.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| sort_by | query | optional | string | The field to sort the ticket by, being one of |
| sort_order | query | optional | string | The order in which to sort the suspended tickets. This can take value |
Success response
GET /api/v2/suspended_tickets
/api/v2/suspended_tickets/{id}
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | optional | number | id of the suspended ticket |
Success response
GET /api/v2/suspended_tickets/{id}
/api/v2/autocomplete/tags
Returns an array of registered and recent tag names that start with the characters specified in the name query parameter. You must specify at least 2 characters.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| name | query | optional | string | A substring of a tag to search for |
Success response
GET /api/v2/autocomplete/tags
/api/v2/tags
Lists up to the 20,000 most popular tags in the last 60 days, in decreasing popularity.
See Pagination.
Returns a maximum of 100 records per page.
Success response
GET /api/v2/tags
/api/v2/tags/count
Returns an approximate count of tags. If the count exceeds 100,000, it
is updated every 24 hours.
The refreshed_at property of the count object is a timestamp that indicates when
the count was last updated.
Note: When the count exceeds 100,000, the refreshed_at property in the count object may
occasionally be null. This indicates that the count is being
updated in the background and the value property in the count object is limited to
100,000 until the update is complete.
Success response
GET /api/v2/tags/count
/api/v2/tickets/{ticket_id}/tags
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| ticket_id | path | optional | integer | The ID of the ticket |
Success response
GET /api/v2/tickets/{ticket_id}/tags
/api/v2/target_failures
Returns the 25 most recent target failures, per target.
Success response
GET /api/v2/target_failures
/api/v2/target_failures/{target_failure_id}
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| target_failure_id | path | optional | integer | The ID of the target failure |
Success response
GET /api/v2/target_failures/{target_failure_id}
/api/v2/targets
Success response
GET /api/v2/targets
/api/v2/targets/{target_id}
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| target_id | path | optional | integer | The ID of the target |
Success response
GET /api/v2/targets/{target_id}
/api/v2/ticket_audits
Returns ticket audits. Archived tickets are not included in the response. Use the List Audits for a Ticket endpoint to
retrieve audit records for an archived ticket. To learn more about archived tickets, see About archived tickets.
This endpoint should not be used for capturing change data. When continually chasing the tail of a cursor, some records will be skipped. For this use case, use the Incremental Ticket Event Export API.
See Pagination.
Returns a maximum of 100 records per page.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| limit | query | optional | integer | Maximum number of results returned |
Success response
GET /api/v2/ticket_audits
/api/v2/tickets/{ticket_id}/audits
Lists the audits for a specified ticket.
See Pagination.
Returns a maximum of 100 records per page.
Note: Audits for Archived Tickets do not support pagination for this endpoint.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| ticket_id | path | optional | integer | The ID of the ticket |
OK response
GET /api/v2/tickets/{ticket_id}/audits
/api/v2/tickets/{ticket_id}/audits/count
Returns an approximate count of audits for a specified ticket. If the count exceeds 100,000, the count will return a cached result. This cached result will update every 24 hours.
The count[refreshed_at] property is a timestamp that indicates when the count was last updated.
Note: When the count exceeds 100,000, count[refreshed_at] may occasionally be null.
This indicates that the count is being updated in the background, and count[value] is limited to 100,000 until the update is complete.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| ticket_id | path | optional | integer | The ID of the ticket |
Count of audits on a ticket
GET /api/v2/tickets/{ticket_id}/audits/count
/api/v2/tickets/{ticket_id}/audits/{ticket_audit_id}
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| ticket_id | path | optional | integer | The ID of the ticket |
| ticket_audit_id | path | optional | integer | The ID of the ticket audit |
OK response
GET /api/v2/tickets/{ticket_id}/audits/{ticket_audit_id}
/api/v2/tickets/{ticket_id}/comments
Returns the comments added to the ticket.
Each comment may include a content_url for an attachment or a recording_url for a voice comment that points to a file that may be hosted externally. For security reasons, take care not to inadvertently send Zendesk authentication credentials to third parties when attempting to access these files. See Working with url properties.
See Pagination.
Returns a maximum of 100 records per page.
By default, comments are sorted by creation date in ascending order.
When using cursor pagination, use the following parameter to change the sort order:
| Name | Type | Required | Comments |
|---|---|---|---|
sort |
string | no | Possible values are “created_at” (ascending order) or “-created_at” (descending order) |
When using offset pagination, use the following parameters to change the sort order:
| Name | Type | Required | Comments |
|---|---|---|---|
sort_order |
string | no | One of asc, desc. Defaults to asc |
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| ticket_id | path | optional | integer | The ID of the ticket |
| include_inline_images | query | optional | boolean | Default is false. When true, inline images are also listed as attachments in the response |
| include | query | optional | string | Accepts “users”. Use this parameter to list email CCs by side-loading users. Example: |
Success response
GET /api/v2/tickets/{ticket_id}/comments
/api/v2/tickets/{ticket_id}/comments/count
Returns an approximate count of the comments added to the ticket. If the count exceeds 100,000, the count will return a cached result. This cached result will update every 24 hours.
The count[refreshed_at] property is a timestamp that indicates when the count was last updated.
Note: When the count exceeds 100,000, count[refreshed_at] may occasionally be null.
This indicates that the count is being updated in the background, and count[value] is limited to 100,000 until the update is complete.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| ticket_id | path | optional | integer | The ID of the ticket |
Count of ticket comments
GET /api/v2/tickets/{ticket_id}/comments/count
/api/v2/ticket_fields
Returns a list of all system and custom ticket fields in your account.
Cursor pagination returns a maximum of 100 records per page and fields are returned in the order specified by their id.
If the results are not paginated every field is returned in the response and fields are returned in the order specified by the position and id.
For accounts without access to multiple ticket forms, positions can be changed using the Update Ticket Field endpoint or the Ticket Forms page in Zendesk Support (Admin > Manage > Ticket Forms). The Ticket Forms page shows the fields for the account. The order of the fields is used in the different products to show the field values in the tickets.
For accounts with access to multiple ticket forms, positions can only be changed using the Update Ticket Field endpoint because products use the order defined on each form to show the field values instead of the general position of the ticket field in the account.
Consider caching this resource to use with the Tickets API.
See Pagination.
The following sideloads are supported:
| Name | Will sideload |
|---|---|
| users | The user or users that created the ticket field |
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| locale | query | optional | string | Forces the |
| creator | query | optional | boolean | Displays the |
Success response
GET /api/v2/ticket_fields
/api/v2/ticket_fields/count
Returns an approximate count of system and custom ticket fields in the account. If the count exceeds 100,000, the count will return a cached result. This cached result will update every 24 hours.
The count[refreshed_at] property is a timestamp that indicates when the count was last updated.
Note: When the count exceeds 100,000, count[refreshed_at] may occasionally be null.
This indicates that the count is being updated in the background, and count[value] is limited to 100,000 until the update is complete.
Count of ticket fields
GET /api/v2/ticket_fields/count
/api/v2/ticket_fields/{ticket_field_id}
The following sideloads are supported:
| Name | Will sideload |
|---|---|
| users | The user or users that created the ticket field |
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| ticket_field_id | path | optional | integer | The ID of the ticket field |
| creator | query | optional | boolean | If true, displays the |
Success response
GET /api/v2/ticket_fields/{ticket_field_id}
/api/v2/ticket_fields/{ticket_field_id}/options
Returns a list of custom ticket field options for the given drop-down ticket field.
See Pagination.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| ticket_field_id | path | optional | integer | The ID of the ticket field |
Success response
GET /api/v2/ticket_fields/{ticket_field_id}/options
/api/v2/ticket_fields/{ticket_field_id}/options/{ticket_field_option_id}
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| ticket_field_id | path | optional | integer | The ID of the ticket field |
| ticket_field_option_id | path | optional | integer | The ID of the ticket field option |
Success response
GET /api/v2/ticket_fields/{ticket_field_id}/options/{ticket_field_option_id}
/api/v2/ticket_forms
Returns a list of all ticket forms for your account if accessed as an admin or agent. End users only see ticket forms that have end_user_visible set to true.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| active | query | optional | boolean | true returns active ticket forms; false returns inactive ticket forms. If not present, returns both |
| end_user_visible | query | optional | boolean | true returns ticket forms where |
| fallback_to_default | query | optional | boolean | true returns the default ticket form when the criteria defined by the parameters results in a set without active and end-user visible ticket forms |
| associated_to_brand | query | optional | boolean | true returns the ticket forms of the brand specified by the url’s subdomain |
Success response
GET /api/v2/ticket_forms
/api/v2/ticket_forms/show_many
Takes an ids query parameter that accepts a comma-separated list of up to 100 ticket form ids. This endpoint is used primarily by the mobile SDK and the Web Widget.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| ids | query | required | string | IDs of the ticket forms to be shown |
| active | query | optional | boolean | true returns active ticket forms; false returns inactive ticket forms. If not present, returns both |
| end_user_visible | query | optional | boolean | true returns ticket forms where |
| fallback_to_default | query | optional | boolean | true returns the default ticket form when the criteria defined by the parameters results in a set without active and end-user visible ticket forms |
| associated_to_brand | query | optional | boolean | true returns the ticket forms of the brand specified by the url’s subdomain |
Success response
GET /api/v2/ticket_forms/show_many
/api/v2/ticket_forms/{ticket_form_id}
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| ticket_form_id | path | optional | integer | The ID of the ticket form |
Success response
GET /api/v2/ticket_forms/{ticket_form_id}
/api/v2/incremental/ticket_metric_events
Returns ticket metric events that occurred on or after the start time.
Cursor pagination returns a maximum of 100 records per page. Events are listed in chronological order.
If the results are not paginated, events will be returned as a time-based incremental export.
See Time-based incremental exports.
See Pagination.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| start_time | query | required | integer | The Unix UTC epoch time of the oldest event you’re interested in. Example: 1332034771. |
Successful response
GET /api/v2/incremental/ticket_metric_events
/api/v2/ticket_metrics
Returns a list of tickets with their metrics.
Tickets are ordered chronologically by created date, from newest to oldest.
The last ticket listed may not be the absolute oldest ticket in your account
due to ticket archiving.
Archived tickets are not included in the response. See
About archived tickets in
Zendesk help.
See Pagination.
Returns a maximum of 100 records per page.
Success response
GET /api/v2/ticket_metrics
/api/v2/ticket_metrics/{ticket_metric_id}
Returns a specific metric, or the metrics of a specific ticket.
See Pagination.
Returns a maximum of 100 records per page.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| ticket_metric_id | path | required | string | The id of the ticket metric to retrieve |
Success response
GET /api/v2/ticket_metrics/{ticket_metric_id}
/api/v2/users/{user_id}/skips
Archived tickets are not included in the response. See
About archived tickets in
the Support Help Center.
See Pagination.
Returns a maximum of 100 records per page.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| user_id | path | optional | integer | User ID of an agent |
| sort_order | query | optional | string | Sort order. Defaults to “asc” |
| ticket_id | path | optional | integer | The ID of the ticket |
Success response
GET /api/v2/users/{user_id}/skips
/api/v2/deleted_tickets
Returns a maximum of 100 deleted tickets per page. See Pagination.
The results includes all deleted (and not yet archived) tickets that
have not yet been scrubbed in the past 30 days. Archived tickets are
not included in the results. See About archived tickets
in the Support Help Center.
The tickets are ordered chronologically by created date, from oldest to newest.
The first ticket listed may not be the oldest ticket in your
account due to ticket archiving.
See Pagination.
Returns a maximum of 100 records per page.
You can make 10 requests every 1 minute using this endpoint.
When making requests beyond page 100, you can make 5 requests every 1 minute.
The rate limiting mechanism behaves as described in
Monitoring your request activity in the API introduction.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| sort_by | query | optional | string | Sort by |
| sort_order | query | optional | string | Sort order. Defaults to “asc” |
Successful response
GET /api/v2/deleted_tickets
/api/v2/problems
The response is always ordered by updated_at in descending order
See Pagination.
Successful response
GET /api/v2/problems
/api/v2/tickets
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| external_id | query | optional | string | Lists tickets by external id. External ids don’t have to be unique for each ticket. As a result, the request may return multiple tickets with the same external id. |
List tickets
GET /api/v2/tickets
/api/v2/tickets/count
Returns an approximate count of tickets in the account. If the count exceeds 100,000, it is updated every 24 hours.
ccd lists tickets that the specified user is cc’d on.
The count[refreshed_at] property is a timestamp that indicates when the count was last updated.
Note: When the count exceeds 100,000, count[refreshed_at] may occasionally be null.
This indicates that the count is being updated in the background, and count[value] is limited to 100,000 until the update is complete.
Count of tickets
GET /api/v2/tickets/count
/api/v2/tickets/show_many
Accepts a comma-separated list of ticket ids to return.
This endpoint will return up to 100 tickets records.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| ids | query | optional | string | Comma-separated list of ticket ids |
List tickets
GET /api/v2/tickets/show_many
/api/v2/tickets/{ticket_id}
Returns a number of ticket properties though not the ticket comments. To get the comments, use List Comments
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| ticket_id | path | optional | integer | The ID of the ticket |
Ticket
GET /api/v2/tickets/{ticket_id}
/api/v2/tickets/{ticket_id}/collaborators
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| ticket_id | path | optional | integer | The ID of the ticket |
Successful response
GET /api/v2/tickets/{ticket_id}/collaborators
/api/v2/tickets/{ticket_id}/email_ccs
Returns any users cc’d on the ticket.
The CCs and Followers feature must be enabled in Zendesk Support.
If the feature is not enabled, the default CC functionality is used. In that case, use List Collaborators to list the users cc’ed on the ticket.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| ticket_id | path | optional | integer | The ID of the ticket |
Successful response
GET /api/v2/tickets/{ticket_id}/email_ccs
/api/v2/tickets/{ticket_id}/followers
Returns any users who follow the ticket.
The CCs and Followers feature must be enabled in Zendesk Support.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| ticket_id | path | optional | integer | The ID of the ticket |
Successful response
GET /api/v2/tickets/{ticket_id}/followers
/api/v2/tickets/{ticket_id}/incidents
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| ticket_id | path | optional | integer | The ID of the ticket |
Successful response
GET /api/v2/tickets/{ticket_id}/incidents
/api/v2/tickets/{ticket_id}/related
The request returns a data object with the following properties:
| Name | Type | Comment |
|---|---|---|
| topic_id | string | Related topic in the Web portal (deprecated feature) |
| followup_source_ids | array | Sources to follow up |
| from_archive | boolean | Is true if the current ticket is archived |
| incidents | integer | A count of related incident occurrences |
| object | X (formerly Twitter) information associated with the ticket |
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| ticket_id | path | optional | integer | The ID of the ticket |
Successful response
GET /api/v2/tickets/{ticket_id}/related
/api/v2/trigger_categories
Returns all the trigger categories in the account.
See Pagination.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| page | query | optional | object | Pagination parameters |
| sort | query | optional | string | Sort parameters |
| include | query | optional | string | Allowed sideloads |
A paged array of trigger categories
Error
Error
GET /api/v2/trigger_categories
/api/v2/trigger_categories/{trigger_category_id}
Returns the trigger category with the specified ID.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| trigger_category_id | path | required | string | The id of the trigger category to retrieve |
The requested trigger category
Error
GET /api/v2/trigger_categories/{trigger_category_id}
/api/v2/triggers
Lists all triggers for the current account.
See Pagination.
Returns a maximum of 100 records per page.
The following sideloads are supported. The usage sideloads are only supported on the Support Professional or Suite Growth plan or above.
| Name | Will sideload |
|---|---|
| app_installation | The app installation that requires each trigger, if present |
| permissions | The permissions for each trigger |
| usage_1h | The number of times each trigger has been used in the past hour |
| usage_24h | The number of times each trigger has been used in the past day |
| usage_7d | The number of times each trigger has been used in the past week |
| usage_30d | The number of times each trigger has been used in the past thirty days |
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| active | query | optional | boolean | Filter by active triggers if true or inactive triggers if false |
| sort | query | optional | string | Cursor-based pagination only. Possible values are “alphabetical”, “created_at”, “updated_at”, or “position”. |
| sort_by | query | optional | string | Offset pagination only. Possible values are “alphabetical”, “created_at”, “updated_at”, “usage_1h”, “usage_24h”, or “usage_7d”. Defaults to “position” |
| sort_order | query | optional | string | One of “asc” or “desc”. Defaults to “asc” for alphabetical and position sort, “desc” for all others |
| category_id | query | optional | string | Filter triggers by category ID |
Success response
GET /api/v2/triggers
/api/v2/triggers/active
Lists all active triggers.
See Pagination.
Returns a maximum of 100 records per page.
The following sideloads are supported:
| Name | Will sideload |
|---|---|
| app_installation | The app installation that requires each trigger, if present |
| permissions | The permissions for each trigger |
| usage_1h | The number of times each trigger has been used in the past hour |
| usage_24h | The number of times each trigger has been used in the past day |
| usage_7d | The number of times each trigger has been used in the past week |
| usage_30d | The number of times each trigger has been used in the past thirty days |
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| sort | query | optional | string | Cursor-based pagination only. Possible values are “alphabetical”, “created_at”, “updated_at”, or “position”. |
| sort_by | query | optional | string | Offset pagination only. Possible values are “alphabetical”, “created_at”, “updated_at”, “usage_1h”, “usage_24h”, or “usage_7d”. Defaults to “position” |
| sort_order | query | optional | string | One of “asc” or “desc”. Defaults to “asc” for alphabetical and position sort, “desc” for all others |
| category_id | query | optional | string | Filter triggers by category ID |
Success response
GET /api/v2/triggers/active
/api/v2/triggers/definitions
Returns the definitions of the actions a trigger can perform and the
definitions of the conditions under which a trigger can execute. The
definition of the action includes a title (“Status”), a type (“list”), and
possible values. The definition of the condition includes the same fields
as well as the possible operators.
For a list of supported actions, see the Actions reference
For a list of supported conditions, see the Conditions reference
Success response
GET /api/v2/triggers/definitions
/api/v2/triggers/search
The following sideloads are supported. For more information, see Side-loading.
| Name | Will sideload |
|---|---|
| app_installation | The app installation that requires each trigger, if present |
| permissions | The permissions for each trigger |
| usage_1h | The number of times each trigger has been used in the past hour |
| usage_24h | The number of times each trigger has been used in the past day |
| usage_7d | The number of times each trigger has been used in the past week |
| usage_30d | The number of times each trigger has been used in the past thirty days |
Use the filter query parameter to filter a trigger search by one or more attributes. For example, the following filter argument filters triggers by the description attribute:
{
"json": {
"description": "Close a ticket"
}
}
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| query | query | optional | string | Query string used to find all triggers with matching title |
| filter | query | optional | object | Trigger attribute filters for the search. See Filter |
| active | query | optional | boolean | Filter by active triggers if true or inactive triggers if false |
| sort | query | optional | string | Cursor-based pagination only. Possible values are “alphabetical”, “created_at”, “updated_at”, or “position”. |
| sort_by | query | optional | string | Offset pagination only. Possible values are “alphabetical”, “created_at”, “updated_at”, “usage_1h”, “usage_24h”, or “usage_7d”. Defaults to “position” |
| sort_order | query | optional | string | One of “asc” or “desc”. Defaults to “asc” for alphabetical and position sort, “desc” for all others |
| include | query | optional | string | A sideload to include in the response. See Sideloads |
Success response
GET /api/v2/triggers/search
/api/v2/triggers/{trigger_id}
The Via Type value is a number instead of a text string. See Via types reference for the keys.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| trigger_id | path | optional | integer | The ID of the trigger |
Success response
GET /api/v2/triggers/{trigger_id}
/api/v2/triggers/{trigger_id}/revisions
List the revisions associated with a trigger. Trigger revision history is only available on Enterprise plans.
The following sideloads are supported:
| Name | Will sideload |
|---|---|
| users | The user that authored each revision |
This endpoint uses cursor-based pagination. The records are ordered in
descending order by the created_at timestamp, then by id on duplicate
created_at values.
The cursor parameter is a non-human-readable argument you can use to move
forward or backward in time.
Each JSON response will contain the following attributes to help you get
more results:
after_url requests more recent resultsbefore_url requests older resultsafter_cursor is the cursor to build the request yourselfbefore_cursor is the cursor to build the request yourselfThe properties are null if no more records are available.
You can request a maximum of 1000 records using the limit parameter. If
no limit parameter is supplied, it will default to 1,000.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| trigger_id | path | optional | integer | The ID of the trigger |
Success response
GET /api/v2/triggers/{trigger_id}/revisions
/api/v2/triggers/{trigger_id}/revisions/{trigger_revision_id}
Fetches a revision associated with a trigger. Trigger revision history is only available on Enterprise plans.
The following sideloads are supported:
| Name | Will sideload |
|---|---|
| users | The user that authored each revision |
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| trigger_id | path | optional | integer | The ID of the trigger |
| trigger_revision_id | path | optional | integer | The ID of the revision for a particular trigger |
Success response
GET /api/v2/triggers/{trigger_id}/revisions/{trigger_revision_id}
/api/v2/user_fields
Returns a list of custom user fields in your account. Fields are returned in the order that you specify in your user fields configuration in Zendesk Support. Clients should cache this resource for the duration of their API usage and map the key for each User Field to the values returned under the user_fields attribute on the User resource.
See Pagination.
Returns a maximum of 100 records per page.
Success response
GET /api/v2/user_fields
/api/v2/user_fields/{user_field_id}
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| user_field_id | path | optional | The ID or key of the user field |
Success response
GET /api/v2/user_fields/{user_field_id}
/api/v2/user_fields/{user_field_id}/options
Returns a list of custom user field options for the given dropdown user field.
See Pagination.
Returns a maximum of 100 records per page.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| user_field_id | path | optional | The ID or key of the user field |
Success response
GET /api/v2/user_fields/{user_field_id}/options
/api/v2/user_fields/{user_field_id}/options/{user_field_option_id}
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| user_field_id | path | optional | The ID or key of the user field |
|
| user_field_option_id | path | optional | integer | The ID of the user field option |
Success response
GET /api/v2/user_fields/{user_field_id}/options/{user_field_option_id}
/api/v2/users/{user_id}/identities
Returns a list of identities for the given user.
Use the first endpoint if authenticating as an agent. Use the second if authenticating as an end user. End users can only list email and phone number identities.
See Pagination.
Returns a maximum of 100 records per page.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| user_id | path | optional | integer | The id of the user |
Success response
GET /api/v2/users/{user_id}/identities
/api/v2/users/{user_id}/identities/{user_identity_id}
Shows the identity with the given id for a given user.
Use the first endpoint if authenticating as an agent. Use the second if authenticating as an end user. End users can only view email or phone number identity.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| user_id | path | optional | integer | The id of the user |
| user_identity_id | path | optional | integer | The ID of the user identity |
Success response
GET /api/v2/users/{user_id}/identities/{user_identity_id}
/api/v2/users/{user_id}/password/requirements
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| user_id | path | optional | integer | The id of the user |
Success response
GET /api/v2/users/{user_id}/password/requirements
/api/v2/deleted_users
Returns deleted users, including permanently deleted users.
If the results contains permanently deleted users, the users’ properties
that normally contain personal data, such as email and phone,
are null. The name property is “Permanently Deleted User”.
See Pagination.
Returns a maximum of 100 records per page.
Success response
GET /api/v2/deleted_users
/api/v2/deleted_users/count
Returns an approximate count of deleted users, including permanently deleted users. If the count exceeds 100,000, it is updated every 24 hours.
The response includes a refreshed_at property in a count object that contains a timestamp indicating when the count was last updated.
Note: When the count exceeds 100,000, count[refreshed_at] may occasionally be null.
This indicates that the count is being updated in the background, and count[value] is limited to 100,000 until the update is complete.
Success response
GET /api/v2/deleted_users/count
/api/v2/deleted_users/{deleted_user_id}
Returns users that have been deleted but not permanently yet. See Permanently Delete User.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| deleted_user_id | path | optional | integer | The ID of the deleted user |
Success response
GET /api/v2/deleted_users/{deleted_user_id}
/api/v2/users
See Pagination.
Returns a maximum of 100 records per page.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| role | query | optional | string | Filters the results by role. Possible values are “end-user”, “agent”, or “admin” |
| role[] | query | optional | string | Filters the results by more than one role using the format |
| permission_set | query | optional | integer | For custom roles which is available on the Enterprise plan and above. You can only filter by one role ID per request |
| external_id | query | optional | string | List users by external id. External id has to be unique for each user under the same account. |
Success response
GET /api/v2/users
/api/v2/users/autocomplete
Returns an array of users whose name starts with the value specified in the name parameter.
It only returns users with no foreign identities.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| name | query | required | string | The name to search for the user. |
| field_id | query | optional | string | The id of a lookup relationship field. The type of field is determined |
| source | query | optional | string | If a |
Success response
GET /api/v2/users/autocomplete
/api/v2/users/count
Returns an approximate count of users. If the count exceeds 100,000, it is updated every 24 hours.
The response includes a refreshed_at property in a count object that contains a timestamp indicating when the count was last updated.
Note: When the count exceeds 100,000, the refreshed_at property may occasionally be null.
This indicates that the count is being updated in the background. The count object’s value property is limited to 100,000 until the update is complete.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| role | query | optional | string | Filters the results by role. Possible values are “end-user”, “agent”, or “admin” |
| role[] | query | optional | string | Filters the results by more than one role using the format |
| permission_set | query | optional | integer | For custom roles which is available on the Enterprise plan and above. You can only filter by one role ID per request |
Success response
GET /api/v2/users/count
/api/v2/users/me
The endpoint returns user information and an authenticity_token.
Zendesk API calls made by end users from a Zendesk help center must include authenticity_token in the X-CSRF-Token HTTP header. This helps prevent cross-site request forgery (CSRF) attacks.
For an example using an authenticity token, see the AJAX request in the Upgrading from Templating API v1 documentation.
Success response
GET /api/v2/users/me
/api/v2/users/search
Returns an array of users who meet the search criteria.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| query | query | optional | string | The |
| external_id | query | optional | string | The |
Success response
GET /api/v2/users/search
/api/v2/users/show_many
Accepts a comma-separated list of up to 100 user ids or external ids.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| ids | query | optional | string | Accepts a comma-separated list of up to 100 user ids. |
| external_ids | query | optional | string | Accepts a comma-separated list of up to 100 external ids. |
Success response
GET /api/v2/users/show_many
/api/v2/users/{user_id}
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| user_id | path | optional | integer | The id of the user |
Success response
GET /api/v2/users/{user_id}
/api/v2/users/{user_id}/compliance_deletion_statuses
Returns the GDPR status for each user per area of compliance. A Zendesk area of compliance is typically a product like “support/explore” but can be more fine-grained for areas within the product lines.
If the user is not in the account, the request returns a 404 status.
Status: 404
{
"error":"RecordNotFound",
"description":"Not found"
}
See Pagination.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| user_id | path | optional | integer | The id of the user |
| application | query | optional | string | Area of compliance |
Success response
GET /api/v2/users/{user_id}/compliance_deletion_statuses
/api/v2/users/{user_id}/related
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| user_id | path | optional | integer | The id of the user |
Success response
GET /api/v2/users/{user_id}/related
/api/v2/views
Lists shared and personal views available to the current user.
The following sideloads are supported:
| Name | Will sideload |
|---|---|
| app_installation | The app installation that requires each view, if present |
| permissions | The permissions for each view |
created_at)See Pagination.
Returns a maximum of 100 records per page.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| access | query | optional | string | Only views with given access. May be “personal”, “shared”, or “account” |
| active | query | optional | boolean | Only active views if true, inactive views if false |
| group_id | query | optional | integer | Only views belonging to given group |
| sort_by | query | optional | string | Possible values are “alphabetical”, “created_at”, or “updated_at”. Defaults to “position” |
| sort_order | query | optional | string | One of “asc” or “desc”. Defaults to “asc” for alphabetical and position sort, “desc” for all others |
Success response
GET /api/v2/views
/api/v2/views/active
Lists active shared and personal views available to the current user.
The following sideloads are supported:
| Name | Will sideload |
|---|---|
| app_installation | The app installation that requires each view, if present |
| permissions | The permissions for each view |
See Pagination.
Returns a maximum of 100 records per page.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| access | query | optional | string | Only views with given access. May be “personal”, “shared”, or “account” |
| group_id | query | optional | integer | Only views belonging to given group |
| sort_by | query | optional | string | Possible values are “alphabetical”, “created_at”, or “updated_at”. Defaults to “position” |
| sort_order | query | optional | string | One of “asc” or “desc”. Defaults to “asc” for alphabetical and position sort, “desc” for all others |
Success response
GET /api/v2/views/active
/api/v2/views/compact
A compacted list of shared and personal views available to the current user. This endpoint never returns more than 32 records and does not respect the “per_page” option.
Success response
GET /api/v2/views/compact
/api/v2/views/count
Returns an approximate count of shared and personal views available to the current user. If the count exceeds 100,000, the count will return a cached result. This cached result will update every 24 hours.
The count[refreshed_at] property is a timestamp that indicates when the count was last updated.
Note: When the count exceeds 100,000, count[refreshed_at] may occasionally be null.
This indicates that the count is being updated in the background, and count[value] is limited to 100,000 until the update is complete.
Count of views
GET /api/v2/views/count
/api/v2/views/count_many
Returns the ticket count of each view in a list of views. Accepts up to 20 view ids per request. For the ticket count of a single view, see Count Tickets in View.
Only returns values for personal and shared views accessible to the user performing the request.
This endpoint is rate limited to 6 requests every 5 minutes.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| ids | query | required | string | List of view’s ids separated by commas. |
Success response
GET /api/v2/views/count_many
/api/v2/views/search
The following sideloads are supported. For more information, see Side-loading.
| Name | Will sideload |
|---|---|
| app_installation | The app installation that requires each view, if present |
| permissions | The permissions for each view |
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| query | query | required | string | Query string used to find all views with matching title |
| access | query | optional | string | Filter views by access. May be “personal”, “shared”, or “account” |
| active | query | optional | boolean | Filter by active views if true or inactive views if false |
| group_id | query | optional | integer | Filter views by group |
| sort_by | query | optional | string | Possible values are “alphabetical”, “created_at”, “updated_at”, and “position”. If unspecified, the views are sorted by relevance |
| sort_order | query | optional | string | One of “asc” or “desc”. Defaults to “asc” for alphabetical and position sort, “desc” for all others |
| include | query | optional | string | A sideload to include in the response. See Sideloads |
Success response
GET /api/v2/views/search
/api/v2/views/show_many
The following sideloads are supported:
| Name | Will sideload |
|---|---|
| app_installation | The app installation that requires each view, if present |
| permissions | The permissions for each view |
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| ids | query | required | string | List of view’s ids separated by commas. |
| active | query | optional | boolean | Only active views if true, inactive views if false |
Success response
GET /api/v2/views/show_many
/api/v2/views/{view_id}
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| view_id | path | optional | integer | The ID of the view |
Success response
GET /api/v2/views/{view_id}
/api/v2/views/{view_id}/count
Returns the ticket count for a single view.
This endpoint is rate limited to 5 requests per minute, per view, per agent.
The view count endpoints, Count Tickets in View (this endpoint) and Count Tickets in Views, let you estimate how many tickets remain in a view without having to retrieve the entire view. They’re designed to help estimate view size. From a business perspective, accuracy becomes less relevant as view size increases.
To ensure quality of service, these counts are cached more heavily as the number of tickets in a view grows. For a view with thousands of tickets, you can expect the count to be cached for 60-90 minutes. As a result, the count may not reflect the actual number of tickets in your view.
View counts are represented as JSON objects with the following attributes:
| Name | Type | Comment |
|---|---|---|
| view_id | integer | The id of the view |
| url | string | The API url of the count |
| value | integer | The cached number of tickets in the view. Can also be null if the system is loading and caching new data. Not to be confused with 0 tickets |
| pretty | string | A pretty-printed text approximation of the view count |
| fresh | boolean | false if the cached data is stale and the system is still loading and caching new data |
| active | boolean | Only active views if true, inactive views if false, all views if null. |
{
"view_count": {
"view_id": 25,
"url": "https://company.zendesk.com/api/v2/views/25/count.json",
"value": 719,
"pretty": "~700",
"fresh": true
}
}
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| view_id | path | optional | integer | The ID of the view |
Success response
GET /api/v2/views/{view_id}/count
/api/v2/views/{view_id}/execute
Returns the column titles and the rows of the specified view.
The columns array lists the view’s column titles and includes only views parameters.
The rows array lists the values of each column for each ticket and includes parameters from both views and tickets. Though not displayed in the view, a partial ticket object is included with each row object.
Note: To get the full ticket objects for a specified view, use List Tickets from a View.
This endpoint is rate limited to 5 requests per minute, per view, per agent.
The view execution system is designed for periodic rather than high-frequency API usage. In particular, views called very frequently may be cached by Zendesk. This means that the API client will still receive a result, but that result may have been computed at any time within the last 10 minutes.
Zendesk recommends using the Incremental Ticket Export endpoint to get the latest changes. You can call it more often, and it returns all the tickets that changed since the last poll. For details and rate limits, see Incremental Exports.
View output sorting can be controlled by passing the sort_by and sort_order parameters in the format described in the table in Preview Views.
See Pagination.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| view_id | path | optional | integer | The ID of the view |
| sort_by | query | optional | string | The ticket field used for sorting. This will either be a title or a custom field id. |
| sort_order | query | optional | string | The direction the tickets are sorted. May be one of ‘asc’ or ‘desc’ |
Success response
GET /api/v2/views/{view_id}/execute
/api/v2/views/{view_id}/export
Returns the csv attachment of the specified view if possible. Enqueues a job to produce the csv if necessary.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| view_id | path | optional | integer | The ID of the view |
Success response
GET /api/v2/views/{view_id}/export
/api/v2/views/{view_id}/tickets
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| view_id | path | optional | integer | The ID of the view |
| sort_by | query | optional | string | Sort or group the tickets by a column in the View columns table. The |
| sort_order | query | optional | string | One of “asc” or “desc”. Defaults to “asc” for alphabetical and position sort, “desc” for all others |
Success response
GET /api/v2/views/{view_id}/tickets
/api/v2/workspaces
Success Response
GET /api/v2/workspaces
/api/v2/workspaces/{workspace_id}
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| workspace_id | path | optional | integer | The id of the workspace |
Successful response
GET /api/v2/workspaces/{workspace_id}
/api/v2/channels/twitter/monitored_twitter_handles
Success response
GET /api/v2/channels/twitter/monitored_twitter_handles
/api/v2/channels/twitter/monitored_twitter_handles/{monitored_twitter_handle_id}
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| monitored_twitter_handle_id | path | optional | integer | The ID of the custom agent role |
Success response
GET /api/v2/channels/twitter/monitored_twitter_handles/{monitored_twitter_handle_id}
/api/v2/channels/twitter/tickets/{comment_id}/statuses
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| comment_id | path | optional | integer | The ID of the comment |
| ids | query | optional | string | Optional comment ids to retrieve tweet information for only particular comments |
Success response
GET /api/v2/channels/twitter/tickets/{comment_id}/statuses
AccountSettingsActiveFeaturesObject
{
"type": "object",
"properties": {
"chat": {
"type": "boolean"
},
"voice": {
"type": "boolean"
},
"explore": {
"type": "boolean"
},
"sandbox": {
"type": "boolean"
},
"twitter": {
"type": "boolean"
},
"facebook": {
"type": "boolean"
},
"insights": {
"type": "boolean"
},
"markdown": {
"type": "boolean"
},
"allow_ccs": {
"type": "boolean"
},
"is_abusive": {
"type": "boolean"
},
"google_login": {
"type": "boolean"
},
"light_agents": {
"type": "boolean"
},
"ticket_forms": {
"type": "boolean"
},
"user_tagging": {
"type": "boolean"
},
"bcc_archiving": {
"type": "boolean"
},
"twitter_login": {
"type": "boolean"
},
"business_hours": {
"type": "boolean"
},
"facebook_login": {
"type": "boolean"
},
"on_hold_status": {
"type": "boolean"
},
"ticket_tagging": {
"type": "boolean"
},
"forum_analytics": {
"type": "boolean"
},
"user_org_fields": {
"type": "boolean"
},
"agent_forwarding": {
"type": "boolean"
},
"csat_reason_code": {
"type": "boolean"
},
"dynamic_contents": {
"type": "boolean"
},
"topic_suggestion": {
"type": "boolean"
},
"automatic_answers": {
"type": "boolean"
},
"benchmark_opt_out": {
"type": "boolean"
},
"fallback_composer": {
"type": "boolean"
},
"advanced_analytics": {
"type": "boolean"
},
"custom_dkim_domain": {
"type": "boolean"
},
"chat_about_my_ticket": {
"type": "boolean"
},
"customer_satisfaction": {
"type": "boolean"
},
"good_data_and_explore": {
"type": "boolean"
},
"rich_content_in_emails": {
"type": "boolean"
},
"satisfaction_prediction": {
"type": "boolean"
},
"customer_context_as_default": {
"type": "boolean"
},
"explore_on_support_ent_plan": {
"type": "boolean"
},
"explore_on_support_pro_plan": {
"type": "boolean"
},
"organization_access_enabled": {
"type": "boolean"
},
"suspended_ticket_notification": {
"type": "boolean"
},
"allow_email_template_customization": {
"type": "boolean"
}
},
"description": "The active features for an account. See [Active Features](https://developer.zendesk.com)"
}
AccountSettingsAgentObject
{
"type": "object",
"properties": {
"agent_home": {
"type": "boolean"
},
"focus_mode": {
"type": "boolean"
},
"agent_workspace": {
"type": "boolean"
},
"idle_timeout_enabled": {
"type": "boolean"
},
"unified_agent_statuses": {
"type": "boolean"
},
"aw_self_serve_migration_enabled": {
"type": "boolean"
}
},
"description": "Configuration for the agent workspace. See [Agents](https://developer.zendesk.com)"
}
AccountSettingsApiObject
{
"type": "object",
"properties": {
"api_token_access": {
"type": "string"
},
"api_password_access": {
"type": "string"
},
"accepted_api_agreement": {
"type": "boolean"
}
},
"description": "API configuration options. See [API](https://developer.zendesk.com)"
}
AccountSettingsAppsObject
{
"type": "object",
"properties": {
"use": {
"type": "boolean"
},
"create_public": {
"type": "boolean"
},
"create_private": {
"type": "boolean"
}
},
"description": "Apps configuration options. See [Apps](https://developer.zendesk.com)"
}
AccountSettingsBillingObject
{
"type": "object",
"properties": {
"backend": {
"type": "string"
}
},
"description": "Billing configuration options. See [Billing](https://developer.zendesk.com)"
}
AccountSettingsBrandingObject
{
"type": "object",
"properties": {
"text_color": {
"type": "string"
},
"favicon_url": {
"type": "string",
"nullable": true
},
"header_color": {
"type": "string"
},
"header_logo_url": {
"type": "string",
"nullable": true
},
"tab_background_color": {
"type": "string"
},
"page_background_color": {
"type": "string"
}
},
"description": "Branding settings. See [Branding](https://developer.zendesk.com)"
}
AccountSettingsBrandsObject
{
"type": "object",
"properties": {
"default_brand_id": {
"type": "integer"
},
"require_brand_on_new_tickets": {
"type": "boolean"
}
},
"description": "Brand settings. See [Brands](https://developer.zendesk.com)"
}
AccountSettingsCdnObject
{
"type": "object",
"properties": {
"hosts": {
"type": "array",
"items": {
"type": "object",
"properties": {
"url": {
"type": "string"
},
"name": {
"type": "string"
}
}
}
},
"cdn_provider": {
"type": "string"
},
"fallback_cdn_provider": {
"type": "string"
}
},
"description": "CDN settings"
}
AccountSettingsChatObject
{
"type": "object",
"properties": {
"enabled": {
"type": "boolean"
},
"available": {
"type": "boolean"
},
"integrated": {
"type": "boolean"
},
"welcome_message": {
"type": "string"
},
"maximum_request_count": {
"type": "integer"
}
},
"description": "Zendesk Chat settings. See [Chat](https://developer.zendesk.com)"
}
AccountSettingsCrossSellObject
{
"type": "object",
"properties": {
"xsell_source": {
"type": "string",
"nullable": true
},
"show_chat_tooltip": {
"type": "boolean"
}
},
"description": "Cross Sell settings"
}
AccountSettingsGooddataAdvancedAnalyticsObject
{
"type": "object",
"properties": {
"enabled": {
"type": "boolean"
}
},
"description": "GoodData settings, used for insights. Legacy configuration prior to Zendesk Explore. See [GoodData Advanced Analytics](https://developer.zendesk.com)"
}
AccountSettingsGoogleAppsObject
{
"type": "object",
"properties": {
"has_google_apps": {
"type": "boolean"
},
"has_google_apps_admin": {
"type": "boolean"
}
},
"description": "Google Apps configuration. See [G Suite](https://developer.zendesk.com)"
}
AccountSettingsGroupObject
{
"type": "object",
"properties": {
"check_group_name_uniqueness": {
"type": "boolean"
}
},
"description": "Group configuration"
}
AccountSettingsLimitsObject
{
"type": "object",
"properties": {
"attachment_size": {
"type": "integer"
}
},
"description": "Account limits configuration. See [Limits](https://developer.zendesk.com)"
}
AccountSettingsLocalizationObject
{
"type": "object",
"properties": {
"locale_ids": {
"type": "array",
"items": {
"type": "integer"
}
}
},
"description": "Internationalization configuration settings. See [Localization](https://developer.zendesk.com)"
}
AccountSettingsLotusObject
{
"type": "object",
"properties": {
"pod_id": {
"type": "integer"
},
"reporting": {
"type": "boolean"
},
"prefer_lotus": {
"type": "boolean"
}
},
"description": "Support UI settings. See [Lotus](https://developer.zendesk.com)"
}
AccountSettingsMetricsObject
{
"type": "object",
"properties": {
"account_size": {
"type": "string"
}
},
"description": "Account metrics settings. See [Metrics](https://developer.zendesk.com)"
}
AccountSettingsObject
{
"type": "object",
"example": {
"api": {
"api_token_access": "true",
"api_password_access": "true",
"accepted_api_agreement": true
},
"cdn": {
"hosts": [
{
"url": "https://p18.zdassets.com",
"name": "default"
},
{
"url": "https://d2y9oszrd3dhjh.cloudfront.net",
"name": "cloudfront"
}
],
"cdn_provider": "default",
"fallback_cdn_provider": "cloudfront"
},
"apps": {
"use": true,
"create_public": false,
"create_private": true
},
"chat": {
"enabled": false,
"available": true,
"integrated": true,
"welcome_message": "Hi there. How can I help today?",
"maximum_request_count": 1
},
"rule": {
"macro_order": "alphabetical",
"macro_most_used": true,
"using_skill_based_routing": false,
"skill_based_filtered_views": []
},
"user": {
"tagging": true,
"language_selection": true,
"time_zone_selection": true,
"have_gravatars_enabled": true,
"multiple_organizations": false,
"agent_created_welcome_emails": true,
"end_user_phone_number_validation": false
},
"lotus": {
"pod_id": 999,
"reporting": true,
"prefer_lotus": true
},
"voice": {
"enabled": true,
"logging": true,
"outbound_enabled": true,
"recordings_public": true,
"maximum_queue_size": 5,
"uk_mobile_forwarding": true,
"maximum_queue_wait_time": 1,
"agent_wrap_up_after_calls": true,
"only_during_business_hours": false,
"agent_confirmation_when_forwarding": true
},
"agents": {
"agent_home": false,
"focus_mode": false,
"agent_workspace": false,
"idle_timeout_enabled": false,
"unified_agent_statuses": false,
"aw_self_serve_migration_enabled": true
},
"brands": {
"default_brand_id": 1873,
"require_brand_on_new_tickets": false
},
"groups": {
"check_group_name_uniqueness": true
},
"limits": {
"attachment_size": 52428800
},
"billing": {
"backend": "zuora"
},
"metrics": {
"account_size": "100-399"
},
"routing": {
"enabled": false,
"autorouting_tag": "",
"max_email_capacity": 0,
"max_messaging_capacity": 0,
"reassignment_talk_timeout": 30,
"reassignment_messaging_enabled": true,
"reassignment_messaging_timeout": 30
},
"tickets": {
"tagging": true,
"status_hold": false,
"collaboration": true,
"has_color_text": true,
"agent_collision": true,
"list_empty_views": true,
"allow_group_reset": true,
"email_attachments": false,
"rich_text_comments": true,
"chat_sla_enablement": false,
"private_attachments": false,
"emoji_autocompletion": true,
"agent_ticket_deletion": false,
"agent_invitation_enabled": true,
"auto_translation_enabled": false,
"markdown_ticket_comments": false,
"assign_tickets_upon_solve": true,
"using_skill_based_routing": false,
"comments_public_by_default": true,
"list_newest_comments_first": true,
"assign_default_organization": true,
"light_agent_email_ccs_allowed": false,
"accepted_new_collaboration_tos": false,
"maximum_personal_views_to_list": 8,
"auto_updated_ccs_followers_rules": false,
"is_first_comment_private_enabled": true,
"follower_and_email_cc_collaborations": false
},
"twitter": {
"shorten_url": "optional"
},
"branding": {
"text_color": "FFFFFF",
"favicon_url": null,
"header_color": "78A300",
"header_logo_url": null,
"tab_background_color": "7FA239",
"page_background_color": "333333"
},
"cross_sell": {
"xsell_source": null,
"show_chat_tooltip": true
},
"onboarding": {
"product_sign_up": null,
"onboarding_segments": null,
"checklist_onboarding_version": 2
},
"statistics": {
"forum": true,
"search": true,
"rule_usage": true
},
"google_apps": {
"has_google_apps": false,
"has_google_apps_admin": false
},
"ticket_form": {
"ticket_forms_instructions": "Please choose your issue below",
"raw_ticket_forms_instructions": "Please choose your issue below"
},
"localization": {
"locale_ids": [
1042
]
},
"active_features": {
"chat": false,
"voice": true,
"explore": true,
"sandbox": false,
"twitter": true,
"facebook": false,
"insights": false,
"markdown": false,
"allow_ccs": true,
"is_abusive": false,
"google_login": false,
"light_agents": false,
"ticket_forms": true,
"user_tagging": true,
"bcc_archiving": false,
"twitter_login": false,
"business_hours": false,
"facebook_login": false,
"on_hold_status": false,
"ticket_tagging": true,
"forum_analytics": true,
"user_org_fields": true,
"agent_forwarding": false,
"csat_reason_code": false,
"dynamic_contents": false,
"topic_suggestion": false,
"automatic_answers": false,
"benchmark_opt_out": false,
"fallback_composer": false,
"advanced_analytics": false,
"custom_dkim_domain": true,
"chat_about_my_ticket": false,
"customer_satisfaction": false,
"good_data_and_explore": false,
"rich_content_in_emails": true,
"satisfaction_prediction": false,
"customer_context_as_default": false,
"explore_on_support_ent_plan": false,
"explore_on_support_pro_plan": false,
"organization_access_enabled": true,
"suspended_ticket_notification": false,
"allow_email_template_customization": true
},
"side_conversations": {
"email_channel": false,
"slack_channel": false,
"msteams_channel": false,
"tickets_channel": false,
"show_in_context_panel": false
},
"ticket_sharing_partners": {
"support_addresses": [
"support@grokpetre.zendesk.com"
]
},
"gooddata_advanced_analytics": {
"enabled": true
}
},
"properties": {
"api": {
"$ref": "#/components/schemas/AccountSettingsApiObject"
},
"cdn": {
"$ref": "#/components/schemas/AccountSettingsCdnObject"
},
"apps": {
"$ref": "#/components/schemas/AccountSettingsAppsObject"
},
"chat": {
"$ref": "#/components/schemas/AccountSettingsChatObject"
},
"rule": {
"$ref": "#/components/schemas/AccountSettingsRuleObject"
},
"user": {
"$ref": "#/components/schemas/AccountSettingsUserObject"
},
"lotus": {
"$ref": "#/components/schemas/AccountSettingsLotusObject"
},
"voice": {
"$ref": "#/components/schemas/AccountSettingsVoiceObject"
},
"agents": {
"$ref": "#/components/schemas/AccountSettingsAgentObject"
},
"brands": {
"$ref": "#/components/schemas/AccountSettingsBrandsObject"
},
"groups": {
"$ref": "#/components/schemas/AccountSettingsGroupObject"
},
"limits": {
"$ref": "#/components/schemas/AccountSettingsLimitsObject"
},
"billing": {
"$ref": "#/components/schemas/AccountSettingsBillingObject"
},
"metrics": {
"$ref": "#/components/schemas/AccountSettingsMetricsObject"
},
"routing": {
"$ref": "#/components/schemas/AccountSettingsRoutingObject"
},
"tickets": {
"$ref": "#/components/schemas/AccountSettingsTicketObject"
},
"twitter": {
"$ref": "#/components/schemas/AccountSettingsTwitterObject"
},
"branding": {
"$ref": "#/components/schemas/AccountSettingsBrandingObject"
},
"cross_sell": {
"$ref": "#/components/schemas/AccountSettingsCrossSellObject"
},
"onboarding": {
"$ref": "#/components/schemas/AccountSettingsOnboardingObject"
},
"statistics": {
"$ref": "#/components/schemas/AccountSettingsStatisticsObject"
},
"google_apps": {
"$ref": "#/components/schemas/AccountSettingsGoogleAppsObject"
},
"ticket_form": {
"$ref": "#/components/schemas/AccountSettingsTicketFormObject"
},
"localization": {
"$ref": "#/components/schemas/AccountSettingsLocalizationObject"
},
"active_features": {
"$ref": "#/components/schemas/AccountSettingsActiveFeaturesObject"
},
"side_conversations": {
"$ref": "#/components/schemas/AccountSettingsSideConversationsObject"
},
"ticket_sharing_partners": {
"$ref": "#/components/schemas/AccountSettingsTicketSharingPartnersObject"
},
"gooddata_advanced_analytics": {
"$ref": "#/components/schemas/AccountSettingsGooddataAdvancedAnalyticsObject"
}
}
}
AccountSettingsOnboardingObject
{
"type": "object",
"properties": {
"product_sign_up": {
"type": "string",
"nullable": true
},
"onboarding_segments": {
"type": "string",
"nullable": true
},
"checklist_onboarding_version": {
"type": "integer"
}
},
"description": "Onboarding settings"
}
AccountSettingsResponse
{
"type": "object",
"example": {
"settings": {
"api": {
"api_token_access": "true",
"api_password_access": "true",
"accepted_api_agreement": true
},
"cdn": {
"hosts": [
{
"url": "https://p18.zdassets.com",
"name": "default"
},
{
"url": "https://d2y9oszrd3dhjh.cloudfront.net",
"name": "cloudfront"
}
],
"cdn_provider": "default",
"fallback_cdn_provider": "cloudfront"
},
"apps": {
"use": true,
"create_public": false,
"create_private": true
},
"chat": {
"enabled": false,
"available": true,
"integrated": true,
"welcome_message": "Hi there. How can I help today?",
"maximum_request_count": 1
},
"rule": {
"macro_order": "alphabetical",
"macro_most_used": true,
"using_skill_based_routing": false,
"skill_based_filtered_views": []
},
"user": {
"tagging": true,
"language_selection": true,
"time_zone_selection": true,
"have_gravatars_enabled": true,
"multiple_organizations": false,
"agent_created_welcome_emails": true,
"end_user_phone_number_validation": false
},
"lotus": {
"pod_id": 999,
"reporting": true,
"prefer_lotus": true
},
"voice": {
"enabled": true,
"logging": true,
"outbound_enabled": true,
"recordings_public": true,
"maximum_queue_size": 5,
"uk_mobile_forwarding": true,
"maximum_queue_wait_time": 1,
"agent_wrap_up_after_calls": true,
"only_during_business_hours": false,
"agent_confirmation_when_forwarding": true
},
"agents": {
"agent_home": false,
"focus_mode": false,
"agent_workspace": false,
"idle_timeout_enabled": false,
"unified_agent_statuses": false,
"aw_self_serve_migration_enabled": true
},
"brands": {
"default_brand_id": 1873,
"require_brand_on_new_tickets": false
},
"groups": {
"check_group_name_uniqueness": true
},
"limits": {
"attachment_size": 52428800
},
"billing": {
"backend": "zuora"
},
"metrics": {
"account_size": "100-399"
},
"routing": {
"enabled": false,
"autorouting_tag": "",
"max_email_capacity": 0,
"max_messaging_capacity": 0
},
"tickets": {
"tagging": true,
"status_hold": false,
"collaboration": true,
"has_color_text": true,
"agent_collision": true,
"list_empty_views": true,
"allow_group_reset": true,
"email_attachments": false,
"rich_text_comments": true,
"chat_sla_enablement": false,
"private_attachments": false,
"emoji_autocompletion": true,
"agent_ticket_deletion": false,
"agent_invitation_enabled": true,
"auto_translation_enabled": false,
"markdown_ticket_comments": false,
"assign_tickets_upon_solve": true,
"using_skill_based_routing": false,
"comments_public_by_default": true,
"list_newest_comments_first": true,
"assign_default_organization": true,
"light_agent_email_ccs_allowed": false,
"accepted_new_collaboration_tos": false,
"maximum_personal_views_to_list": 8,
"auto_updated_ccs_followers_rules": false,
"is_first_comment_private_enabled": true,
"follower_and_email_cc_collaborations": false
},
"twitter": {
"shorten_url": "optional"
},
"branding": {
"text_color": "FFFFFF",
"favicon_url": null,
"header_color": "78A300",
"header_logo_url": null,
"tab_background_color": "7FA239",
"page_background_color": "333333"
},
"cross_sell": {
"xsell_source": null,
"show_chat_tooltip": true
},
"onboarding": {
"product_sign_up": null,
"onboarding_segments": null,
"checklist_onboarding_version": 2
},
"statistics": {
"forum": true,
"search": true,
"rule_usage": true
},
"google_apps": {
"has_google_apps": false,
"has_google_apps_admin": false
},
"ticket_form": {
"ticket_forms_instructions": "Please choose your issue below",
"raw_ticket_forms_instructions": "Please choose your issue below"
},
"localization": {
"locale_ids": [
1042
]
},
"active_features": {
"chat": false,
"voice": true,
"explore": true,
"sandbox": false,
"twitter": true,
"facebook": false,
"insights": false,
"markdown": false,
"allow_ccs": true,
"is_abusive": false,
"google_login": false,
"light_agents": false,
"ticket_forms": true,
"user_tagging": true,
"bcc_archiving": false,
"twitter_login": false,
"business_hours": false,
"facebook_login": false,
"on_hold_status": false,
"ticket_tagging": true,
"forum_analytics": true,
"user_org_fields": true,
"agent_forwarding": false,
"csat_reason_code": false,
"dynamic_contents": false,
"topic_suggestion": false,
"automatic_answers": false,
"benchmark_opt_out": false,
"fallback_composer": false,
"advanced_analytics": false,
"custom_dkim_domain": true,
"chat_about_my_ticket": false,
"customer_satisfaction": false,
"good_data_and_explore": false,
"rich_content_in_emails": true,
"satisfaction_prediction": false,
"customer_context_as_default": false,
"explore_on_support_ent_plan": false,
"explore_on_support_pro_plan": false,
"organization_access_enabled": true,
"suspended_ticket_notification": false,
"allow_email_template_customization": true
},
"side_conversations": {
"email_channel": false,
"slack_channel": false,
"msteams_channel": false,
"tickets_channel": false,
"show_in_context_panel": false
},
"ticket_sharing_partners": {
"support_addresses": [
"support@grokpetre.zendesk.com"
]
},
"gooddata_advanced_analytics": {
"enabled": true
}
}
},
"properties": {
"settings": {
"$ref": "#/components/schemas/AccountSettingsObject"
}
}
}
AccountSettingsRoutingObject
{
"type": "object",
"properties": {
"enabled": {
"type": "boolean"
},
"autorouting_tag": {
"type": "string"
},
"max_email_capacity": {
"type": "integer"
},
"max_messaging_capacity": {
"type": "integer"
},
"reassignment_talk_timeout": {
"type": "integer"
},
"reassignment_messaging_enabled": {
"type": "boolean"
},
"reassignment_messaging_timeout": {
"type": "integer"
}
},
"description": "Configuration for routing. See [Routing](https://developer.zendesk.com)"
}
AccountSettingsRuleObject
{
"type": "object",
"properties": {
"macro_order": {
"type": "string"
},
"macro_most_used": {
"type": "boolean"
},
"using_skill_based_routing": {
"type": "boolean"
},
"skill_based_filtered_views": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true
}
}
},
"description": "Rules settings for triggers, macros, views, and automations. See [Rules](https://developer.zendesk.com)"
}
AccountSettingsSideConversationsObject
{
"type": "object",
"properties": {
"email_channel": {
"type": "boolean"
},
"slack_channel": {
"type": "boolean"
},
"msteams_channel": {
"type": "boolean"
},
"tickets_channel": {
"type": "boolean"
},
"show_in_context_panel": {
"type": "boolean"
}
},
"description": "Side conversations settings"
}
AccountSettingsStatisticsObject
{
"type": "object",
"properties": {
"forum": {
"type": "boolean"
},
"search": {
"type": "boolean"
},
"rule_usage": {
"type": "boolean"
}
},
"description": "Account statistics settings. See [Statistics](https://developer.zendesk.com)"
}
AccountSettingsTicketFormObject
{
"type": "object",
"properties": {
"ticket_forms_instructions": {
"type": "string"
},
"raw_ticket_forms_instructions": {
"type": "string"
}
},
"description": "Ticket form settings. See [Ticket Form](https://developer.zendesk.com)"
}
AccountSettingsTicketObject
{
"type": "object",
"properties": {
"tagging": {
"type": "boolean"
},
"status_hold": {
"type": "boolean"
},
"collaboration": {
"type": "boolean"
},
"has_color_text": {
"type": "boolean"
},
"agent_collision": {
"type": "boolean"
},
"list_empty_views": {
"type": "boolean"
},
"allow_group_reset": {
"type": "boolean"
},
"email_attachments": {
"type": "boolean"
},
"rich_text_comments": {
"type": "boolean"
},
"chat_sla_enablement": {
"type": "boolean"
},
"private_attachments": {
"type": "boolean"
},
"emoji_autocompletion": {
"type": "boolean"
},
"agent_ticket_deletion": {
"type": "boolean"
},
"agent_invitation_enabled": {
"type": "boolean"
},
"auto_translation_enabled": {
"type": "boolean"
},
"markdown_ticket_comments": {
"type": "boolean"
},
"assign_tickets_upon_solve": {
"type": "boolean"
},
"using_skill_based_routing": {
"type": "boolean"
},
"comments_public_by_default": {
"type": "boolean"
},
"list_newest_comments_first": {
"type": "boolean"
},
"assign_default_organization": {
"type": "boolean"
},
"light_agent_email_ccs_allowed": {
"type": "boolean"
},
"accepted_new_collaboration_tos": {
"type": "boolean"
},
"maximum_personal_views_to_list": {
"type": "integer"
},
"auto_updated_ccs_followers_rules": {
"type": "boolean"
},
"is_first_comment_private_enabled": {
"type": "boolean"
},
"follower_and_email_cc_collaborations": {
"type": "boolean"
}
},
"description": "Ticket settings. See [Tickets](https://developer.zendesk.com)"
}
AccountSettingsTicketSharingPartnersObject
{
"type": "object",
"properties": {
"support_addresses": {
"type": "array",
"items": {
"type": "string"
}
}
},
"description": "Ticket sharing partners settings. See [Ticket Sharing Partners](https://developer.zendesk.com)"
}
AccountSettingsTwitterObject
{
"type": "object",
"properties": {
"shorten_url": {
"type": "string"
}
},
"description": "X (formerly Twitter) settings. See [X](https://developer.zendesk.com)"
}
AccountSettingsUserObject
{
"type": "object",
"properties": {
"tagging": {
"type": "boolean"
},
"language_selection": {
"type": "boolean"
},
"time_zone_selection": {
"type": "boolean"
},
"have_gravatars_enabled": {
"type": "boolean"
},
"multiple_organizations": {
"type": "boolean"
},
"agent_created_welcome_emails": {
"type": "boolean"
},
"end_user_phone_number_validation": {
"type": "boolean"
}
},
"description": "User settings. See [Users](https://developer.zendesk.com)"
}
AccountSettingsVoiceObject
{
"type": "object",
"properties": {
"enabled": {
"type": "boolean"
},
"logging": {
"type": "boolean"
},
"outbound_enabled": {
"type": "boolean"
},
"recordings_public": {
"type": "boolean"
},
"maximum_queue_size": {
"type": "integer"
},
"uk_mobile_forwarding": {
"type": "boolean"
},
"maximum_queue_wait_time": {
"type": "integer"
},
"agent_wrap_up_after_calls": {
"type": "boolean"
},
"only_during_business_hours": {
"type": "boolean"
},
"agent_confirmation_when_forwarding": {
"type": "boolean"
}
},
"description": "Zendesk Talk settings. See [Voice](https://developer.zendesk.com)"
}
ActionObject
{
"type": "object",
"properties": {
"field": {
"type": "string",
"description": "The name of a ticket field to modify"
},
"value": {
"type": "string",
"description": "The new value of the field"
}
}
}
ActionsObject
{
"type": "object",
"properties": {
"actions": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ActionObject"
}
}
}
}
ActivitiesCountResponse
{
"type": "object",
"properties": {
"count": {
"type": "object",
"properties": {
"value": {
"type": "integer"
},
"refreshed_at": {
"type": "string",
"format": "date-time"
}
}
}
}
}
ActivitiesResponse
{
"type": "object",
"example": {
"count": 1,
"users": [
{
"id": 3343,
"url": "https://example.zendesk.com/api/v2/users/3343.json",
"name": "Samwise Gamgee",
"role": "admin",
"tags": [
"101"
],
"alias": "test",
"email": "user@zendesk.com",
"notes": "test",
"phone": null,
"photo": {
"id": 8730791,
"url": "https://example.zendesk.com/api/v2/attachments/8730791.json",
"size": 4566,
"width": 80,
"height": 80,
"inline": false,
"deleted": false,
"file_name": "1f84950b8d7949b3.gif",
"thumbnails": [
{
"id": 8730801,
"url": "https://example.zendesk.com/api/v2/attachments/8730801.json",
"size": 1517,
"width": 32,
"height": 32,
"inline": false,
"deleted": false,
"file_name": "1f84950b8d7949b3_thumb.gif",
"content_url": "https://example.zendesk.com/system/photos/8730801/1f84950b8d7949b3_thumb.gif",
"content_type": "image/gif",
"mapped_content_url": "https://example.zendesk.com/system/photos/8730801/1f84950b8d7949b3_thumb.gif"
}
],
"content_url": "https://example.zendesk.com/system/photos/8730791/1f84950b8d7949b3.gif",
"content_type": "image/gif",
"mapped_content_url": "https://example.zendesk.com/system/photos/8730791/1f84950b8d7949b3.gif"
},
"active": true,
"locale": "en-gb",
"shared": false,
"details": "",
"verified": true,
"locale_id": 5,
"moderator": true,
"role_type": null,
"signature": "test",
"suspended": false,
"time_zone": "American Samoa",
"created_at": "2017-08-14T20:13:53Z",
"report_csv": true,
"updated_at": "2020-11-17T00:33:55Z",
"external_id": "oev7jj",
"user_fields": {
"skittles": "2018-09-14T00:00:00+00:00",
"user_field_1": "101",
"its_remember_september": null
},
"shared_agent": false,
"last_login_at": "2020-11-16T22:57:45Z",
"custom_role_id": null,
"iana_time_zone": "Pacific/Pago_Pago",
"organization_id": 1873,
"default_group_id": 1873,
"restricted_agent": false,
"ticket_restriction": null,
"shared_phone_number": null,
"only_private_comments": false,
"two_factor_auth_enabled": null
}
],
"actors": [
{
"id": 158488612,
"url": "https://example.zendesk.com/api/v2/users/158488612.json",
"name": "Tedd",
"role": "admin",
"tags": [],
"alias": "",
"email": "cgoddard+ted@zendesk.com",
"notes": "",
"phone": null,
"photo": null,
"active": true,
"locale": "en-gb",
"shared": false,
"details": "",
"verified": true,
"locale_id": 5,
"moderator": true,
"role_type": null,
"signature": "",
"suspended": false,
"time_zone": "Alaska",
"created_at": "2020-11-17T00:32:12Z",
"report_csv": true,
"updated_at": "2020-11-17T00:34:38Z",
"external_id": null,
"user_fields": {
"skittles": null,
"user_field_1": null,
"its_remember_september": null
},
"shared_agent": false,
"last_login_at": "2020-11-17T00:33:44Z",
"custom_role_id": null,
"iana_time_zone": "America/Juneau",
"organization_id": null,
"default_group_id": 1873,
"restricted_agent": false,
"ticket_restriction": null,
"shared_phone_number": null,
"only_private_comments": false,
"two_factor_auth_enabled": null
}
],
"next_page": null,
"activities": [
{
"id": 29183462,
"url": "https://example.zendesk.com/api/v2/activities/29183462.json",
"user": {
"id": 3343,
"url": "https://example.zendesk.com/api/v2/users/3343.json",
"name": "Samwise Gamgee",
"role": "admin",
"tags": [
"101"
],
"alias": "test",
"email": "user@zendesk.com",
"notes": "test",
"phone": null,
"photo": {
"id": 8730791,
"url": "https://example.zendesk.com/api/v2/attachments/8730791.json",
"size": 4566,
"width": 80,
"height": 80,
"inline": false,
"deleted": false,
"file_name": "1f84950b8d7949b3.gif",
"thumbnails": [
{
"id": 8730801,
"url": "https://example.zendesk.com/api/v2/attachments/8730801.json",
"size": 1517,
"width": 32,
"height": 32,
"inline": false,
"deleted": false,
"file_name": "1f84950b8d7949b3_thumb.gif",
"content_url": "https://example.zendesk.com/system/photos/8730801/1f84950b8d7949b3_thumb.gif",
"content_type": "image/gif",
"mapped_content_url": "https://example.zendesk.com/system/photos/8730801/1f84950b8d7949b3_thumb.gif"
}
],
"content_url": "https://example.zendesk.com/system/photos/8730791/1f84950b8d7949b3.gif",
"content_type": "image/gif",
"mapped_content_url": "https://example.zendesk.com/system/photos/8730791/1f84950b8d7949b3.gif"
},
"active": true,
"locale": "en-gb",
"shared": false,
"details": "",
"verified": true,
"locale_id": 5,
"moderator": true,
"role_type": null,
"signature": "test",
"suspended": false,
"time_zone": "American Samoa",
"created_at": "2017-08-14T20:13:53Z",
"report_csv": true,
"updated_at": "2020-11-17T00:33:55Z",
"external_id": "oev7jj",
"user_fields": {
"skittles": "2018-09-14T00:00:00+00:00",
"user_field_1": "101",
"its_remember_september": null
},
"shared_agent": false,
"last_login_at": "2020-11-16T22:57:45Z",
"custom_role_id": null,
"iana_time_zone": "Pacific/Pago_Pago",
"organization_id": 1873,
"default_group_id": 1873,
"restricted_agent": false,
"ticket_restriction": null,
"shared_phone_number": null,
"only_private_comments": false,
"two_factor_auth_enabled": null
},
"verb": "tickets.assignment",
"actor": {
"id": 158488612,
"url": "https://example.zendesk.com/api/v2/users/158488612.json",
"name": "Tedd",
"role": "admin",
"tags": [],
"alias": "",
"email": "cgoddard+ted@zendesk.com",
"notes": "",
"phone": null,
"photo": null,
"active": true,
"locale": "en-gb",
"shared": false,
"details": "",
"verified": true,
"locale_id": 5,
"moderator": true,
"role_type": null,
"signature": "",
"suspended": false,
"time_zone": "Alaska",
"created_at": "2020-11-17T00:32:12Z",
"report_csv": true,
"updated_at": "2020-11-17T00:34:38Z",
"external_id": null,
"user_fields": {
"skittles": null,
"user_field_1": null,
"its_remember_september": null
},
"shared_agent": false,
"last_login_at": "2020-11-17T00:33:44Z",
"custom_role_id": null,
"iana_time_zone": "America/Juneau",
"organization_id": null,
"default_group_id": 1873,
"restricted_agent": false,
"ticket_restriction": null,
"shared_phone_number": null,
"only_private_comments": false,
"two_factor_auth_enabled": null
},
"title": "Tedd assigned ticket #1521 to you.",
"object": {
"ticket": {
"id": 1521,
"subject": "test"
}
},
"target": {
"ticket": {
"id": 1521,
"subject": "test"
}
},
"user_id": 3343,
"actor_id": 158488612,
"created_at": "2020-11-17T00:34:40Z",
"updated_at": "2020-11-17T00:34:40Z"
}
],
"previous_page": null
},
"properties": {
"count": {
"type": "integer",
"readOnly": true
},
"users": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true
},
"readOnly": true
},
"actors": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true
},
"readOnly": true
},
"next_page": {
"type": "string",
"nullable": true,
"readOnly": true
},
"activities": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ActivityObject"
},
"readOnly": true
},
"previous_page": {
"type": "string",
"nullable": true,
"readOnly": true
}
}
}
ActivityObject
{
"type": "object",
"title": "Ticket Activities",
"example": {
"id": 35,
"url": "https://company.zendesk.com/api/v2/activities/35.json",
"user": {
"id": 223443,
"name": "Johnny Agent"
},
"verb": "tickets.assignment",
"actor": {
"id": 8678530,
"name": "James A. Rosen"
},
"title": "John Hopeful assigned ticket #123 to you",
"object": {},
"target": {},
"user_id": 29451,
"actor_id": 23546,
"created_at": "2019-03-05T10:38:52Z",
"updated_at": "2019-03-05T10:38:52Z"
},
"properties": {
"id": {
"type": "integer",
"readOnly": true,
"description": "Automatically assigned on creation"
},
"url": {
"type": "string",
"readOnly": true,
"description": "The API url of the activity"
},
"user": {
"$ref": "#/components/schemas/UserObject"
},
"verb": {
"type": "string",
"readOnly": true,
"description": "The type of activity. Can be \"tickets.assignment\", \"tickets.comment\", or \"tickets.priority_increase\""
},
"actor": {
"$ref": "#/components/schemas/UserObject"
},
"title": {
"type": "string",
"readOnly": true,
"description": "Description of the activity"
},
"object": {
"type": "object",
"readOnly": true,
"description": "The content of the activity. Can be a ticket, comment, or change.",
"additionalProperties": true
},
"target": {
"type": "object",
"readOnly": true,
"description": "The target of the activity, a ticket.",
"additionalProperties": true
},
"user_id": {
"type": "integer",
"readOnly": true,
"description": "The id of the agent making the request"
},
"actor_id": {
"type": "integer",
"readOnly": true,
"description": "The id of the user responsible for the ticket activity. An `actor_id` of \"-1\" is a Zendesk system user, such as an automations action."
},
"created_at": {
"type": "string",
"readOnly": true,
"description": "When the record was created"
},
"updated_at": {
"type": "string",
"readOnly": true,
"description": "When the record was last updated"
}
},
"x-konfig-properties": {
"user": {
"type": "object",
"readOnly": true,
"description": "The full user record of the agent making the request. See [Users](https://developer.zendesk.com)"
},
"actor": {
"type": "object",
"readOnly": true,
"description": "The full user record of the user responsible for the ticket activity. See [Users](https://developer.zendesk.com)"
}
}
}
ActivityResponse
{
"type": "object",
"example": {
"activity": {
"id": 29183462,
"url": "https://example.zendesk.com/api/v2/activities/29183462.json",
"user": {
"id": 3343,
"url": "https://example.zendesk.com/api/v2/users/3343.json",
"name": "Samwise Gamgee",
"role": "admin",
"tags": [
"101"
],
"alias": "test",
"email": "user@zendesk.com",
"notes": "test",
"phone": null,
"photo": {
"id": 8730791,
"url": "https://example.zendesk.com/api/v2/attachments/8730791.json",
"size": 4566,
"width": 80,
"height": 80,
"inline": false,
"deleted": false,
"file_name": "1f84950b8d7949b3.gif",
"thumbnails": [
{
"id": 8730801,
"url": "https://example.zendesk.com/api/v2/attachments/8730801.json",
"size": 1517,
"width": 32,
"height": 32,
"inline": false,
"deleted": false,
"file_name": "1f84950b8d7949b3_thumb.gif",
"content_url": "https://example.zendesk.com/system/photos/8730801/1f84950b8d7949b3_thumb.gif",
"content_type": "image/gif",
"mapped_content_url": "https://example.zendesk.com/system/photos/8730801/1f84950b8d7949b3_thumb.gif"
}
],
"content_url": "https://example.zendesk.com/system/photos/8730791/1f84950b8d7949b3.gif",
"content_type": "image/gif",
"mapped_content_url": "https://example.zendesk.com/system/photos/8730791/1f84950b8d7949b3.gif"
},
"active": true,
"locale": "en-gb",
"shared": false,
"details": "",
"verified": true,
"locale_id": 5,
"moderator": true,
"role_type": null,
"signature": "test",
"suspended": false,
"time_zone": "American Samoa",
"created_at": "2017-08-14T20:13:53Z",
"report_csv": true,
"updated_at": "2020-11-17T00:33:55Z",
"external_id": "oev7jj",
"user_fields": {
"skittles": "2018-09-14T00:00:00+00:00",
"user_field_1": "101",
"its_remember_september": null
},
"shared_agent": false,
"last_login_at": "2020-11-16T22:57:45Z",
"custom_role_id": null,
"iana_time_zone": "Pacific/Pago_Pago",
"organization_id": 1873,
"default_group_id": 1873,
"restricted_agent": false,
"ticket_restriction": null,
"shared_phone_number": null,
"only_private_comments": false,
"two_factor_auth_enabled": null
},
"verb": "tickets.assignment",
"actor": {
"id": 158488612,
"url": "https://example.zendesk.com/api/v2/users/158488612.json",
"name": "Tedd",
"role": "admin",
"tags": [],
"alias": "",
"email": "cgoddard+ted@zendesk.com",
"notes": "",
"phone": null,
"photo": null,
"active": true,
"locale": "en-gb",
"shared": false,
"details": "",
"verified": true,
"locale_id": 5,
"moderator": true,
"role_type": null,
"signature": "",
"suspended": false,
"time_zone": "Alaska",
"created_at": "2020-11-17T00:32:12Z",
"report_csv": true,
"updated_at": "2020-11-17T00:34:38Z",
"external_id": null,
"user_fields": {
"skittles": null,
"user_field_1": null,
"its_remember_september": null
},
"shared_agent": false,
"last_login_at": "2020-11-17T00:33:44Z",
"custom_role_id": null,
"iana_time_zone": "America/Juneau",
"organization_id": null,
"default_group_id": 1873,
"restricted_agent": false,
"ticket_restriction": null,
"shared_phone_number": null,
"only_private_comments": false,
"two_factor_auth_enabled": null
},
"title": "Tedd assigned ticket #1521 to you.",
"object": {
"ticket": {
"id": 1521,
"subject": "test"
}
},
"target": {
"ticket": {
"id": 1521,
"subject": "test"
}
},
"user_id": 3343,
"actor_id": 158488612,
"created_at": "2020-11-17T00:34:40Z",
"updated_at": "2020-11-17T00:34:40Z"
}
},
"properties": {
"activity": {
"$ref": "#/components/schemas/ActivityObject"
}
}
}
AssigneeFieldAssignableAgentObject
{
"type": "object",
"title": "AssigneeFieldAssignableAgents",
"example": {
"id": 6473829100,
"name": "Joe Smith",
"avatar_url": "https://z3n-example.zendesk.com/system/photos/900005192023/my_profile.png"
},
"properties": {
"id": {
"type": "integer",
"description": "Agent Support ID"
},
"name": {
"type": "string",
"description": "Name of the agent"
},
"avatar_url": {
"type": "string",
"nullable": true,
"description": "URL of Agent's avatar"
}
}
}
AssigneeFieldAssignableGroupAgentsResponse
{
"type": "object",
"example": {
"count": 3,
"agents": [
{
"id": 6473829100,
"name": "Joe Smith",
"avatar_url": "https://z3n-example.zendesk.com/system/photos/900005192023/my_profile.png"
},
{
"id": 9182736400,
"name": "Jane Doe",
"avatar_url": "https://z3n-example.zendesk.com/system/photos/412005192023/my_profile.png"
},
{
"id": 1928373460,
"name": "Cookie Monster",
"avatar_url": "https://z3n-example.zendesk.com/system/photos/887005192023/my_profile.png"
}
],
"next_page": null,
"previous_page": null
},
"properties": {
"count": {
"type": "integer",
"description": "Number of agents listed in `agents` property."
},
"agents": {
"type": "array",
"items": {
"$ref": "#/components/schemas/AssigneeFieldAssignableAgentObject"
}
},
"next_page": {
"type": "string",
"nullable": true,
"readOnly": true
},
"previous_page": {
"type": "string",
"nullable": true,
"readOnly": true
}
}
}
AssigneeFieldAssignableGroupObject
{
"type": "object",
"title": "AssigneeFieldAssignableGroups",
"example": {
"id": 9182736455,
"name": "Engineering",
"description": "Engineering team for bugs"
},
"properties": {
"id": {
"type": "integer",
"readOnly": true,
"description": "Group ID"
},
"name": {
"type": "string",
"readOnly": true,
"description": "Name of the group"
},
"description": {
"type": "string",
"readOnly": true,
"description": "Description of the group"
}
}
}
AssigneeFieldAssignableGroupsAndAgentsSearchResponse
{
"type": "object",
"example": {
"count": 2,
"agents": [
{
"id": 8392017465,
"name": "Sam Technologist",
"group": "Tech",
"group_id": 6574839201,
"photo_url": "https://z3n-example.zendesk.com/system/photos/410305192023/my_profile.png"
}
],
"groups": [
{
"id": 6574839201,
"name": "Tech"
}
]
},
"properties": {
"count": {
"type": "integer",
"description": "Number of agents + groups listed from search result."
},
"agents": {
"type": "array",
"items": {
"$ref": "#/components/schemas/AssigneeFieldAssignableSearchAgentObject"
}
},
"groups": {
"type": "array",
"items": {
"$ref": "#/components/schemas/AssigneeFieldAssignableSearchGroupObject"
}
}
}
}
AssigneeFieldAssignableGroupsResponse
{
"type": "object",
"example": {
"count": 3,
"groups": [
{
"id": 9182736455,
"name": "Group for Bugs for Engineering",
"description": "Engineering"
},
{
"id": 1928374655,
"name": "Group for feature requests",
"description": "Product"
},
{
"id": 5519283746,
"name": "Group for customer inquiries",
"description": "Customer Support"
}
],
"next_page": null,
"previous_page": null
},
"properties": {
"count": {
"type": "integer",
"description": "Number of groups listed in `groups` property."
},
"groups": {
"type": "array",
"items": {
"$ref": "#/components/schemas/AssigneeFieldAssignableGroupObject"
}
},
"next_page": {
"type": "string",
"nullable": true,
"readOnly": true
},
"previous_page": {
"type": "string",
"nullable": true,
"readOnly": true
}
}
}
AssigneeFieldAssignableSearchAgentObject
{
"type": "object",
"example": {
"id": 6473829100,
"name": "Joe Smith",
"group": "Engineering",
"group_id": 9182736455,
"photo_url": "https://z3n-example.zendesk.com/system/photos/900005192023/my_profile.png"
},
"properties": {
"id": {
"type": "integer",
"description": "Agent ID"
},
"name": {
"type": "string",
"description": "Name of the agent"
},
"group": {
"type": "string",
"description": "Name of the agent's group"
},
"group_id": {
"type": "integer",
"description": "Agent's Group ID"
},
"photo_url": {
"type": "string",
"nullable": true,
"description": "URL of Avatar"
}
}
}
AssigneeFieldAssignableSearchGroupObject
{
"type": "object",
"example": {
"id": 9182736455,
"name": "Engineering"
},
"properties": {
"id": {
"type": "integer",
"description": "Group ID"
},
"name": {
"type": "string",
"description": "Name of the group"
}
}
}
AttachmentBaseObject
{
"type": "object",
"properties": {
"id": {
"type": "integer",
"readOnly": true,
"description": "Automatically assigned when created"
},
"url": {
"type": "string",
"readOnly": true,
"description": "A URL to access the attachment details"
},
"size": {
"type": "integer",
"readOnly": true,
"description": "The size of the image file in bytes"
},
"width": {
"type": "string",
"readOnly": true,
"description": "The width of the image file in pixels. If width is unknown, returns null"
},
"height": {
"type": "string",
"readOnly": true,
"description": "The height of the image file in pixels. If height is unknown, returns null"
},
"inline": {
"type": "boolean",
"readOnly": true,
"description": "If true, the attachment is excluded from the attachment list and the attachment's URL\ncan be referenced within the comment of a ticket. Default is false\n"
},
"deleted": {
"type": "boolean",
"readOnly": true,
"description": "If true, the attachment has been deleted"
},
"file_name": {
"type": "string",
"readOnly": true,
"description": "The name of the image file"
},
"content_url": {
"type": "string",
"readOnly": true,
"description": "A full URL where the attachment image file can be downloaded. The file may be hosted externally so take care not to inadvertently send Zendesk authentication credentials. See [Working with url properties](https://developer.zendesk.com)"
},
"content_type": {
"type": "string",
"readOnly": true,
"description": "The content type of the image. Example value: \"image/png\""
},
"mapped_content_url": {
"type": "string",
"readOnly": true,
"description": "The URL the attachment image file has been mapped to"
},
"malware_scan_result": {
"type": "string",
"readOnly": true,
"description": "The result of the malware scan. There is a delay between the time the attachment is uploaded and when the malware scan is completed. Usually the scan is done within a few seconds, but high load conditions can delay the scan results. Possible values: \"malware_found\", \"malware_not_found\", \"failed_to_scan\", \"not_scanned\""
},
"malware_access_override": {
"type": "boolean",
"readOnly": true,
"description": "If true, you can download an attachment flagged as malware. If false, you can't download such an attachment."
}
}
}
AttachmentObject
{
"type": "object",
"allOf": [
{
"$ref": "#/components/schemas/AttachmentBaseObject"
},
{
"$ref": "#/components/schemas/AttachmentThumbnails"
}
],
"example": {
"id": 928374,
"size": 166144,
"file_name": "my_funny_profile_pic.png",
"thumbnails": [
{
"id": 928375,
"size": 58298,
"file_name": "my_funny_profile_pic_thumb.png",
"content_url": "https://company.zendesk.com/attachments/my_funny_profile_pic_thumb.png",
"content_type": "image/png"
}
],
"content_url": "https://company.zendesk.com/attachments/my_funny_profile_pic.png",
"content_type": "image/png"
},
"description": "A file represented as an [Attachment](https://developer.zendesk.com) object"
}
AttachmentResponse
{
"type": "object",
"properties": {
"attachment": {
"$ref": "#/components/schemas/AttachmentObject"
}
}
}
AttachmentThumbnails
{
"type": "object",
"properties": {
"thumbnails": {
"type": "array",
"items": {
"$ref": "#/components/schemas/AttachmentBaseObject"
},
"readOnly": true,
"description": "An array of attachment objects. Note that photo thumbnails do not have thumbnails"
}
}
}
AttachmentUpdateInput
{
"type": "object",
"properties": {
"malware_access_override": {
"type": "boolean",
"description": "If true, allows access to attachments with detected malware."
}
}
}
AttachmentUpdateRequest
{
"type": "object",
"properties": {
"attachment": {
"$ref": "#/components/schemas/AttachmentUpdateInput"
}
}
}
AttachmentUploadResponse
{
"type": "object",
"properties": {
"upload": {
"type": "object",
"properties": {
"token": {
"type": "string",
"readOnly": true,
"description": "Token for subsequent request"
},
"attachment": {
"$ref": "#/components/schemas/AttachmentObject"
},
"attachments": {
"type": "array",
"items": {
"$ref": "#/components/schemas/AttachmentObject"
}
}
}
}
}
}
| Version | Endpoints | Schemas | Ingested | Status |
|---|---|---|---|---|
| 2.0.0 | 440 | 454 | 2026-05-11 | current |
| 2.0.0 | 440 | 454 | 2026-04-16 |