POST /companies/lookup takes up to 100 items, each a country plus an identifier or a name, and answers one result per item in your order: found, not_found or error. The demo key works.
Four items: a Spanish NIF, a British company number, a French SIREN that does not exist and a Spanish NIF with a typo.
curl -X POST 'https://api.prometiam.com/functions/v1/risk-api/companies/lookup' \
-H 'Authorization: Bearer rk_live_demo_publichn' \
-H 'Content-Type: application/json' \
-d '{"items": [
{"country": "ES", "company_number": "A15075062"},
{"country": "GB", "company_number": "00445790"},
{"country": "FR", "siren": "999999999"},
{"country": "ES", "company_number": "A1507506"}
]}'
Returned on 10 November 2026 with the demo key. Each company is the full company object, cut here to a few fields:
{
"data": [
{ "index": 0, "input": { "country": "ES", "company_number": "A15075062" },
"status": "found",
"company": { "id": 1741526, "company_number": "A15075062", "company_name": "INDUSTRIA DE DISEÑO TEXTIL, S.A", "status": "active", ... } },
{ "index": 1, "input": { "country": "GB", "company_number": "00445790" },
"status": "found",
"company": { "id": 2000004984338, "company_number": "00445790", "company_name": "TESCO PLC", "status": "active", ... } },
{ "index": 2, "input": { "country": "FR", "siren": "999999999" },
"status": "not_found", "company": null },
{ "index": 3, "input": { "country": "ES", "company_number": "A1507506" },
"status": "error",
"error": "\"nif\" / company_number for country=ES is a company NIF (CIF): an entity letter, seven digits and a valid control character ...",
"company": null }
],
"meta": {
"items": 4, "found": 2, "not_found": 1, "errors": 1,
"note": "Each item costs 1 credit. Items with a name return the best match with its match_score; identifier items are exact.",
...
}
}
| Field | What it tells you |
|---|---|
index | The position of the item in your request. Results come back in request order. |
status found | The register holds the identifier; company is the standard company object. |
status not_found | A well-formed identifier that no record carries. company is null. |
status error | The item could not be run, here a Spanish NIF that fails its check. error says why; the other items are still answered. |
input | Your item, echoed back, so you can join the answer to your own rows. |
meta.found, not_found, errors | The totals, for a quick check of the batch. |
An item with a name instead of an identifier returns the best match with a match_score; look at it before you trust the match. Identifier items are exact.
Every item counts as one request and costs 1 credit, as the note in the answer says. 100 items cost 100 credits. Plans: Starter EUR 9.99 includes 1,000 credits a month, Professional EUR 29.99 10,000, Scale EUR 99.99 50,000. Failed calls, such as a 400 for a malformed body, are free.
batch_exceeds_quota; nothing is run and max_items_now says how many items fit.timeout and can be resent.Idempotency-Key header to replay a batch safely: the same key and body within 24 hours returns the first answer.company_name null.validation_error: the body is malformed, items is empty or holds more than 100.upgrade_required: the plan does not include the call.batch_exceeds_quota: too many items for what is left of your allowance. Cut the batch to max_items_now and retry later.Idempotency-Key is still in use, or was used with a different body.The free trial lasts 14 days and includes 500 credits. A card is required and nothing is charged during the trial; it then continues as Starter (EUR 9.99/month) unless you cancel.