Overview
GET /contacts/{id} returns a single contact (person) by its ID - useful to back-fill a missed contact.* webhook, reconcile your CRM, or re-fetch a person on demand.
Unlike the contact webhook - which omits fields without a value - this endpoint always returns every field with an explicit
null when unset (consistent with GET /accounts, GET /invoices and GET /payments). The country field is returned verbatim as entered. account_id is the raw ID of the linked account (or null) - call GET /accounts/{id} to fetch the company details. Custom fields configured for your venue are included, also with explicit null when unset. Timestamps are Unix milliseconds.Authentication
All requests require a Bearer token (your BookingShake API key):Path Parameters
The contact ID - the
id field carried by the contact.created webhook.Request
Response
The contact is returned wrapped in the standard{ message, data } envelope.
Data Fields
| Field | Type | Description |
|---|---|---|
id | string | Unique contact ID |
first_name | string | null | First name |
last_name | string | null | Last name |
email | string | null | Email address |
phone | string | null | Mobile phone number |
landline_phone | string | null | Landline phone number |
title | string | null | Contact’s title |
position | string | null | Job position |
avatar | string | null | Avatar image URL |
comments | string | null | Free-text notes about the contact |
account_id | string | null | ID of the account this contact belongs to |
optin_marketing | boolean | null | Marketing communications opt-in |
optin_general | boolean | null | General communications opt-in |
address_line_1 | string | null | Address |
address_line_2 | string | null | Address, line 2 |
postal_code | string | null | Postal code |
city | string | null | City |
country | string | null | Country, verbatim as entered |
created_at | number | null | Creation timestamp, Unix milliseconds |
custom_<uuid> | any | null | Custom fields configured for your venue |
Errors
| Status | Meaning |
|---|---|
400 | Missing/invalid token, or missing contact id |
404 | Contact not found - it does not exist, or belongs to another venue or venues group |
429 | Rate limit exceeded (60 requests/minute) |
500 | Internal server error |
A
404 is returned uniformly whenever the contact is outside your scope, so the existence of another venue’s contact is never disclosed.Next Steps
Contact Events
Receive contact changes in real time via the contact.* webhooks
Get an Account
Fetch the company a contact is attached to
