Add or merge up to 200 leads in one call.
Save a batch of researched companies. Prefer this over POST /leads when you have more than one. Default on_duplicate is merge, so re-researching a company refreshes it instead of duplicating it. Each row is saved independently and reported in results with created, merged, skipped or failed plus an error message for failed rows; the call still succeeds when some rows fail. Answers 402 free_plan_limit_reached when the batch would cross the free plan cap.
https://app.softsolz.uk/api/v1/services/my-leads/leads/bulkRecent Requests
Log in to see full request historyHeaders
AuthorizationstringrequiredBearer token: `Bearer sk_live_...` (or `sk_test_...` for sandbox). A login token will not work here.
Idempotency-KeystringOptional idempotency key for safe retries.
Body Params
leadsarray of objectsUp to 200 leads, each shaped like the POST /leads body.
on_duplicatestringWhat to do when a lead with the same external_id, domain or contact email already exists: error (409 duplicate_lead with existing_id), merge (fill blanks, merge sections, union tags), skip, or create a second record.
Response
Response Body
resultsarray of objectsOne entry per row, in request order.countsobjectTotals: { created, merged, skipped, failed }.Request
import { SoftSolz } from '@softsolz/sdk';
const client = new SoftSolz({ apiKey: process.env.SOFTSOLZ_API_KEY });
const result = await client.myLeads.bulkUpsertLeads({});console.log(result);Credentials
Sent as a Bearer token. Stored only in your browser.
Response · 201
{ "data": { "results": [], "counts": {} }}