Batch Screening & Bulk Company Lookup API

Three POST endpoints resolve, screen and check a whole file in one pass instead of a loop of thousands of single calls. POST /companies/lookup resolves up to 100 companies per call by registry number, NIF, SIREN, VAT or name. POST /sanctions/screen screens up to 50 names per call against six sanctions and export-control sources with a match_score per hit (beta). POST /insolvency/check checks up to 100 counterparties per call for corporate insolvency notices across nine markets (FR, DE, GB, AT, CH, NO, FI, US, NL) — Spain's concursal proceedings are on GET /search, not in this batch endpoint. Every result comes back in request order with an index and the input echoed back.

The quota rule

Every item in a batch counts as one request against your plan's per-minute, daily and monthly limits — a batch of 100 does not run for free. A batch bigger than what those limits allow right now is refused up front with 429 batch_exceeds_quota, and the body names max_items_now: how many items fit. Because the tightest limit is usually requests-per-minute (Free 10, Starter 60, Professional 300, Scale 600), a 100-item lookup or insolvency batch only clears in one call on Professional or Scale. None of the three batch endpoints draws on the free-tier trial allowance.

No label field — track by index

None of the three batch item shapes (CompanyLookupItem, SanctionsScreenItem, InsolvencyCheckItem) has a reference or label field. Track rows by their position: each result carries index and the original input alongside its status (found/not_found, match/clear, found/none, plus error and timeout on every one).

Pricing fit

20,000 customer names screened once is 20,000 requests — Professional (100,000/month). A 5,000-row vendor master resolved, screened and checked is 15,000 requests; Starter's 10,000/month is too small, Professional fits. Sanctions screening is a Professional-tier scope regardless of volume.

Read more · Single-name sanctions screening · Get a free API key

Reading the quota error

TierRequests/minute100-item lookup or insolvency batch50-item sanctions batch
Free10Needs several callsNot on this plan
Starter60Needs at least 2 callsNot on this plan
Professional300Clears in one callClears in one call
Scale600Clears in one callClears in one call

Pricing fit

ScenarioRequestsTier
20,000 customer names screened once20,000 (1 per name)Professional — 100,000/month
5,000-row vendor master: lookup + screen + insolvency check15,000 (5,000 × 3)Starter's 10,000/month is too small; Professional fits

Frequently asked questions

How many items can I send in one batch call?
Up to 100 for POST /companies/lookup and POST /insolvency/check, and up to 50 for POST /sanctions/screen. Every item counts as one request against your plan's per-minute, daily and monthly limits, the same as calling the single-item endpoint that many times.
What happens if my batch is bigger than my quota allows?
Nothing runs. The call is refused up front with 429 batch_exceeds_quota, and the body names max_items_now — how many items fit right now under whichever of your per-minute, daily or monthly limits is tightest. Send a batch that size, then send the rest once the window resets.
Can I attach my own reference or label to each row?
No — none of the three batch item shapes has a label or reference field. Each result carries index (its position in the request array) and input (the item you sent, echoed back), and results return in request order, so track rows by position.
Does a batch call use my free-tier trial allowance?
No. All three batch endpoints are excluded from the free trial allowance — you need the scope on your plan outright. Sanctions screening is a Professional-tier scope, batch or single-item.
Which countries does the batch insolvency check cover?
Corporate insolvency notices only, across nine markets: FR, DE, GB, AT, CH, NO, FI, US and NL. A none status means no corporate notice in those markets, which is not proof of solvency. Spain's concursal proceedings are on GET /search, not in this batch endpoint.