Create a customer. Matching on email then phone avoids duplicates.
Create a customer. Matching on email then phone avoids duplicates.
https://app.softsolz.uk/api/v1/services/appointments/customersRecent Requests
Kept only in this browserHeaders
AuthorizationstringrequiredBearer token: `Bearer sk_live_...` (or `sk_test_...` for sandbox). A login token will not work here.
Idempotency-KeystringOptional idempotency key for safe retries.
Body Params
display_namestringrequiredName shown throughout the product.
emailstringEmail address.
phonestringPhone number in international format.
timezonestringIANA timezone, for example Europe/London.
localestringPreferred language tag, for example en-GB.
addressesarray of objectsSaved addresses.
tagsarray of stringsFree-form labels for grouping and filtering.
notesstringFree-text notes.
custom_fieldsobjectYour own extra fields, keyed by the definitions in workspace settings.
external_refstringYour own identifier for this person.
messaging_consentbooleanWhether this person accepts SMS, WhatsApp, and calls.
marketing_consentbooleanWhether this person accepts marketing messages.
Response
Response Body
idstringUnique identifier.display_namestringName shown throughout the product.emailstring | nullEmail address.phonestring | nullPhone number in international format.timezonestring | nullIANA timezone, for example Europe/London.addressesarray of objectsSaved addresses.tagsarray of stringsFree-form labels for grouping and filtering.custom_fieldsobjectYour own extra fields, keyed by the definitions in workspace settings.no_show_countintegerHow many appointments this person did not attend.completed_countintegerHow many appointments this person attended.created_atstringWhen the record was created.updated_atstringWhen the record was last changed. Round-trip as expected_updated_at to guard against stale writes.Request
curl --request POST \ --url https://app.softsolz.uk/api/v1/services/appointments/customers \ --header 'Authorization: Bearer sk_live_your_key' \ --header 'Content-Type: application/json' \ --data '{ "display_name": "Priya Raman", "email": "priya@example.com", "phone": "+447700900123", "timezone": "Europe/London"}'Credentials
Sent as a Bearer token and used in the samples above and in Try it. Kept only in this browser tab until you close it. Use an sk_test_ key to stay in your sandbox.
Response · 201
{ "data": { "id": "88", "display_name": "Priya Raman", "email": "priya@example.com", "phone": "+447700900123", "timezone": "Europe/London", "addresses": [ {} ], "tags": [ "your-tags" ], "custom_fields": {}, "no_show_count": 0, "completed_count": 6, "created_at": "2026-01-01T09:00:00.000Z", "updated_at": "2026-01-01T09:00:00.000Z" }}