API
Search, enrich, unlock, and export 19.3M verified B2B contacts programmatically. Pay per contact unlocked, just like the UI.
API access included at the Growth tier ($100 credit pack) and above.
Authenticate with a bearer token in the Authorization header. All requests use HTTPS, JSON request and response bodies, and standard HTTP status codes.
curl https://api.cheapb2bdata.com/v1/search \
-H "Authorization: Bearer $CHEAPB2B_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"filters": {
"title": ["VP of Engineering", "CTO"],
"company_size": "100-1000",
"tech_stack": ["AWS", "Kubernetes"],
"funding_stage": ["series_b", "series_c"]
},
"limit": 100
}'Search is free. You only burn credits when you call /v1/unlock on a result.
/v1/searchFilter contacts by title, seniority, industry, tech stack, funding stage, and 270+ other filters.
/v1/unlockUnlock one or more contact records. Returns full Basic or Premium payload, deducts credits.
/v1/enrichPass a partial record (email or LinkedIn URL); receive the full enriched record.
/v1/listsList, create, and manage saved searches.
/v1/lists/:id/exportExport a saved list as CSV or JSON. Optional signed-URL bulk download for 100K+.
/v1/webhooksSubscribe to job-change, role-change, and intent events on saved-list contacts.
/v1/credits/balanceCurrent credit balance, recent usage, refunds.
Node.js
import { CheapB2B } from '@cheapb2b/sdk'
const cb = new CheapB2B(process.env.CHEAPB2B_API_KEY)
const { results } = await cb.search({
filters: { title: ['CMO'], company_size: '50-500' },
limit: 50
})
const unlocked = await cb.unlock(results.map(r => r.id))
console.log(unlocked[0].email)Python
from cheapb2b import CheapB2B
cb = CheapB2B(api_key=os.environ["CHEAPB2B_API_KEY"])
results = cb.search(
filters={"title": ["CMO"], "company_size": "50-500"},
limit=50
)
unlocked = cb.unlock([r["id"] for r in results])
print(unlocked[0]["email"])You only burn credits when you call /unlock. Search results return enough metadata to decide which records are worth unlocking.
Default: 100 req/min on search, 60 req/min on unlock. Bulk export endpoints don’t count against these. Need higher? Email support.
Subscribe a webhook URL; we’ll POST when a contact on your saved list changes job, role, or company.
Same as the UI: bounce, wrong number, wrong title, file via /v1/credits/refund. First 100 auto-approved.
Available at the Growth tier ($100 credit pack) and above. Generate the key in your dashboard.