Skip to main content
REST API

The company data API
built for intelligence

Not just company lookups. Network analysis, person profiles, batch resolution, disqualification screening — 20 endpoints across 16 jurisdictions in a unified JSON schema.

< 50ms response time·99.9% uptime SLA·Free tier included
api.companylens.io
Request
GET

Response

waiting for response…

Beyond simple lookups

Queries your competitors can’t answer

The endpoints that matter for real intelligence work — not just name and address.

Network analysis

Who else does this director control?

One call to /network returns every company connected via shared officers or beneficial owners — with the linking person identified. Map corporate groups, spot conflicts of interest, and trace complex structures instantly.

Request
GET /v1/companies/gb/08804411/network
Response200 OK
{
  "results": [
    {
      "name": "Revolut Securities Ltd",
      "number": "10498458",
      "jurisdiction": "gb",
      "status": "active",
      "sharedVia": "Nikolay Storonsky"
    },
    {
      "name": "Revolut Bank UAB",
      "number": "305964897",
      "jurisdiction": "lithuania",
      "status": "active",
      "sharedVia": "Nikolay Storonsky"
    }
  ]
}
Person intelligence

Every role a person has ever held

A single person profile returns their full appointment history across all companies and jurisdictions — officer roles, ownership stakes, and any disqualifications. Built for due diligence, KYC, and competitive research.

Request
GET /v1/people/gb/{person-id}
Response200 OK
{
  "person": {
    "name": "Nikolay Storonsky",
    "types": ["officer", "beneficial_owner"]
  },
  "officerRoles": [
    { "company": "Revolut Ltd",
      "role": "Chief Executive Officer",
      "appointedDate": "2015-07-01",
      "isActive": true },
    { "company": "Revolut Technologies Inc",
      "role": "Director",
      "appointedDate": "2018-03-14",
      "isActive": true }
  ],
  "totalOfficerRoles": 7
}
Bulk resolution

Resolve 50 companies in one request

The batch endpoint accepts up to 50 jurisdiction/number pairs and returns all profiles in a single round trip. Ideal for screening lists, enriching CRM data, or validating business entity databases at scale.

Request
POST /v1/companies/batch

{
  "companies": [
    { "jurisdiction": "gb",      "number": "08804411" },
    { "jurisdiction": "ireland", "number": "IE693036" },
    { "jurisdiction": "no",      "number": "914778271" }
  ]
}
Response200 OK
{
  "results": [
    { "jurisdiction": "gb",
      "number": "08804411",
      "found": true,
      "company": { "name": "Revolut Ltd",
                   "status": "active" } },
    { "jurisdiction": "ireland",
      "number": "IE693036",
      "found": true,
      "company": { "name": "Revolut Technologies Inc",
                   "status": "active" } }
  ],
  "meta": { "requested": 3, "found": 3 }
}
Compliance screening

Instant disqualified director checks

Screen names against the GB disqualified directors register in real time. Returns the disqualification type, court, applicable legislation, and date range — everything your compliance team needs in a single call.

Request
GET /v1/people/disqualified-directors/search
  ?q=john+smith
Response200 OK
{
  "results": [
    {
      "name": "John Robert Smith",
      "disqualificationType": "Unfit director of insolvent company",
      "startDate": "2021-04-15",
      "endDate": "2031-04-14",
      "court": "Insolvency Service",
      "company": "JRS Trading Ltd",
      "isActive": true
    }
  ]
}
Reference

Every endpoint

20 endpoints. All RESTful. All returning the same consistent JSON schema regardless of jurisdiction.

Companies

GET
/v1/companies/search

Fuzzy name search with status, date, entity-type and charge filters

GET
/v1/companies/autocomplete

Sub-100ms prefix match with trigram fallback for typos

GET
/v1/companies/{jur}/{id}

Full profile — status, officers, and beneficial owners in one response

GET
/v1/companies/{jur}/{id}/officers

Paginated officer history, sortable by appointment or resignation date

GET
/v1/companies/{jur}/{id}/beneficial-owners

PSC / UBO data with share percentage ranges and natures of control

GET
/v1/companies/{jur}/{id}/network

Companies linked via shared directors or beneficial owners

GET
/v1/companies/{jur}/{id}/financials

Parsed XBRL financials — turnover, profit, assets, liabilities, headcount

GET
/v1/companies/{jur}/{id}/charges

Registered charges and mortgages against company assets

GET
/v1/companies/{jur}/by-address

All companies at a given address — exact match with trigram fallback

POST
/v1/companies/batch

Resolve up to 50 company lookups in a single request

People

GET
/v1/people/search

Unified search across officers, beneficial owners, and disqualified directors

GET
/v1/people/{jur}/{id}

Person profile — all company roles, ownership stakes, and disqualifications

GET
/v1/people/officers/search

Officer-only search with active-only filter

GET
/v1/people/beneficial-owners/search

Search beneficial owners by name across all jurisdictions

GET
/v1/people/disqualified-directors/search

Screen against the GB disqualified directors register

GET
/v1/people/disqualified-directors/{jur}/{id}

Full disqualification record — court, act section, case details

Platform

GET
/v1/jurisdictions

All jurisdictions with per-endpoint availability matrix

GET
/v1/stats

Live platform stats — entity, officer, and beneficial owner counts

GET
/v1/health

Database connectivity health check

Data coverage

What data you get

Company profiles

  • Legal name, number, status
  • Registered address
  • SIC / NACE industry codes
  • Entity type across all jurisdictions
  • Incorporation and dissolution dates

Officers & directors

  • Full appointment & resignation history
  • Roles and occupations
  • Cross-jurisdiction person profiles
  • All companies for a given person
  • Network — related companies via shared directors

Ownership & compliance

  • Beneficial ownership (PSC / UBO)
  • Share percentage ranges
  • Disqualified directors register

Unified schema — every company returns identical JSON. View the schema →

Data availability varies by registry. Not all fields are published by every jurisdiction.

Simple, transparent pricing

Free tier is permanent. No card required to start.

Free

£0

Evaluate the data

  • 500 queries/month
  • All 16 jurisdictions
  • All data endpoints
  • No credit card
Get started

Starter

£49/mo

Build your integration

  • 5,000 queries/month
  • All data endpoints
  • No daily cap
  • Email support
Start building
Most popular

Pro

£149/mo

Production ready

  • 25,000 queries/month
  • All data endpoints
  • No daily cap
  • Priority support
Go Pro

Business

£449/mo

High-volume production

  • 100,000 queries/month
  • All data endpoints
  • No daily cap
  • Priority support
Get Business

Ready to integrate?

Get your API key in seconds. 500 free queries to explore the data. No credit card required.