Skip to main content
All non-2xx responses follow the same shape:
message may be an array when multiple validation errors are returned at once:

Common status codes

Idempotency

Several write endpoints are idempotent by design:
  • POST /v1/people upserts on phone → email → externalId.
  • POST /v1/companies upserts on domain.
  • POST /v1/people/:id/tags only emits contact.tag_added for newly attached tags.
Safe-to-retry responses make it easy to build at-least-once delivery from your side without duplicates on ours.