curl --request GET \
--url https://{your-subdomain}.neetodesk.com/api/external/v2/customers \
--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/customers', 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/customers"
headers = {"X-Api-Key": "<x-api-key>"}
response = requests.get(url, headers=headers)
print(response.text){
"customers": [
{
"id": "aaaabbbb-cccc-dddd-eeee-ffff00002222",
"name": "John Doe",
"email": "john@example.com",
"language": "English",
"time_zone": "Eastern Time (US & Canada)",
"description": "VIP customer",
"created_at": "2026-09-01T10:15:30.000Z",
"updated_at": "2026-09-03T08:42:11.000Z",
"emails": [
"john@example.com",
"john.doe@work.example.com"
],
"phone_numbers": [
"+1234567890"
],
"company": {
"id": "aaaabbbb-cccc-dddd-eeee-ffff00001111",
"name": "Acme Inc."
}
}
],
"pagination": {
"total_records": 95,
"total_pages": 4,
"current_page_number": 1,
"page_size": 30
}
}{
"error": "email must be a string"
}List customers
Lists the customers in the workspace, oldest first.
curl --request GET \
--url https://{your-subdomain}.neetodesk.com/api/external/v2/customers \
--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/customers', 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/customers"
headers = {"X-Api-Key": "<x-api-key>"}
response = requests.get(url, headers=headers)
print(response.text){
"customers": [
{
"id": "aaaabbbb-cccc-dddd-eeee-ffff00002222",
"name": "John Doe",
"email": "john@example.com",
"language": "English",
"time_zone": "Eastern Time (US & Canada)",
"description": "VIP customer",
"created_at": "2026-09-01T10:15:30.000Z",
"updated_at": "2026-09-03T08:42:11.000Z",
"emails": [
"john@example.com",
"john.doe@work.example.com"
],
"phone_numbers": [
"+1234567890"
],
"company": {
"id": "aaaabbbb-cccc-dddd-eeee-ffff00001111",
"name": "Acme Inc."
}
}
],
"pagination": {
"total_records": 95,
"total_pages": 4,
"current_page_number": 1,
"page_size": 30
}
}{
"error": "email must be a string"
}{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, and cannot exceed 100.
x <= 100Return only the customer with this email address. The match is exact and case-insensitive.
"john@example.com"
Response
OK - Request succeeded
Hide child attributes
Hide child attributes
"aaaabbbb-cccc-dddd-eeee-ffff00002222"
"John Doe"
Primary email address of the customer.
"john@example.com"
"English"
"Eastern Time (US & Canada)"
"VIP customer"
"2026-09-01T10:15:30.000Z"
"2026-09-03T08:42:11.000Z"
All email addresses of the customer, including the primary one.
[
"john@example.com",
"john.doe@work.example.com"
]
All phone numbers of the customer.
["+1234567890"]