BUSINESS IDENTITY API
Verify European businesses programmatically.
The same verification layer that powers SWELEI's business identity profiles, available as a read-only HTTP interface. Every response states which source verified each field and when.
Use cases
Know who you trade with.
Verify a supplier
Confirm a supplier's legal entity and identifiers before onboarding them.
Verify a customer
Check that a business customer exists and that its identifiers are current.
Verify a business partner
Retrieve identifiers and verification state before signing an agreement.
Verify a legal entity
Resolve an LEI to a legal entity, its status and its registered information.
Authentication
One API key, sent as a bearer token.
Create a key in your account. The key is shown once at creation and only a hash is stored, so it can never be retrieved again. Keys can be revoked at any time and every request is logged with endpoint, status and latency.
Authorization: Bearer swelei_live_xxxxxxxxxxxx
Rate limits per key: 60 requests per minute and 1000 per day. Responses include X-RateLimit-Remaining and, when exceeded, a 429 with Retry-After.
Endpoints
Read-only, source-transparent.
GET/api/v1/business/:identifier
Business identity with field-level provenance: value, source, method, date retrieved and status.
GET/api/v1/business/:identifier/verification
Verification status, verified fields, sources used and any verification conflicts.
GET/api/v1/business/:identifier/events
Immutable verification history: field, previous value, new value, source, status and time.
GET/api/v1/business/:identifier/sources
The data sources used, their state and which field each source produced.
Parameters
identifier
Path parameter. An LEI (20 characters) or a Swedish organisation number. 2–40 characters.
Authorization
Header. Bearer <your API key>. Required on every /api/v1 request.
Errors
Example
One request, full provenance.
curl https://swelei.com/api/v1/business/5493001KJTIIGC8Y1R12 \ -H "Authorization: Bearer swelei_live_xxxxxxxxxxxx"
{
"data": {
"identifier": "5493001KJTIIGC8Y1R12",
"status": "PARTIALLY_VERIFIED",
"verifiedAt": "2026-09-16T09:12:44.201Z",
"business": {
"legalName": "Example AB",
"country": "Sweden",
"registrationNumber": "556123-4567",
"lei": "5493001KJTIIGC8Y1R12",
"leiStatus": "ISSUED"
},
"fields": [
{
"field": "legal_name",
"value": "Example AB",
"source": "GLEIF",
"sourceIdentifier": "5493001KJTIIGC8Y1R12",
"method": "GLEIF Global LEI Index record",
"retrievedAt": "2026-09-16T09:12:44.201Z",
"status": "VERIFIED"
},
{
"field": "registration_number",
"value": "556123-4567",
"source": "GLEIF",
"retrievedAt": "2026-09-16T09:12:44.201Z",
"status": "RETRIEVED"
}
],
"sources": [
{ "source": "GLEIF", "state": "connected", "ok": true },
{ "source": "BOLAGSVERKET", "state": "requires_credentials", "ok": false },
{ "source": "VAT", "state": "connected", "ok": true }
],
"conflicts": []
}
}A field is only VERIFIED when a source that can attest to it confirmed the value. Values published by a source that does not attest to them are returned as RETRIEVED, and disagreeing sources are returned as CONFLICT — SWELEI never chooses between them.
Plans
