Customers
Update customer
PATCH
/
v1
/
customers
/
{id}
Update customer
curl --request PATCH \
--url https://sand-api.orquestr.dev/cloud/v1/customers/{id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"external_customer_id": "<string>"
}
'const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({name: '<string>', external_customer_id: '<string>'})
};
fetch('https://sand-api.orquestr.dev/cloud/v1/customers/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://sand-api.orquestr.dev/cloud/v1/customers/{id}"
payload = {
"name": "<string>",
"external_customer_id": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text){
"data": {
"id": "o2222222-2222-2222-2222-222222222222",
"name": "Acme Retail",
"owner_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"created_at": "2026-09-01T15:05:00.000Z",
"updated_at": "2026-09-10T09:00:00.000Z",
"external_customer_id": "acme-store-01"
}
}{
"error": {
"code": "bad_request",
"message": "Invalid body"
}
}{
"error": {
"code": "unauthorized",
"message": "Unauthorized"
}
}{
"error": {
"code": "forbidden",
"message": "Account not eligible for this action"
}
}{
"error": {
"code": "forbidden",
"message": "Forbidden"
}
}{
"error": {
"code": "not_found",
"message": "Not found"
}
}{
"error": {
"code": "conflict",
"message": "Device quota exceeded"
}
}Authorizations
API key (sk_live_…). Send as Authorization: Bearer <api_key>.
Path Parameters
Body
application/json
Response
Success
The response is of type object.
⌘I
Update customer
curl --request PATCH \
--url https://sand-api.orquestr.dev/cloud/v1/customers/{id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"external_customer_id": "<string>"
}
'const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({name: '<string>', external_customer_id: '<string>'})
};
fetch('https://sand-api.orquestr.dev/cloud/v1/customers/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://sand-api.orquestr.dev/cloud/v1/customers/{id}"
payload = {
"name": "<string>",
"external_customer_id": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text){
"data": {
"id": "o2222222-2222-2222-2222-222222222222",
"name": "Acme Retail",
"owner_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"created_at": "2026-09-01T15:05:00.000Z",
"updated_at": "2026-09-10T09:00:00.000Z",
"external_customer_id": "acme-store-01"
}
}{
"error": {
"code": "bad_request",
"message": "Invalid body"
}
}{
"error": {
"code": "unauthorized",
"message": "Unauthorized"
}
}{
"error": {
"code": "forbidden",
"message": "Account not eligible for this action"
}
}{
"error": {
"code": "forbidden",
"message": "Forbidden"
}
}{
"error": {
"code": "not_found",
"message": "Not found"
}
}{
"error": {
"code": "conflict",
"message": "Device quota exceeded"
}
}
