EU Financial License Scraper (MFSA, CySEC, FINMA)
BUSINESSLEAD GENERATIONOTHER
EU Financial License Scraper (MFSA, CySEC, FINMA)
Aggregate three primary EU and Switzerland offshore financial license registers into a single, normalized dataset. Built for KYC compliance, AML research, MiFID-passport verification, and brokerage intelligence.
Sources covered:
- Cyprus CySEC — Cyprus Securities and Exchange Commission. Investment firms (Cypriot-licensed), plus former/revoked firms. Server-rendered HTML, no anti-bot.
- Switzerland FINMA — Swiss Financial Market Supervisory Authority. Banks, securities firms, portfolio managers, trustees, and FinTech-licensed companies. Data served as official XLSX files.
- Malta MFSA — Malta Financial Services Authority. (Phase 2 — Cloudflare-protected; scheduled for a future release)
What you get
Each record contains:
| Field | Description |
|---|---|
source_regulator |
CySEC or FINMA (or MFSA when live) |
registry_number |
License / registry number |
firm_name |
Full legal entity name |
license_type |
CIF (Investment Firm), Bank, Portfolio Manager / Trustee, FinTech Licence, etc. |
license_status |
active, revoked, former, or unknown |
license_issue_date |
Date license was granted (ISO format where available) |
license_revocation_date |
Date license was terminated (if applicable) |
registered_office |
Registered office address |
country |
Country of registration (Cyprus or Switzerland) |
source_url |
Direct link to the regulator page |
regulatory_actions |
Revocation reason or enforcement notice (when disclosed) |
Array fields (services_authorised, financial_instruments, directors, regulatory_actions) are returned as arrays.
Usage
Basic run — all available regulators, 200 records
{
"regulators": ["CySEC", "FINMA"],
"maxItems": 200
}
Filter by license type
{
"regulators": ["FINMA"],
"licenseType": "FinTech",
"maxItems": 50
}
CySEC active firms only
{
"regulators": ["CySEC"],
"includeRevoked": false,
"maxItems": 500
}
Full scrape (unlimited)
{
"regulators": ["CySEC", "FINMA"],
"maxItems": 0
}
Input parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
regulators |
array | ["CySEC", "FINMA"] |
Which regulators to crawl |
licenseType |
string | "" |
Filter by license type substring (case-insensitive) |
firmName |
string | "" |
Filter by firm name substring (case-insensitive) |
includeRevoked |
boolean | true |
Include revoked / voluntarily surrendered licenses |
maxItems |
integer | 200 |
Maximum records to return; 0 = unlimited |
Estimated record counts
| Source | Coverage | Format |
|---|---|---|
| CySEC (active investment firms) | ~250 | HTML cards |
| CySEC (former / revoked) | ~140 | HTML cards |
| FINMA (banks and securities firms) | ~270 | XLSX |
| FINMA (portfolio managers and trustees) | ~1,490 | XLSX |
| FINMA (FinTech licensees) | ~100 | XLSX |
| FINMA (insurance companies) | ~120 | XLSX |
Total: ~2,370 records across all sources.
Use cases
- KYC / AML compliance — verify counterparty license status before onboarding
- MiFID-passport research — cross-reference firm authorizations across EU jurisdictions
- Brokerage intelligence — monitor new entrants and license revocations
- Regulatory database enrichment — supplement existing compliance databases with EU peripheral registries
- Market analysis — track FinTech licensing trends in Switzerland
Notes
- CySEC pages are scraped live each run. FINMA data comes from official XLSX files updated regularly by FINMA.
- MFSA (Malta) is Cloudflare-protected and will be added in a future release.
- The actor respects a 1-second politeness delay between requests to CySEC.
- For full production datasets (
maxItems: 0), allow 5-10 minutes of run time.