AkribiGet API key

Plumbing

Errors

Every error is one envelope:

{
  "error": {
    "type": "invalid_request_error",
    "code": "invalid_identifier",
    "message": "…",
    "param": "id",
    "request_id": "req_…"
  }
}
HTTPcodewhen
400invalid_identifier, jurisdiction_not_supported, missing_filter, invalid_cursor, invalid_parameterbad input
401unauthorizedmissing or unknown key
401key_revokedthe key was rotated; use the new one from the dashboard
402insufficient_balancethe unlock costs more than the balance
403account_suspendedkey suspended, mail us
429rate_limitedover a rate limit, wait the seconds in Retry-After
429search_quotaweekly search quota used up, Retry-After runs to Monday 00:00 UTC
429unlock_capdaily unlock cap (200) reached, Retry-After runs to 00:00 UTC
404company_not_foundnothing behind that ID
503query_timeoutthe warehouse query passed its budget (4 s for a search, 1.5 s otherwise), narrow the filters
503busyall warehouse connections in use, Retry-After: 2
503maintenancewe are briefly down, Retry-After: 60
503auth_unavailablekey store unreachable, retry
500internalour fault

Pricing

  1. A company costs €0.10 the first time you fetch it by id. For 30 days after that, everything about it is included: the object, establishments, relationships (legal persons only; natural persons are not served), financials, events, publications, the ownership graph from it, and for a young company its incorporation profile.
  2. Search and the feed are included in your key: 50 searches a week on a trial key, more on request. A search returns stubs; fetch a stub by id to unlock it.
  3. You are charged only when the response is 2xx. Errors, timeouts, 404s and over-quota answers cost nothing.
  4. Over the weekly search quota: 429 search_quota. Over the daily unlock cap: 429 unlock_cap. Both carry Retry-After. To raise either, mail us.

The first batch has 50 seats; after that, signup shows a waitlist.

Headers

Request-Id on every response, quote it when you write to us. Akribi-Version is the contract date, currently 2026-10-30. X-Cost is what this response charged in euro cents (10 or 0), X-Balance what is left on your key in cents. Search responses add X-Searches-Remaining for this week; unlock responses add X-Unlocks-Remaining for today.

Stubs

A search hit carries a company_stub: id, name, status, incorporation date, legal form, postcode and locality, NACE codes, and links.self, the URL that unlocks it. A feed item carries a smaller stub under company (id, name, legal form, locality, municipality, province), the event, its date and data with registry facts only (activity codes on an incorporation, the gazette subject, a press or hiring headline). The deed facts of a new company (purpose, capital, founders, premises, deed-read activities with confidence) sit on the company object under incorporation, behind the unlock.

Expand

GET /v1/companies/{id}?expand[]=financials&expand[]=establishments inlines the first page (up to 10 items) of a sub-resource under links. Expandable: establishments, relationships, financials, publications, events. Expanded sub-resources are inside the unlock.

Rate limits

Three limits, each answered with 429 rate_limited and a Retry-After header:

ScopeLimit
per API key10 requests per second, bursts up to 30
/v1/account2 per second per key
per client IP20 failed authentications per minute

Once an IP has used up its failed authentications, further requests from it without a valid key get 429 until the limit refills; requests with a valid key are not affected. Limits are counted per API worker. The API runs behind Cloudflare; its own rate rule on api.akribi.dev sits in front of these. Sequential lookups at 3 per second never hit them.

People

People: not in this release. Relationships and the ownership graph show legal persons only (a company on a board, an entity shareholder, a parent or subsidiary). Natural-person directors, permanent representatives and natural-person shareholders are not served, by name or by id. An entity shareholder or foreign holder without a VAT number is named only when its name carries a legal form (BV, NV, SA, GmbH, Ltd and the like); otherwise name is null and the share stays. Press headlines are quoted as the publication printed them and may name people.

Lists

Lists return {"object":"list","data":[…],"has_more":true,"next_cursor":"…"}. Pass cursor to get the next page, limit up to 100 (default 50).

Cursors are opaque and signed: pass them back unchanged. Offset-paged lists stop issuing a cursor after 10000 rows; has_more stays true, narrow the filters instead.

Search versus feed

activity on /v1/companies is one exact NACE-BEL code (62010). activity on /v1/events is a comma list of prefixes (56, 56.1,56.3).

Gazette

The publication index with PDFs starts on 2026-02-16. Bankruptcies, judicial and voluntary dissolutions and judicial reorganisations go back to 2021, without a PDF. pdf_url is a path relative to https://www.ejustice.just.fgov.be.

Language

?lang=nl|fr|en on company search, company lookup and establishments selects the label language for activities and legal forms. Default nl.