Changelog
Every change to the API, newest first. The current status and price of each operation is always in
GET /v1/pricing.
2026-11-04 Pre-release
Section titled “2026-11-04 ”The first entry: what exists today. The API is not generally available yet, and until it is, endpoints and fields can still change. Every change will be listed here.
The platform
Section titled “The platform”- One base URL,
https://api.accountcloud.io/v1, with JSON in and out, described by an OpenAPI 3.1 spec and the API reference. - API keys for live (
ac_live_…) and test (ac_test_…), with scopes per product or operation, an IP allowlist, a monthly spending cap, an end date, rotation with an overlap, and revoking. See authentication and keys. - Rate limits per key per minute and per account per day, in the
RateLimit-PolicyandRateLimitheaders. - Errors as RFC 9457 problems with a stable
code; each code has its own link,https://docs.accountcloud.io/errors/{code}. See errors. Idempotency-Keyon everyPOST: a retry within 24 hours gets the first answer and is never charged twice. See idempotency.- Test mode: fixed test values for every operation, the error paths included, always free. See test mode.
- The cost in every answer, in
AccountCloud-Charged, and the credit left inAccountCloud-Balance. - The
AccountCloud-Entityheader, to keep documents and charges apart per customer of yours. - Webhooks, signed the Standard Webhooks way:
credit.low_balance,credit.auto_top_up_failed,subscription.paused,document.extracted,document.completed,document.failed,document.rejectedand the test eventping, with retries for 24 hours. See webhooks. - Prepaid credit and a base subscription, topped up in the portal. See pricing and credit.
GET /v1/me(the account, the key and the balance), and without a keyGET /v1/statusandGET /v1/pricing(in English, or Dutch with?locale=nl).
The operations
Section titled “The operations”| Operation | Endpoint | Status on 2026-11-04 |
|---|---|---|
address.forms |
GET /v1/address/forms, GET /v1/address/forms/{country} |
Live, free |
address.validate |
POST /v1/address/validate |
Preview, no price yet |
address.format |
POST /v1/address/format |
Preview, no price yet |
ocr.extract |
POST /v1/documents with processing: automatic |
Preview |
ubl.verified |
POST /v1/documents with processing: verified |
Preview |
ocr.read |
GET /v1/documents, GET /v1/documents/{id}, DELETE /v1/documents/{id} |
Preview, free |
ubl.generate |
GET /v1/documents/{id}/ubl |
Preview, free |
ubl.validate |
POST /v1/ubl/validate |
Preview, free |
ocr.feedback |
POST /v1/documents/{id}/feedback |
Preview, free |
company.profile |
GET /v1/companies/{country}/{number} |
Preview. NL priced, for accounts with access to KvK data; BE no price yet |
company.search |
GET /v1/companies |
Preview, no price yet |
vat.validate |
GET /v1/vat-numbers/{vat_number} |
Preview, no price yet |
An operation in preview without a price answers a live key with 503
operation_unavailable until it has one; test keys already
get answers. The guides: addresses, documents, and
company data and VAT numbers.