Company Enrichment API

Company Enrichment Datalegion API

Enrich one company from a domain or a company name into Data Legion's premium firmographics: industry, size, founding year, office locations, stock tickers and social profiles, plus headcount, hiring, attrition, growth and turnover, workforce breakdowns by seniority, function and tenure, and monthly headcount history.

POST/v1/run/company_enrichment.datalegion
Uptime
100.00%
30d · 2 calls
Requests
2
30d
Response
4.0s
median · 30d

Pricing

Company Enrichment Datalegion API pricing

You pay
$480.60
$48.06/1k req, only for what you use. No monthly plan.
Your first 2 requests are free with the $0.10 starting balance.

Call it

Get Company Enrichment datalegion in one request

import os, requests

res = requests.post(
    "https://api.getanyapi.com/v1/run/company_enrichment.datalegion",
    headers={"Authorization": f"Bearer {os.environ['ANYAPI_KEY']}"},
    json={},
)
print(res.json())
Open in
Get a free key
Sample response
{
  "data": {
    "averageTenureMonths": 29,
    "datasetVersion": "example",
    "departures": {},
    "domains": [
      "example.com"
    ],
    "employeeCount": 12500,
    "employeeCountByEducation": {},
    "employeeCountByExpenseCategory": {},
    "employeeCountByFunction": {},
    "employeeCountByMonth": [
      {
        "count": 12500,
        "departures": 42,
        "growthRate": 12.5,
        "hires": 42,
        "month": "example",
        "netChange": 42
      }
    ],
    "employeeCountBySeniority": {},
    "employeeCountByTenure": {},
    "employeeGrowthRate": {},
    "employeeTurnoverRate": {},
    "founded": 42,
    "growthRateByExpenseCategory": {},
    "growthRateByFunction": {},
    "growthRateBySeniority": {},
    "headline": "Example title",
    "industry": "general",
    "lastSeenUtc": 42,
    "legionId": "a1b2c3d4",
    "linkedinEmployeeCount": 12500,
    "linkedinFollowers": 12500,
    "linkedinId": "https://example.com/page",
    "linkedinUrl": "https://example.com/page",
    "locations": [
      {
        "addressLine2": "123 Main St",
        "continent": "example",
        "country": "US",
        "countryCode": "US",
        "geo": "example",
        "isCurrent": true,
        "isPrimary": true,
        "lastSeenUtc": 42,
        "locality": "example",
        "postalCode": "94107",
        "region": "CA",
        "regionCode": "CA",
        "streetAddress": "123 Main St"
      }
    ],
    "matchConfidence": "a1b2c3d4",
    "matchType": "general",
    "matchedOn": [
      "example"
    ],
    "name": "Example title",
    "nameNormalized": "Example title",
    "newHires": {},
    "numSources": 42,
    "profiles": [
      {
        "network": "example",
        "profileId": "a1b2c3d4",
        "url": "https://example.com/page",
        "username": "alex_rivera"
      }
    ],
    "size": "example",
    "summary": "A short example description of this item.",
    "tickers": [
      {
        "exchange": "example",
        "symbol": "example"
      }
    ],
    "type": "general",
    "website": "https://example.com/page"
  },
  "found": true,
  "reason": "not_found"
}

Full parameter and response reference - every field, type, and example for this endpoint.

Reference

One request, one response shape.

Every field you send and every field you get back, each with a real example.

Last verified 2026-10-25 · uptime and latency measured over 30d

Request body

JSON, posted to this endpoint.

  • domainstring

    hubspot.com

    Company website domain, e.g. hubspot.com. The strongest identifier. Send either domain or name, not both.

  • minConfidenceenum

    Lowest match confidence that still counts as found. Omit it for Data Legion's default.

  • namestring

    Company name, for when you have no domain. A domain matches more reliably.

  • requiredstring

    Fields a match must have, as a Data Legion expression over its snake_case field names combined with AND, OR and parentheses, e.g. linkedin_url AND founded. A match without them counts as not found.

You send. A small JSON body. The values shown are examples to replace with your own.

Response

JSON, one example value per field.

datadata

The enriched company, or null when nothing matched.

  • averageTenureMonthsnumber

    Average tenure of current employees, in months.

  • datasetVersionstring

    Data Legion dataset build the record came from.

  • departuresobject

    Departures over the trailing 1, 3, 6 and 12 months, keyed 1m, 3m, 6m and 12m.

  • domainsstring[]

    Every website domain Data Legion links to the company, the primary one included.

  • employeeCountinteger

    Employees Data Legion currently counts from the people profiles it holds, usually below the LinkedIn figure.

  • employeeCountByEducationobject

    Current employees per highest degree, e.g. bachelors, masters, doctorate.

  • employeeCountByExpenseCategoryobject

    Current employees per expense category, e.g. research_and_development, sales_and_marketing.

  • employeeCountByFunctionobject

    Current employees per job function, e.g. engineering, sales, product.

  • employeeCountBySeniorityobject

    Current employees per seniority level, e.g. c_level, director, manager, senior.

  • employeeCountByTenureobject

    Current employees per tenure band, e.g. <1yr, 1-2yr, 2-5yr.

  • employeeGrowthRateobject

    Headcount growth rate as a fraction over the trailing 1, 3, 6 and 12 months, keyed 1m, 3m, 6m and 12m.

  • employeeTurnoverRateobject

    Turnover rate as a fraction over the trailing 1, 3, 6 and 12 months, keyed 1m, 3m, 6m and 12m.

  • foundedinteger

    Year the company was founded.

  • growthRateByExpenseCategoryobject

    Headcount growth rate per expense category, each keyed 1m, 3m, 6m and 12m.

  • growthRateByFunctionobject

    Headcount growth rate per job function, each keyed 1m, 3m, 6m and 12m.

  • growthRateBySeniorityobject

    Headcount growth rate per seniority level, each keyed 1m, 3m, 6m and 12m.

  • headlinestring

    One-line company tagline, as the company writes it.

  • industrystring

    Company industry, lowercase, e.g. software development.

  • lastSeenUtcinteger

    UTC epoch timestamp in seconds (Unix time) of the month Data Legion last saw the company, at the first of that month. Multiply by 1000 for a JS Date in milliseconds.

  • legionIdstring

    Data Legion persistent company id.

  • linkedinEmployeeCountinteger

    Employee count the company's LinkedIn page states.

  • linkedinFollowersinteger

    LinkedIn follower count.

  • linkedinIdstring

    Company LinkedIn numeric id.

  • linkedinUrlstring

    Company LinkedIn page URL.

  • matchConfidencestring

    How sure the match is: high, moderate or low.

  • matchTypestring

    How the identifier matched, e.g. exact.

  • matchedOnstring[]

    Identifiers the match was made on, e.g. domain or name.

  • namestring

    Company name as Data Legion displays it.

  • nameNormalizedstring

    Lowercase normalized company name, the form Data Legion matches on.

  • newHiresobject

    Hires over the trailing 1, 3, 6 and 12 months, keyed 1m, 3m, 6m and 12m.

  • numSourcesinteger

    Number of sources Data Legion merged into this record.

  • sizestring

    Employee headcount band, e.g. 51-200.

  • summarystring

    Long company description, as the company writes it.

  • typestring

    Ownership type, e.g. private, public.

  • websitestring

    Primary company website domain, e.g. hubspot.com.

each employeeCountByMonthdata.employeeCountByMonth[]

Monthly headcount history, oldest month first.

  • countinteger

    Employees counted that month.

  • departuresinteger

    Employees who left that month.

  • growthRatenumber

    Change in headcount from the month before, as a fraction.

  • hiresinteger

    Employees who joined that month.

  • monthstring

    Calendar month as YYYY-MM.

  • netChangeinteger

    Change in headcount from the month before.

each locationdata.locations[]

Office locations, the headquarters marked isPrimary.

  • addressLine2string

    Second line of the address.

  • continentstring

    Continent.

  • countrystring

    Country.

  • countryCodestring

    ISO 3166-1 alpha-2 country code, e.g. US.

  • geostring

    Coordinates as "lat,lon".

  • isCurrentboolean

    True while the office is still in use.

  • isPrimaryboolean

    True for the headquarters.

  • lastSeenUtcinteger

    UTC epoch timestamp in seconds (Unix time) Data Legion last saw this location. Multiply by 1000 for a JS Date in milliseconds.

  • localitystring

    City.

  • postalCodestring

    Postal code.

  • regionstring

    State or region.

  • regionCodestring

    ISO 3166-2 region code, e.g. US-MA.

  • streetAddressstring

    Street address.

each profiledata.profiles[]

Social and directory profiles Data Legion links to the company.

  • networkstring

    Network the profile is on, e.g. linkedin, facebook, crunchbase.

  • profileIdstring

    Numeric or opaque id on that network.

  • urlstring

    Profile URL.

  • usernamestring

    Handle on that network.

each tickerdata.tickers[]

Stock tickers the company trades under. Empty for a private company.

  • exchangestring

    Exchange the ticker lists on, e.g. NYSE.

  • symbolstring

    Ticker symbol, e.g. HUBS.

top level
  • foundboolean

    False when Data Legion matched no company, or none at the requested confidence or with the required fields.

  • reason"not_found"

    Present only when `found` is false, and says why there is no result. `not_found`: the source states the target does not exist, or returned nothing for it. A `found: false` answer is a successful call, not an error, and `costUsd` is what it actually cost.

You get back. Named, typed fields in the same shape whichever source answers.

FAQ

About the Company Enrichment Datalegion API

The AnyAPI Company Enrichment Datalegion API returns Company Enrichment datalegion data as normalized JSON from one POST call to /v1/run/company_enrichment.datalegion. Enrich one company from a domain or a company name into Data Legion's premium firmographics: industry, size, founding year, office locations, stock tickers and social profiles, plus headcount, hiring, attrition, growth and turnover, workforce breakdowns by seniority, function and tenure, and monthly headcount history. AnyAPI returns one normalized schema whichever source serves it. It costs from $48.06 per 1,000 requests, in US dollars with no subscription and no monthly minimum. Over the last 30 days, 100.0% of Company Enrichment datalegion calls through AnyAPI succeeded, with a median response time of 4.0 seconds across 2 measured calls.

It costs from $48.06 per 1,000 requests, in US dollars with no subscription and no monthly minimum. You fund one USD wallet and each call draws it down. Some failed wallet-funded requests incur processing charges that we pass through at cost, with no markup; the error response shows the amount charged.

Enrich one company from a domain or a company name into Data Legion's premium firmographics: industry, size, founding year, office locations, stock tickers and social profiles, plus headcount, hiring, attrition, growth and turnover, workforce breakdowns by seniority, function and tenure, and monthly headcount history. The response is normalized JSON with the same envelope every AnyAPI endpoint returns, so parsing a second endpoint is a change of URL and nothing else.

Over the last 30 days, 100.0% of Company Enrichment datalegion calls through AnyAPI succeeded, with a median response time of 4.0 seconds across 2 measured calls. These are AnyAPI's own measurements of traffic through the gateway, recomputed continuously, not a published service-level target.

Yes. A new AnyAPI account starts with $0.10 of free balance and no card required, which covers 2 Company Enrichment Datalegion calls at $0.04806 each.

Send a POST request to https://api.getanyapi.com/v1/run/company_enrichment.datalegion with your AnyAPI key in an "Authorization: Bearer" header and the input as a JSON body. The same key and the same wallet work on every AnyAPI endpoint.

No. You add US dollars to one prepaid AnyAPI balance and each request draws it down. There is no monthly plan and no minimum, and the same balance pays for every AnyAPI endpoint.

Yes. Install @getanyapi/sdk from npm for TypeScript or getanyapi from pip for Python. Both call every AnyAPI endpoint with the same key, and any HTTP client works too.

Yes. An agent can connect to the AnyAPI MCP server at https://api.getanyapi.com/mcp, or create its own free-trial key with one unauthenticated POST to https://api.getanyapi.com/agent/signup and call this endpoint over HTTP.