customers.get
One customer with contacts, properties, custom fields and open balance.
| |
|---|
| Who | Agents can call this |
| REST | GET /v1/customers/get |
| MCP tool | customers_get |
| Writes | no |
| Area | Shop |
When to use it
One customer with contacts, properties, custom fields and open balance.
What to tell the owner
Tell them what you found in plain words. Don't read back raw fields.
| Field | Type | Required |
|---|
customer_id | string (uuid) | yes |
Example
GET https://doingwork.work/v1/customers/get?customer_id=00000000-0000-4000-8000-000000000000
Output
| Field | Type | Always there |
|---|
customer_id | string (uuid) | yes |
shop_id | string (uuid) | yes |
kind | string | yes |
name | string | yes |
company_name | ['string', 'null'] | yes |
email | ['string', 'null'] | yes |
phone | ['string', 'null'] | yes |
billing_address | ['object', 'null'] | yes |
lead_source | ['string', 'null'] | yes |
tags | array | yes |
notes | ['string', 'null'] | yes |
archived_at | ['string', 'null', ' ', '(', 'd', 'a', 't', 'e', '-', 't', 'i', 'm', 'e', ')'] | yes |
merged_into | ['string', 'null', ' ', '(', 'u', 'u', 'i', 'd', ')'] | yes |
erased_at | ['string', 'null', ' ', '(', 'd', 'a', 't', 'e', '-', 't', 'i', 'm', 'e', ')'] | yes |
created_at | string (date-time) | yes |
updated_at | string (date-time) | yes |
contacts | array | yes |
contacts[].contact_id | string (uuid) | yes |
contacts[].name | string | yes |
contacts[].email | ['string', 'null'] | yes |
contacts[].phone | ['string', 'null'] | yes |
contacts[].role | ['string', 'null'] | yes |
contacts[].is_primary | boolean | yes |
properties | array | yes |
properties[].property_id | string (uuid) | yes |
properties[].home_id | string (uuid) | yes |
properties[].label | ['string', 'null'] | yes |
properties[].address_line1 | string | yes |
properties[].address_line2 | ['string', 'null'] | yes |
properties[].locality | string | yes |
properties[].postal_code | string | yes |
properties[].jurisdiction_id | string | yes |
properties[].access_notes | ['string', 'null'] | yes |
fields | array | yes |
fields[].key | string | yes |
fields[].target | string | yes |
fields[].type | string | yes |
fields[].value | | yes |
fields[].currency | ['string', 'null'] | yes |
fields[].written_at | string (date-time) | yes |
open_balance_minor | integer | yes |
{
"customer_id": "00000000-0000-4000-8000-000000000000",
"shop_id": "00000000-0000-4000-8000-000000000000",
"kind": "...",
"name": "Ruiz Plumbing",
"company_name": "...",
"email": "owner@example.com",
"phone": "...",
"billing_address": "...",
"lead_source": "...",
"tags": [
"..."
],
"notes": "...",
"archived_at": "...",
"merged_into": "00000000-0000-4000-8000-000000000000",
"erased_at": "...",
"created_at": "...",
"updated_at": "...",
"contacts": [
{
"contact_id": "00000000-0000-4000-8000-000000000000",
"name": "Ruiz Plumbing",
"email": "owner@example.com",
"phone": "...",
"role": "...",
"is_primary": true
}
],
"properties": [
{
"property_id": "00000000-0000-4000-8000-000000000000",
"home_id": "00000000-0000-4000-8000-000000000000",
"label": "...",
"address_line1": "...",
"address_line2": "...",
"locality": "Coeur d'Alene",
"postal_code": "83814",
"jurisdiction_id": "00000000-0000-4000-8000-000000000000",
"access_notes": "..."
}
],
"fields": [
{
"key": "...",
"target": "...",
"type": "...",
"value": "...",
"currency": "...",
"written_at": "..."
}
],
"open_balance_minor": 50000
}
Errors
| Code | Status | What to do |
|---|
invalid_input, invalid_token, rate_limited | | Can happen on any call. See errors. |