Send a lead
Creates one lead for one Preferred Partner. 201 when this call inserts the row, whether the partner received it or it is queued for budget or payment.
Unknown fields are rejected. consentAt is required, must parse as a timestamp, and cannot be in the future. An invalid phone creates nothing.
Omit serviceId when serviceIdRequired is false. The API pins the single Default service, or the single non-Default service. Omit memberEmail when this account’s own system sent the lead. When memberEmail is set, it must be an active member of this account. An unrecognized email creates no lead and no idempotency row.
Send Idempotency-Key to make a retry safe for 24 hours. The key is scoped to this account and agreementId. The same key, phone, and email returns the original 201 and the original id. It does not create a second lead. A declined lead still replays that 201. The same key with a different phone or email is 409 and creates nothing. No Idempotency-Key header means every call creates a lead. A second call while the first is still running is 503 and creates nothing.
/api/leadsX-CM-API-KEYAPI key · headerrequiredAccount key from Integrations. Keys use the cm_ prefix.
Idempotency-KeystringMakes a retry of this create safe for 24 hours. Scoped to this account and agreementId.
application/jsonagreementIdstringrequiredcategoryIdstringrequiredserviceIdstring | nullRequired when the category's serviceIdRequired is true. Otherwise omit it or send null.
namestringrequiredphonestringrequiredemailstring<email>requirednotesstring | nullconsentAtstring<date-time>requiredWhen the person consented. Required, must parse as a timestamp, and cannot be in the future.
memberEmailstring | nullOmit or send null when this account's own system sent the lead. When set, it must be an active member of this account.
The lead was created, or this idempotency key replayed the original create. Status starts at pending. delivered with pending is the accepted state.
idstringrequiredstatusstringrequireddeliverystringrequiredidstringrequiredstatusstringrequireddeliverystringrequiredqueuedReasonQueuedReasonrequiredbudget_exceededpayment_failedThe key is missing or unknown.
errorstringrequiredThe key cannot send leads.
errorstringrequiredThe agreement is outside this key.
errorstringrequiredThe idempotency key was already used for a different phone or email. Nothing is created.
errorstringrequiredThe body, phone, consent time, category, service, or member email is invalid. Nothing is created.
errorstringrequiredThe lead was not saved, or the same idempotency key is still in flight. Retry a 503 that says the lead was not saved. A 503 creates nothing.
errorstringrequired