curl --request POST \
--url https://{your-subdomain}.neetodesk.com/api/external/v2/customers \
--header 'Content-Type: application/json' \
--header 'X-Api-Key: <x-api-key>' \
--data '
{
"customer": {
"emails": [
"john@example.com",
"jane@example.com"
],
"first_name": "John",
"last_name": "Doe",
"phones": [
"+1234567890"
],
"links": [
"https://github.com/john"
],
"language": "English",
"time_zone": "Eastern Time (US & Canada)",
"description": "VIP customer",
"company_id": "aaaabbbb-cccc-dddd-eeee-ffff00001111"
}
}
'const options = {
method: 'POST',
headers: {'X-Api-Key': '<x-api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
customer: {
emails: ['john@example.com', 'jane@example.com'],
first_name: 'John',
last_name: 'Doe',
phones: ['+1234567890'],
links: ['https://github.com/john'],
language: 'English',
time_zone: 'Eastern Time (US & Canada)',
description: 'VIP customer',
company_id: 'aaaabbbb-cccc-dddd-eeee-ffff00001111'
}
})
};
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"
payload = { "customer": {
"emails": ["john@example.com", "jane@example.com"],
"first_name": "John",
"last_name": "Doe",
"phones": ["+1234567890"],
"links": ["https://github.com/john"],
"language": "English",
"time_zone": "Eastern Time (US & Canada)",
"description": "VIP customer",
"company_id": "aaaabbbb-cccc-dddd-eeee-ffff00001111"
} }
headers = {
"X-Api-Key": "<x-api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"customer": {
"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."
}
}
}Create customer
Creates a new customer.
curl --request POST \
--url https://{your-subdomain}.neetodesk.com/api/external/v2/customers \
--header 'Content-Type: application/json' \
--header 'X-Api-Key: <x-api-key>' \
--data '
{
"customer": {
"emails": [
"john@example.com",
"jane@example.com"
],
"first_name": "John",
"last_name": "Doe",
"phones": [
"+1234567890"
],
"links": [
"https://github.com/john"
],
"language": "English",
"time_zone": "Eastern Time (US & Canada)",
"description": "VIP customer",
"company_id": "aaaabbbb-cccc-dddd-eeee-ffff00001111"
}
}
'const options = {
method: 'POST',
headers: {'X-Api-Key': '<x-api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
customer: {
emails: ['john@example.com', 'jane@example.com'],
first_name: 'John',
last_name: 'Doe',
phones: ['+1234567890'],
links: ['https://github.com/john'],
language: 'English',
time_zone: 'Eastern Time (US & Canada)',
description: 'VIP customer',
company_id: 'aaaabbbb-cccc-dddd-eeee-ffff00001111'
}
})
};
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"
payload = { "customer": {
"emails": ["john@example.com", "jane@example.com"],
"first_name": "John",
"last_name": "Doe",
"phones": ["+1234567890"],
"links": ["https://github.com/john"],
"language": "English",
"time_zone": "Eastern Time (US & Canada)",
"description": "VIP customer",
"company_id": "aaaabbbb-cccc-dddd-eeee-ffff00001111"
} }
headers = {
"X-Api-Key": "<x-api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"customer": {
"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."
}
}
}{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.
Body
Hide child attributes
Hide child attributes
Array of email addresses. Can be provided as an array of strings or an array of objects with email and primary fields. The first email in the array is treated as primary if not specified.
1"john@example.com"
["john@example.com", "jane@example.com"]
First name of the customer.
"John"
Last name of the customer.
"Doe"
Array of phone numbers. Can be provided as an array of strings or an array of objects with phone and label fields.
"+1234567890"
Array of links/URLs. Can be provided as an array of strings or an array of objects with url and label fields.
"https://github.com/john"
Language preference for the customer.
"English"
Time zone for the customer.
"Eastern Time (US & Canada)"
Description or notes about the customer.
"VIP customer"
ID of the company to associate the customer with.
"aaaabbbb-cccc-dddd-eeee-ffff00001111"
Response
Created - Customer created successfully
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"]