Get company
GET https://api.companylens.io/v1/companies/{id}Fetch a full company profile by its entityId. Returns all available data for the entity including officers, beneficial owners, and charges in a single response.
Use this endpoint once you have an entityId from Search companies, or when you already know the company number and want an exact lookup.
Request
Authentication
Authorization: Bearer YOUR_API_KEYPath parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | Entity ID in the format {jurisdiction}-{registry-number}, e.g. gb-08804411. Returned by the search endpoint as entityId. |
Examples
curl https://api.companylens.io/v1/companies/gb-08804411 \
-H "Authorization: Bearer YOUR_API_KEY"const res = await fetch(
'https://api.companylens.io/v1/companies/gb-08804411',
{ headers: { Authorization: 'Bearer YOUR_API_KEY' } }
);
const company = await res.json();import httpx
r = httpx.get(
'https://api.companylens.io/v1/companies/gb-08804411',
headers={'Authorization': 'Bearer YOUR_API_KEY'},
)
company = r.json()Response
200 — Success
{
"entityId": "gb-08804411",
"entityName": "Revolut Ltd",
"jurisdiction": "gb",
"status": "active",
"incorporationDate": "2015-07-23",
"dissolutionDate": null,
"address": {
"line1": "7 Westferry Circus",
"line2": "Canary Wharf",
"city": "London",
"postcode": "E14 4HD",
"country": "GB"
},
"industryCodes": ["K6419"],
"ticker": null,
"officers": [
{
"officerId": "gb-off-abc123",
"name": "Nikolay Storonsky",
"role": "Director",
"appointedDate": "2015-07-23",
"resignedDate": null
}
],
"beneficialOwners": [
{
"ownerId": "gb-bo-def456",
"name": "Nikolay Storonsky",
"ownershipType": "ownership-of-shares",
"ownershipPercent": "25-50%",
"notifiedDate": "2016-04-06"
}
],
"charges": [
{
"chargeId": "gb-chg-ghi789",
"chargeCode": "1",
"status": "outstanding",
"createdDate": "2021-03-15",
"satisfiedDate": null,
"personsEntitled": ["Silicon Valley Bank UK Limited"]
}
]
}Response fields
| Field | Type | Always present | Description |
|---|---|---|---|
| entityId | string | yes | Stable unique identifier across all CompanyLens endpoints. |
| officers | array | yes | Empty array if the registry doesn't publish officer data. See coverage. |
| beneficialOwners | array | yes | Empty array for most jurisdictions — only GB, UA, EE, LV currently publish beneficial ownership data. |
| charges | array | yes | Registered charges (mortgages/security). Only available for GB currently. |
| officers[].role | string | yes | Normalised role label. Varies by jurisdiction — Director, Secretary, LLP Member, etc. |
Error responses
| HTTP status | Code | When it happens |
|---|---|---|
| 401 | UNAUTHORIZED | Missing or invalid API key |
| 404 | NOT_FOUND | No entity with this ID exists in the registry |
| 429 | RATE_LIMITED | Quota exceeded — see rate limits |
Common mistakes
Passing a raw registry number instead of an entity ID
The id parameter is the CompanyLens entityId, not the raw registry number. Use gb-08804411, not 08804411. Get the ID from the search endpoint first, or construct it as {jurisdiction}-{number}.
Expecting officers for all jurisdictions
The officersarray will be empty for jurisdictions where we don't index officer data (BE, NO, SI, RS, CA, CL). Check the coverage matrix before building logic around officers.