API ReferenceContacts
Create a contact
Creates a contact. If an existing contact matches the provided identity (e.g. email), it is updated instead. Requires the `contacts:write` scope.
Authorization
bearerAuth AuthorizationBearer <token>
Workspace API key, e.g. rl_live_….
In: header
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
name?string
email?string
Format
emailshopName?string
customAttributes?
storeId?|Deprecated
Deprecated alias of companyId.
Format
uuidcompanyId?|
Link the contact to a company (null unlinks). Only on update.
Format
uuidResponse Body
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/v1/public/contacts" \ -H "Content-Type: application/json" \ -d '{ "name": "Ada Lovelace", "email": "[email protected]", "shopName": "acme.myshopify.com", "customAttributes": { "plan": "pro" } }'{ "id": "c0ffee00-1111-2222-3333-444455556666", "name": "Ada Lovelace", "email": "[email protected]", "phoneNumber": null, "shopName": "acme.myshopify.com", "avatarUrl": null, "identifier": "cust_8821", "company": { "id": "a3b1c2d3-4444-5555-6666-777788889999", "name": "Acme" }, "companyId": "a3b1c2d3-4444-5555-6666-777788889999", "storeId": "a3b1c2d3-4444-5555-6666-777788889999", "customAttributes": { "plan": "pro", "lifetimeValue": 4200 }, "createdAt": "2026-06-24T08:00:00.000Z", "updatedAt": "2026-06-25T09:30:00.000Z", "lastActivityAt": "2026-06-25T10:12:00.000Z"}{ "error": "string"}{ "error": "string"}{ "error": "string"}Update contact details PATCH
Updates a contact's details. Only the provided fields are changed. Requires the `contacts:write` scope.
Get a company GET
Fetches a company, including how many contacts link to it. Requires the `companies:read` scope (`contacts:read` is also accepted for keys issued before it existed).