One API for Europe's insurance-intermediary registers
ORIAS · FSMA · AFM · CBI. One GET request, one normalized JSON record — whatever the country. Auto-detection of the register from the id format, plus monitoring for strike-offs across your intermediary network.
Try it — free verification
Verify an intermediary right here, for free — powered by the same production API you would integrate. Paste any supported identifier: we detect the register, query it, and return the normalized record.
This tool uses the same public endpoints documented below (free tier: 20 requests per IP per day, standard RateLimit-* headers).
The API in three endpoints
/api/verifyDiscovery
No parameters → the list of supported countries and their capabilities (register, live vs synced). Use it to enumerate coverage at runtime instead of hardcoding countries.
/api/verify?country=<ISO2>&id=<id>Verify in a specific register
Country-scoped verification. Returns the normalized Intermediary record (schema below), identical across FR, BE, NL and IE. Errors carry machine codes (invalid_id, not_found, unsupported_country, timeout).
/api/verify/auto?id=<id>Smart auto-detect
Resolves the country from the id format alone, queries every candidate register in parallel and returns the first match. If several registers recognise the id, you get a { candidates: [...] } list to disambiguate — exactly what the demo above does.
# Discovery — supported countries and capabilities curl "https://brokpass.com/api/verify" # 🇫🇷 France — ORIAS (SIREN / N° ORIAS) curl "https://brokpass.com/api/verify?country=FR&id=542073580" # 🇧🇪 Belgium — FSMA (BCE/KBO) curl "https://brokpass.com/api/verify?country=BE&id=0202239951" # 🇳🇱 Netherlands — AFM (KvK) curl "https://brokpass.com/api/verify?country=NL&id=54942454" # 🇮🇪 Ireland — CBI (C-number) curl "https://brokpass.com/api/verify?country=IE&id=C10015" # Auto-detect — resolve the country from the id format alone curl "https://brokpass.com/api/verify/auto?id=C10015"
One normalized record for every register
Each national register speaks its own dialect — categories, ids, statuses. Connectors translate everything into a single Intermediary shape, so your integration is written once and works for every country we add.
| Field | Type | Description |
|---|---|---|
country | string | ISO 3166 alpha-2 country code (e.g. “FR”). |
register | string | Official register name (ORIAS, FSMA, AFM, CBI). |
nationalId | string | null | Registration number in that register. |
companyId | string | null | Company id (SIREN, BCE/KBO, KvK…). |
name | string | null | Legal / trading name of the intermediary. |
status | enum | registered · struck_off · suspended · not_found · unknown. |
categories | Category[] | Registration categories: raw code + label + normalized group (insurance_broker, insurance_agent, banking_credit…). |
address | string | null | One-line address, where the register publishes it. |
validFrom | string | null | Registration start date (ISO YYYY-MM-DD). |
passportCountries | string[] | EEA countries the entity may operate in (freedom of services / establishment). |
sourceUrl | string | null | URL of the official register source. |
fetchedAt | string | ISO 8601 timestamp the data was obtained. |
{
"country": "FR",
"register": "ORIAS",
"nationalId": "07022455",
"companyId": "542073580",
"name": "MAAF ASSURANCES SA",
"status": "registered",
"categories": [
{ "code": "COA", "label": "COA", "group": "insurance_broker", "status": "registered" }
],
"address": null,
"validFrom": null,
"passportCountries": [],
"sourceUrl": "https://www.orias.fr/home/showIntermediaire/542073580",
"fetchedAt": "2026-07-24T09:12:45.000Z"
}Full reference — error codes, rate-limit headers, per-country examples, MCP server and legacy ORIAS endpoints — lives in the complete API documentation (currently in French).
Monitoring: know the day an intermediary is struck off
A verification is a snapshot; a network needs surveillance. Every time BrokPass syncs a register, the new snapshot is diffed against the previous one — producing structured change events that power portfolio monitoring for distribution groups and insurers.
Change events
New registrations, strike-offs, renewals and category changes, detected register-wide at every sync.
Portfolio watch
Give us the list of intermediaries you work with; we track their status across all covered registers.
Strike-off alerts
Get notified when a watched intermediary is struck off or suspended — before your next periodic review.
Available on Business and Enterprise plans — set up with our team and delivered via webhooks and reports (not yet a self-serve dashboard).
Pricing
| Plan | Price (excl. VAT) | Verifications | Key features |
|---|---|---|---|
| Free / Dev | €0 | 50 / month | Web verify tool + trial API key |
| Starter | €99 / month | 500 / month · overage €0.20 / call | REST API + MCP, email support |
| BusinessPopular | €299 / month | 5,000 / month | + webhooks, portfolio monitoring (up to 100), priority support |
| Enterprise | from €6,000 / year | High volume | SLA, continuous monitoring + strike-off alerts, dedicated support, SSO |
| Integration | €1,200 / day | — | Scoping, integration, testing, follow-up |
All prices exclude VAT. Plans sell verification, normalization and monitoring as a service — never resale of raw register data: source data remains subject to each official register's licence and attribution terms.
Talk to the team behind the connectors
Verifying a whole intermediary network, need monitoring, higher volumes or an on-site integration? Tell us about your setup — we answer fast.