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 API documentation (also en français), with a per-register guide for each country: ORIAS · FSMA · AFM · CBI.
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).
The monitoring product in detailPricing at a glance
Full pricing details & FAQ| Plan | Price (excl. VAT) | Verifications | Key features |
|---|---|---|---|
| Sandbox | €0 | 100 / month · 20 / day (evaluation) | Full REST API + MCP, instant key |
| Pro | €249 / month | 2,500 / month · overage €0.20 / call | REST API + MCP + webhooks, monitoring (up to 100), email support |
| BusinessPopular | €799 / month | 15,000 / month · overage €0.15 / call | + strike-off alerts, monitoring (up to 1,000), priority support |
| Enterprise | Custom | High / unlimited volume | SLA, continuous monitoring (unlimited), SSO, onboarding & integration included |
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. Billing details, overage rules and the pricing FAQ live on the dedicated pricing page.
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.