Create an appointment
ProRead & write keyAvailable on the Pro and Enterprise plans (beta).
POSThttps://app.reshta.ir/api/v1/public…/public/appointments
Creates a new appointment in the business that owns the key. The response is the new record.
Request
curl https://app.reshta.ir/api/v1/public/appointments \ -X POST \ -H "Authorization: Bearer $RESHTA_API_KEY" \ -H "Idempotency-Key: 7f3c2b1e-4a5d-4c6f-9e1a-2b3c4d5e6f70" \ -H "Content-Type: application/json" \ -d '{"booking_type_id":"0192c4e8-7b1a-7c3e-9f20-5d6a1b2c3d4e","start_at":"2026-11-01T09:00:00.000Z"}'Headers
AuthorizationstringrequiredBearer followed by the business API key (rk_live_…).
Idempotency-KeystringrequiredA unique ID for this operation, such as a fresh UUID; retrying with the same key does nothing twice.
Content-Typeapplication/jsonrequiredThe body is UTF-8 JSON.
Body parameters
booking_type_iduuidrequired
start_atstringrequired
host_member_iduuidoptional
answersobjectoptionaldefault: {}
location_kindstringoptionalvalues:in_personphoneonline_linkcustom
skip_confirmationbooleanoptionaldefault: false
contact_iduuidoptionalThe related contact.
personobjectoptional
person.namestringrequiredCompany name.
person.mobilestringoptional
person.emailemailoptional
Responses and errors
201—Created; the body is the record.
400validation_errorInvalid body, or no Idempotency-Key; details names the field.
401unauthorizedThe key is missing, wrong or revoked, or its creator is no longer active.
403forbiddenThe key has no write access.
409conflictThis Idempotency-Key came with another body, or is still in progress.
429rate_limitedOver 120 requests per minute; Retry-After says how many seconds to wait.
Response
400
{ "error": { "code": "validation_error", "message": "Idempotency-Key header is required", "details": [ { "field": "idempotency_key", "message": "idempotency_key_required" } ] }}