Skip to main content
Docs

Documentation

Everything you need to integrate CompanyLens into your application or AI agent.

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_KEY

Path parameters

ParameterTypeRequiredDescription
idstringyesEntity ID in the format {jurisdiction}-{registry-number}, e.g. gb-08804411. Returned by the search endpoint as entityId.

Examples

curl
curl https://api.companylens.io/v1/companies/gb-08804411 \
  -H "Authorization: Bearer YOUR_API_KEY"
Node.js
const res = await fetch(
  'https://api.companylens.io/v1/companies/gb-08804411',
  { headers: { Authorization: 'Bearer YOUR_API_KEY' } }
);
const company = await res.json();
Python
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

FieldTypeAlways presentDescription
entityIdstringyesStable unique identifier across all CompanyLens endpoints.
officersarrayyesEmpty array if the registry doesn't publish officer data. See coverage.
beneficialOwnersarrayyesEmpty array for most jurisdictions — only GB, UA, EE, LV currently publish beneficial ownership data.
chargesarrayyesRegistered charges (mortgages/security). Only available for GB currently.
officers[].rolestringyesNormalised role label. Varies by jurisdiction — Director, Secretary, LLP Member, etc.

Error responses

HTTP statusCodeWhen it happens
401UNAUTHORIZEDMissing or invalid API key
404NOT_FOUNDNo entity with this ID exists in the registry
429RATE_LIMITEDQuota 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.