API documentation

Rate limits, credits and errors

Each successful call costs credits (1 for a company search or record, up to 25 for a company's financial statements) and an error costs nothing. Past a per-minute, daily or monthly limit the API answers 429 with a Retry-After header, and every failure uses one JSON error envelope.

Card required, nothing charged for 14 days. 500 credits over the trial.

What a call costs

A successful callCredits
Account, coverage, managing monitored companies and the sanctions watchlist0
Company search, company record, batch lookup item, VAT check, LEI1
Corporate events, people and officers, director network, insolvency, procurement2
Sanctions screening, per name (beta)3
Financial statements of one company (Scale)25

A batch item costs what the same single call costs. Every response carries its cost in X-Credits-Cost, and GET /account shows the credits used and left.

Limits by plan

PlanRequests per minuteCredits per dayCredits per month
Free trial (14 days)10200500
Starter601,0001,000
Professional12010,00010,000
Scale30050,00050,000

Starter is EUR 9.99 a month, Professional EUR 29.99, Scale EUR 99.99; Enterprise is custom. Paid plans include a 10% soft overage buffer on the monthly credits, and the key owner is emailed when usage reaches 90% of the allowance.

Rate-limit headers

Every authenticated response, success or error except a bare 401, carries X-RateLimit-Limit (the plan's monthly credits), X-RateLimit-Remaining (credits left after this call) and X-RateLimit-Reset (Unix epoch seconds: 00:00 UTC on the 1st of next month; on the free trial, the trial's end). Every logged response also carries X-Request-Id: quote it when you write to support about a call.

The error envelope

{
  "error": {
    "code": "rate_limit_exceeded",
    "message": "Rate limit exceeded. Try again in 45 seconds.",
    "status": 429
  }
}
StatusCodeDescription
400validation_errorMissing or invalid parameters (for example no search term, an invalid country, a limit outside its range).
401unauthorizedMissing, invalid, or expired API key.
403forbiddenThe key has no access to the requested country.
403upgrade_requiredThe scope is not in your plan, or your free trial allowance for it is used up.
404not_foundRecord or endpoint not found.
409idempotency_key_in_progressA request with this Idempotency-Key (batch endpoints only) is still running; see Retry-After.
422idempotency_key_reuseThis Idempotency-Key was already used with a different request body; use a new key.
429rate_limit_exceededPer-minute (requests) or daily (credits) limit exceeded; wait the Retry-After seconds.
429quota_exceededMonthly credits exhausted (including the 10% paid-plan grace); resets at month start.
500internal_errorServer error; safe to retry with exponential backoff.

Retrying a batch safely

The three batch endpoints accept an optional Idempotency-Key header (1-255 printable ASCII characters, scoped to your key). The same key with the same request within 24 hours returns the original response with Idempotent-Replayed: true and uses no new credits; a 4xx or 5xx result releases the key at once.

Limits

  • The batch endpoints (POST /companies/lookup, POST /sanctions/screen, POST /insolvency/check) count every item as one request; a batch that does not fit in your remaining quota is refused up front with 429 batch_exceeds_quota and max_items_now.
  • The free trial lasts 14 days, needs a card, charges nothing during it and then becomes Starter at EUR 9.99 a month unless you cancel; it includes 500 credits in total plus 25-call allowances on sanctions screening, people search and company events.
  • Company financial statements (GET /companies/{id}/financials) need the Scale plan or above and cost 25 credits a call; Starter, Professional and trial keys get 10 such calls a month.
  • Sanctions screening is in beta. PEP data is in beta and covers Spain only.

This page is a short guide; the full reference has every parameter and response, and openapi.json is the machine-readable specification.