DealSleek API · Leads
PreviewStage Inbound Email Capture
Stage an inbound mail from the owner's opted-in mailbox as a pending capture for review.
/api/v1/leads/dispatchHeaders
AuthorizationstringRequiredAccess token of the signed-in user, as a Bearer token. It identifies the user, their role and the workspace.
X-CQRS-ActionstringRequiredNames the command to run. Must be
STAGE_INBOUND_EMAIL_CAPTUREfor this endpoint.Content-TypestringRequiredAlways
application/json.X-Idempotency-KeystringOptionalA key you choose that is unique to this attempt. A command repeated with the same key is not applied a second time.
X-Correlation-IdstringOptionalYour own identifier for the request. Returned in the
x-correlation-idresponse header; generated when you leave it out.
Request body
capture_iduuidRequiredNo description yet.
owner_user_iduuidRequiredMailbox owner — may release the capture alongside TenantAdmins.
payloadobjectRequiredcaptured_leads.raw_payloadfor an inbound-email (BYOE) capture. Built deterministically from the hydrated Message — never from AI output — and compared byte-for-byte on release, so a reviewer approves exactly what was staged. The mail body is NOT copied: it stays inmessages.6 child fields
fromAddrstringRequiredNo description yet.
mailboxIduuidRequiredNo description yet.
messageIduuidRequiredNo description yet.
snippetstringRequiredNo description yet.
subjectstringRequiredNo description yet.
receivedAtRfc3339string or nullOptionalProvider-stamped receive time;
Nonewhen the provider gave none.
tenant_iduuidRequiredNo description yet.
overall_confidencenumberOptionalNo description yet.
- Default
- 0
parsed_identityarray of objectOptionalNo description yet.
3 child fields
confidencenumberRequiredNo description yet.
kindenumRequiredVocabulary of identifier types we recognise on a lead. Adding a new kind here is a deliberate workspace-level decision — every matcher, dedup heuristic, and UI render branch must learn the new variant.
- Allowed values
- PHONE
- LINKEDIN_URL
- TWITTER_HANDLE
- DOMAIN_EMAIL
- EMPLOYEE_BADGE
- O_AUTH_SUBJECT
- DOMAIN_EMAIL
- Email at a company domain — separated from generic Email so we can boost confidence on company-domain matches.
- EMPLOYEE_BADGE
- Employer-issued badge / SSO sub identifier.
- O_AUTH_SUBJECT
- OAuth subject claim — stable across vendor logins.
valuestringRequiredNo description yet.
parsed_signalsarray of objectOptionalNo description yet.
3 child fields
evidencestringRequiredNo description yet.
intensitynumberRequiredNo description yet.
topicstringRequiredNo description yet.
Response
Status 202. The command was applied. The body reports the outcome and, where the command changes a record, that record's new state.
successbooleanRequiredtruewhen the command was applied.error_messagestringRequiredEmpty when the command was applied.
projected_stateobjectOptionalThe record as it stands after the command.
event_payloadobjectOptionalThe event the command recorded.
insightsarray of objectOptionalAdvisory notes about the result. Each has a
code, amessageand animpactnumber.
Errors
Every error carries an HTTP status. Where it also carries a code, branch on the code, not on the message.
- 400
X-CQRS-Actionis missing or names a command this route does not accept. SendSTAGE_INBOUND_EMAIL_CAPTURE. - 400
DOMAIN_ROUTINGThe body is not a valid command. Check the required fields and their types. - 401The access token is missing, expired or not valid.
- 401
L1_AUTHThe caller's role is belowrepor the caller has no access to this record. - 403
L1_POLICYA business rule refused the command. The message names the rule. - 409
L1_IDEMPOTENCYA command with this idempotency key was already applied. - 409
CONFLICTThe command would duplicate a record that must be unique. - 500
L3_COMMITThe command was valid but could not be saved.