curl --request GET \
--url https://{your-subdomain}.neetodesk.com/api/external/v2/tickets \
--header 'X-Api-Key: <x-api-key>'const options = {method: 'GET', headers: {'X-Api-Key': '<x-api-key>'}};
fetch('https://{your-subdomain}.neetodesk.com/api/external/v2/tickets', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://{your-subdomain}.neetodesk.com/api/external/v2/tickets"
headers = {"X-Api-Key": "<x-api-key>"}
response = requests.get(url, headers=headers)
print(response.text){
"tickets": [
{
"id": "aaaabbbb-cccc-dddd-eeee-ffff00003333",
"number": 33,
"subject": "How to resolve the pending payments",
"description": "I need your help in resolving the pending payments.",
"priority": "low",
"status": "open",
"created_at": "2025-12-01T10:15:00Z",
"updated_at": "2025-12-05T14:30:00Z",
"external_id": "CP-1234",
"source": "concierge_plus",
"category": "Problem",
"sub_category_one": "Billing",
"sub_category_two": "Refund",
"group": "Sales",
"tags": [
"refund",
"urgent"
],
"assignee": {
"id": "aaaabbbb-cccc-dddd-eeee-ffff00001111",
"name": "Oliver Smith",
"email": "oliver@example.com"
},
"customer": {
"id": "aaaabbbb-cccc-dddd-eeee-ffff00002222",
"name": "John Luther",
"email": "john@example.com",
"phone_numbers": [
"+1234567890"
]
},
"fields": [
{
"field_name": "Country",
"field_value": "USA"
}
]
}
],
"pagination": {
"total_records": 95,
"total_pages": 4,
"current_page_number": 1,
"page_size": 30
}
}List tickets
Retrieves a list of tickets in a workspace, newest first unless sort and order say otherwise.
With an API key the list covers every ticket in the workspace. With a CLI session it covers only the tickets the signed-in agent is allowed to see.
curl --request GET \
--url https://{your-subdomain}.neetodesk.com/api/external/v2/tickets \
--header 'X-Api-Key: <x-api-key>'const options = {method: 'GET', headers: {'X-Api-Key': '<x-api-key>'}};
fetch('https://{your-subdomain}.neetodesk.com/api/external/v2/tickets', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://{your-subdomain}.neetodesk.com/api/external/v2/tickets"
headers = {"X-Api-Key": "<x-api-key>"}
response = requests.get(url, headers=headers)
print(response.text){
"tickets": [
{
"id": "aaaabbbb-cccc-dddd-eeee-ffff00003333",
"number": 33,
"subject": "How to resolve the pending payments",
"description": "I need your help in resolving the pending payments.",
"priority": "low",
"status": "open",
"created_at": "2025-12-01T10:15:00Z",
"updated_at": "2025-12-05T14:30:00Z",
"external_id": "CP-1234",
"source": "concierge_plus",
"category": "Problem",
"sub_category_one": "Billing",
"sub_category_two": "Refund",
"group": "Sales",
"tags": [
"refund",
"urgent"
],
"assignee": {
"id": "aaaabbbb-cccc-dddd-eeee-ffff00001111",
"name": "Oliver Smith",
"email": "oliver@example.com"
},
"customer": {
"id": "aaaabbbb-cccc-dddd-eeee-ffff00002222",
"name": "John Luther",
"email": "john@example.com",
"phone_numbers": [
"+1234567890"
]
},
"fields": [
{
"field_name": "Country",
"field_value": "USA"
}
]
}
],
"pagination": {
"total_records": 95,
"total_pages": 4,
"current_page_number": 1,
"page_size": 30
}
}{your-subdomain} with your workspace’s subdomain. Learn how to find your subdomain in Workspace subdomain.
Headers
Use the X-Api-Key header to provide your workspace API key. Refer to Authentication for more information.
Query Parameters
Page of results to retrieve, starting from 1. Defaults to 1 when omitted.
Number of results per page. Defaults to 30 when omitted.
Filter tickets by their status. Accepts comma-separated values for multiple statuses. Default statuses include: new, open, waiting_on_customer, on_hold, closed, spam, trash. Custom statuses created in your organization are also supported. open matches both new and open tickets. If omitted, tickets of all statuses are returned.
"open"
Filter tickets by priority. Accepts comma-separated values, such as high,urgent.
"high,urgent"
Pass true to return only tickets that have no assignee. It cannot be combined with assignee_id or assignee_email.
true
Return only tickets whose customer has an email address at this domain. A leading @ is ignored.
"acme.com"
Return tickets carrying any of these tags. Accepts comma-separated tag names, matched without regard to case.
"billing,vip"
Return tickets whose subject contains this text, matched without regard to case.
"refund"
Return only the ticket carrying this external_id. Used by an importer to
check whether a source record has already been created before posting it again.
"CP-1234"
Return only tickets belonging to the customer with this customer_id.
"aaaabbbb-cccc-dddd-eeee-ffff00002222"
Return only tickets belonging to the customer with this email address.
"oliver@example.com"
Return only tickets assigned to the team member with
this assignee_id.
"aaaabbbb-cccc-dddd-eeee-ffff00001111"
Return only tickets assigned to the team member with this email address.
"ethan@example.com"
Return tickets that have the custom ticket field named in
field_name set to the value passed in field_value.
It must be passed together with field_value in order to filter tickets.
"Browser"
Return tickets that have the custom ticket field named in
field_name set to the value passed in field_value.
It must be passed together with field_name in order to filter tickets.
For fields of the multi_option kind, pass the options as a comma-separated
string, such as Chrome,Firefox.
"Chrome"
Return only tickets created within this time range. Use custom together with
start_date and end_date for an exact range.
last_7_days, last_30_days, last_24_hours, this_week, last_week, this_month, last_month, this_quarter, last_quarter, this_year, last_year, all_time, custom "last_30_days"
Start date for custom date range (YYYY-MM-DD format). Required when range_type is custom.
"2025-10-01"
End date for custom date range (YYYY-MM-DD format). Required when range_type is custom.
"2025-10-31"
Column to sort tickets by. Defaults to created_at.
created_at, updated_at "created_at"
Direction to sort tickets in. Defaults to desc, newest first.
asc, desc "desc"
Response
OK - Request succeeded
Hide child attributes
Hide child attributes
"aaaabbbb-cccc-dddd-eeee-ffff00003333"
33
"How to resolve the pending payments"
HTML content of the ticket description.
"I need your help in resolving the pending payments."
"low"
"open"
Timestamp when the ticket was created.
"2025-12-01T10:15:00Z"
Timestamp when the ticket was last updated.
"2025-12-05T14:30:00Z"
Identifier for this ticket in the system it was imported from, if one was supplied.
"CP-1234"
Name of the system external_id refers to.
"concierge_plus"
"Problem"
"Billing"
"Refund"
Name of the assigned group.
"Sales"
["refund", "urgent"]