DealSleek API · Leads
PreviewCreate Import Batch
Stage an uploaded or pasted list as an import batch. Writes nothing to leads.
/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
CREATE_IMPORT_BATCHfor 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
batch_iduuidRequiredNo description yet.
sourceenumRequiredWhere a batch's rows came from.
- Allowed values
- PASTE
- FILE
- FORM_POST
- WEBHOOK_PUSH
- PLATFORM_POLL
- API
- FORM_POST
- Posted by a form on the tenant's own site.
- WEBHOOK_PUSH
- Pushed by a platform that sends the field data itself (Google Ads lead form assets).
- PLATFORM_POLL
- Fetched by us on a schedule, because the platform doesn't push usable data (LinkedIn Lead Sync; Meta, which pushes only an id).
- API
- Server-to-server from the tenant's own systems.
total_rowsintegerRequiredNo description yet.
- at least 1
binding_iduuid or nullOptionalThe intake binding that produced this batch, for the automated sources.
Nonefor an operator-driven upload. Recorded so a lead can always be traced back to the exact form/ad account it came from — a source LABEL alone can't answer "which campaign".delimiterstring or nullOptionalNo description yet.
detected_columnsarray of stringOptionalHeader names as uploaded, so the mapping step can offer real column names instead of bare indices.
file_namestring or nullOptionalNo description yet.
has_headerbooleanOptionalNo description yet.
- Default
- false
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. SendCREATE_IMPORT_BATCH. - 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 belowmanageror 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.