Server API
Customers
The people and companies in your CRM — including shoppers and students.
One customer record per person or company. Store shoppers, paying students and people you add by hand all land here, so your backend sees one list.
List customers
GET
/v1/customersSecret keycustomers:read
Newest first.
Query parameters
limitinteger- How many to return, 1–100. Defaults to 25.
cursorstringnextCursorfrom the previous page.emailstring- Exact email, any case.
statusstringprospect,active,inactive…
curl https://api.mercestack.com/v1/customers?limit=10 \
-H "Authorization: Bearer sk_test_…"Response
{
"object": "list",
"data": [
{
"id": "7e1f…",
"name": "Chidi Okeke",
"kind": "person",
"email": "[email protected]",
"phone": null,
"status": "active",
"tags": ["student"],
"address": null,
"createdAt": "2026-09-27T10:00:00.000Z"
}
],
"hasMore": false,
"nextCursor": null
}Get a customer
GET
/v1/customers/:idSecret keycustomers:read
With contacts and deals.
curl https://api.mercestack.com/v1/customers/CUSTOMER_ID \
-H "Authorization: Bearer sk_test_…"Response
{ "id": "7e1f…", "name": "Chidi Okeke", "contacts": [], "deals": [], … }Create a customer
POST
/v1/customersSecret keycustomers:write
Fires customer.created.
Body
namestringrequired- 2–200 characters.
kind"person" | "company"- Defaults to company.
emailstring- Email address.
phonestring- Phone number.
statusstring- Defaults to
prospect. tagsstring[]- Free-form labels.
curl -X POST https://api.mercestack.com/v1/customers \
-H "Authorization: Bearer sk_test_…" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"name":"Chidi Okeke","kind":"person","email":"[email protected]"}'Response
{ "id": "7e1f…", "name": "Chidi Okeke", … }Update a customer
PATCH
/v1/customers/:idSecret keycustomers:write
Send the fields to change. name is required.
curl -X PATCH https://api.mercestack.com/v1/customers/CUSTOMER_ID \
-H "Authorization: Bearer sk_test_…" \
-H "Content-Type: application/json" \
-d '{"name":"Chidi Okeke","status":"active"}'Response
{ "id": "7e1f…", "status": "active", … }