Company API
Resolve a company URL into firmographics
One authenticated GET against /v1/companies/details. Identity,
headquarters and all locations, size, industries, specialities, page flags, and the last
funding round.
curl -H "ApiKey: $TRIGUNA_API_KEY" \
"https://api.triguna.ai/v1/companies/details\
?company_id=northwind\
&bypass_cache=false"
{
"company_id": "1035",
"public_identifier": "microsoft",
"company_name": "Microsoft",
"company_url": "https://www.microsoft.com",
"locations": { "headquarter": { "country": "us", "city": "Redmond" } },
"industries": [{ "id": "4", "name": "Software Development" }],
"staff_info": { "staff_count": 221000 },
"founded_on": { "year": 1975, "month": null, "day": null }
}
What the record carries
Identity
company_id, public_identifier, name, tagline, description, and
company_type.
Locations
A headquarters object plus every other location, with country as a lowercase two-letter code, so uppercase it before joining on ISO data.
Size and industry
Exact staff_count where available, a staff_range where not,
ordered industries[], and specialities[].
Funding
The last round: type, amount as a raw bigint, lowercase currency, announcement date, and lead investors.
Page flags
auto_generated, claimable, is_paid, and
is_showcase: quality signals worth gating on.
Related pages
showcase_pages[] and affiliated_companies[], sharing one trimmed
summary shape. Commonly empty.
Three things that catch parsers
Company records are simpler than person records, and every one of these is a naming trap rather than a structural one.
-
The slug, not the name.
company_idtakes the URL slug.Acme Corporationreturns 404 every time. Reference → -
specialities, notspecialties. The spelling is load-bearing, and a silentundefinedis the failure mode. Reference → -
Money is a raw bigint, currency is lowercase.
{ amount: 45000000, currency: "usd" }. Not cents, and not"USD". Reference →
Common questions
What identifier does the company API take?
The company URL slug, the path segment after /company/. A numeric company id also works. Despite the parameter being named company_id, in normal use it takes the slug, and passing a display name such as Acme Corporation returns 404 every time.
How do I get a reliable headcount?
staff_info.staff_count is the exact figure but is often null. staff_info.staff_range gives { start, end }, where end is null for open-ended top brackets. Fall back to the midpoint of the range, and record whether the number was exact or derived.
Is platform_url the company website?
No. platform_url is the company page on the source platform; company_url is the company own website. The naming runs opposite to intuition and this is the second most common company-endpoint bug after the slug trap.
Does the API return full funding history?
No. funding_data.last_funding_round returns the last round only: type, amount, announcement date, and lead investors. There is no per-round history in the response.
Store company records that age well
Refresh cadences, normalization, and the quality gate worth having.