Skip to main content
POST
cURL
First: Lead setup with your campaignId. Full guide with every result code: Bulk leads.

Authorizations

Authorization
string
header
required

Paste only your API key (ond_live_… or ond_test_…). Do not type the word Bearer - the playground adds it.

Headers

Idempotency-Key
string

Optional. Same key + same body returns the same response (idempotentReplay: true); same key + different body → 409.

Body

application/json
campaignId
string
required

All leads in one request go to this campaign.

Example:

"6a7afae1e1cf2999568febc4"

leads
object[]
required

Up to 100 leads per request by default; the limit can be raised for your API key (maximum 500). Over the limit returns 413 bulk_limit_exceeded.

Minimum array length: 1
defaults
object

Used when a lead leaves a field out. Typical: { "channel": "call", "consent": { "outboundCall": true, "source": "crm" } }. A value on the lead wins. metadata is merged.

dryRun
boolean
default:false

Validate every lead and create nothing.

atomic
boolean
default:false

Create nothing unless every lead is valid (422 bulk_atomic_rejected).

Response

Dry run (dryRun: true): validation result per lead, nothing created. Always 200, even when every lead is invalid - read results[].status.

batchId
string
campaignId
string
mode
enum<string>
Available options:
live,
sandbox
dryRun
boolean
idempotentReplay
boolean
summary
object
results
object[]
warnings
string[]