API reference
Enrich a company
Return the full company record — firmographics, location, size and history.
Beta
POST/api/v1/public/company/enrich
One credit on a successful match. A miss answers 200 with matched:false and charges nothing — it is an outcome, not an error. Send an Idempotency-Key header and a retried request replays the original response instead of re-executing, so a timeout cannot double-charge you.
Parameters
| Name | Type | Description | |
|---|---|---|---|
| domain | string | Required | A registrable domain, normalised as for /match. |
Returns
| Field | Type | Description |
|---|---|---|
| matched | boolean | Whether a company was found. |
| company.domain | string | Canonical registrable domain. |
| company.name | string | Canonical company name. |
| company.website_url | string | null | Primary website. |
| company.description | string | null | Company description. |
| company.industry | string | null | Canonical industry label where we resolved one, otherwise the raw spelling. |
| company.employee_count | number | null | Current headcount estimate. |
| company.revenue_range | string | null | A band rather than a figure. We publish what the data supports; an exact number would imply a precision we do not have. |
| company.ownership_type | string | null | Public, private, and so on. |
| company.year_founded | number | null | Year founded. |
| company.specialties | string[] | Self-described specialties. |
| company.hq_country | string | null | Headquarters country. |
| company.hq_city | string | null | Headquarters city. |
| company.last_updated | string | ISO-8601. When the graph last changed this record — the freshness signal to decide staleness against. Carries provenance. |
| credits_charged | number | 1 on a match, 0 on a miss. |
| credits_remaining | number | Your balance after this call. |
Example
bash
curl -X POST https://api.truepoint.in/api/v1/public/company/enrich \
-H "Authorization: Bearer $TRUEPOINT_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: 8f2a1c40-1f3e-4d9b-9a77-5f0c2e9b1a34" \
-d '{"domain":"acme.com"}'json
{
"matched": true,
"company": {
"domain": "acme.com",
"name": "Acme",
"website_url": "https://acme.com",
"description": "Industrial supplies since 1948.",
"industry": "Software",
"employee_count": 312,
"revenue_range": "$10M–$50M",
"ownership_type": "private",
"year_founded": 1948,
"specialties": ["logistics", "fulfilment"],
"hq_country": "IN",
"hq_city": "Pune",
"last_updated": "2026-08-11T09:14:22.000Z"
},
"credits_charged": 1,
"credits_remaining": 4821
}Errors
| Status | Type | Meaning |
|---|---|---|
| 422 | validation_error | The request failed validation — a missing identifier, or a value we could not parse. 422 rather than 400: the request was well-formed, its contents were not. |
| 401 | invalid_token | Missing, malformed, unknown or revoked API key. All four answer identically on purpose — the endpoint must not confirm which keys exist. |
| 403 | insufficient_scope | The key is valid but was not minted with the scope this endpoint requires. |
| 402 | insufficient_credits | The balance cannot cover this call. Nothing was charged and nothing was returned. Carries `balance` and `required`. |
| 429 | rate_limited | Too many requests for this key. Carries `retryAfterSeconds`. Retries are safe and are not billed. |
| 500 | internal | Something failed on our side. Nothing was charged. Retry with backoff. |