SoftSolzSoftSolz
HomeAPI GuideAPI ReferenceWidget Tester
my leads

Add one lead.

Save one researched company. Read GET /settings first for the research brief and the section keys, then fill name, website, scores, tags and sections with what you found. This never spends SoftSolz AI credits. Duplicates are detected by external_id, then domain, then any contact email; on_duplicate decides what happens (default error, which answers 409 duplicate_lead with existing_id so you can PATCH it instead). Answers 402 free_plan_limit_reached when the free plan cap is hit.

POSThttps://app.softsolz.uk/api/v1/services/my-leads/leads

Recent Requests

Log in to see full request history
TimeStatusUser Agent
Make a request to see history.

Headers

Authorizationstringrequired

Bearer token: `Bearer sk_live_...` (or `sk_test_...` for sandbox). A login token will not work here.

Idempotency-Keystring

Optional idempotency key for safe retries.

Body Params

namestring

Company name. Required unless website is given.

websitestring

Website URL or bare domain.

external_idstring

Your own stable id; matched first for dedupe.

industrystring

Primary industry.

citystring

City.

statestring

State or region.

countrystring

Country.

employee_bandstring

Headcount band such as 11-50.

revenue_bandstring

Revenue band such as 1M-10M.

fit_scoreinteger

Fit against the brief, 0-100.

lead_scoreinteger

Readiness to buy, 0-100.

confidencenumber

Data confidence, 0-1.

verification_tierstring

verified, probable or unverified.

lead_statusstring

Initial status; defaults to new.

tagsarray of strings

Labels for segmentation; lower-cased and de-duplicated.

owner_user_idinteger

Member id to own the lead.

sectionsobject

Structured research grouped by section. Every key is optional. Use the same keys on create and update; on update, sections merge key by key with what is already stored.

on_duplicatestring

What 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

idintegerLead id.
run_idinteger | nullResearch run that produced this lead, or null when it was added directly.
namestringCompany name.
websitestring | nullWebsite URL.
domainstring | nullBare domain, lower case.
external_idstring | nullYour own stable id for this company.
sourcestringHow the lead got here.
viastring | nullChannel of the last write: research, api, connected_app, or null for the dashboard.
via_labelstring | nullName of the app or key that last wrote the lead.
fit_scoreinteger | nullFit against the brief, 0-100.
lead_scoreinteger | nullReadiness to buy, 0-100.
confidencenumber | nullData confidence, 0-1.
verification_tierstring | nullverified, probable or unverified.
verified_contact_countintegerHow many contact channels were verified on the official site.
lead_statusstringWhere the lead is in your process.
industrystring | nullPrimary industry.
citystring | nullCity.
statestring | nullState or region.
countrystring | nullCountry.
employee_bandstring | nullHeadcount band.
revenue_bandstring | nullRevenue band.
source_urlstring | nullPrimary source URL.
owner_user_idinteger | nullMember who owns the lead, or null when unassigned.
owner_namestring | nullOwner display name.
owner_emailstring | nullOwner email.
tagsarray of stringsLower-case labels for segmentation.
last_contacted_atstring | nullSet whenever the status becomes called, contacted or follow_up.
company_idstring | nullCRM company created by convert, if any.
contact_idstring | nullCRM contact created by convert, if any.
deal_idinteger | nullDeal created by convert, if any.
resultobjectStructured research grouped by section. Every key is optional. Use the same keys on create and update; on update, sections merge key by key with what is already stored.
created_atstringCreation timestamp.
updated_atstringLast update. Round-trip as expected_updated_at on PATCH to refuse stale writes (409 STALE_VERSION).

Request

import { SoftSolz } from '@softsolz/sdk';
const client = new SoftSolz({ apiKey: process.env.SOFTSOLZ_API_KEY });
const result = await client.myLeads.createLead({});
console.log(result);

Credentials

Sent as a Bearer token. Stored only in your browser.

Response · 201

{
"data": {
"id": 0,
"run_id": 0,
"name": "string",
"website": "string",
"domain": "string",
"external_id": "string",
"source": "string",
"via": "string",
"via_label": "string",
"fit_score": 0,
"lead_score": 0,
"confidence": "string",
"verification_tier": "string",
"verified_contact_count": 0,
"lead_status": "string",
"industry": "string",
"city": "string",
"state": "string",
"country": "string",
"employee_band": "string",
"revenue_band": "string",
"source_url": "string",
"owner_user_id": 0,
"owner_name": "string",
"owner_email": "string",
"tags": [],
"last_contacted_at": "string",
"company_id": "string",
"contact_id": "string",
"deal_id": 0,
"result": {},
"created_at": "string",
"updated_at": "string"
}
}