Person and company APIs in public beta
One request.
The whole record.
Send a profile URL or a company URL to the person API or company API and get a structured record assembled from multiple independent sources at request time, every field carrying its provenance. Read the quickstart.
$ curl api.triguna.ai/v1/people/profile
- Surface
- Two authenticated
GETendpoints. No SDK required, no dashboard step. - Auth
- One custom
ApiKeyheader. No OAuth flow, no session. - Response
- JSON on success, plain text on error, documented status codes.
- Provenance
sourceandfetched_attravel with every record.
One call, one complete record
Send a profile URL or a company URL and receive a normalized person or company record, with the retrieval time and origin attached to every field.
{
"member_urn": "urn:tg:member:8fj20dk1",
"public_identifier": "rokafor",
"first_name": "Rina",
"last_name": "Okafor",
"headline": "Staff Platform Engineer",
"location": { "city": "Lisbon", "country_code": "PT" },
"skills": ["Distributed Systems", "Go", "Postgres"],
"source": "source_a+source_c",
"fetched_at": "2026-07-31T09:14:02Z"
}
{
"company_id": "1035",
"public_identifier": "northwind",
"company_name": "Northwind Systems",
"company_url": "https://northwind.dev",
"industries": [{ "id": "4", "name": "Software Development" }],
"staff_info": { "staff_count": 184 },
"funding_data": { "last_funding_round": { "funding_type": "Series B" } },
"source": "source_b+source_c",
"fetched_at": "2026-07-31T09:14:03Z"
}
▸ agent resolve the person behind this profile URL, then their company tool triguna.people.profile { "profile_id": "rokafor" } ↳ urn:tg:member:8fj20dk1 Rina Okafor · Staff Platform Engineer source: source_a+source_c · fetched_at 2026-07-31T09:14:02Z tool triguna.companies.details { "company_id": "northwind" } ↳ 1035 Northwind Systems · 184 staff · Series B source: source_b+source_c · fetched_at 2026-07-31T09:14:03Z ▸ 2 records assembled. Provenance attached to every field.
Learn Person object reference Company object reference Identifier resolution
Built for engineers
Two authenticated GET endpoints, plain JSON responses, and predictable error semantics. No dashboard, no SDK to adopt.
GET https://api.triguna.ai/v1/people/profile
ApiKey: tg_live_••••••••
Accept: application/json
Idempotency-Key: 3f9c-1d77
profile_id=rokafor
include_contact_info=true
include_network_info=true
Auth
ApiKey: tg_live_••••••••
One header. No OAuth flow, no session, no dashboard step.
Surface
GET /v1/people/profile
GET /v1/companies/details
JSON on success, plain text on error, documented status codes.
▸ agent resolve this profile, then its company $ curl -H "ApiKey: $TRIGUNA_API_KEY" \ "https://api.triguna.ai/v1/people/profile?profile_id=rokafor" ↳ Rina Okafor · Staff Platform Engineer · northwind $ curl -H "ApiKey: $TRIGUNA_API_KEY" \ "https://api.triguna.ai/v1/companies/details?company_id=northwind" ↳ Northwind Systems · 184 staff · Series B ▸ source and fetched_at attached to every record
Learn Authentication Retries and Retry-After Identifiers and slugs
AI-native
Built to be called by agents, not just by people
The same records reach an agent runtime, a coding assistant, or your own service through one interface.
MCP server
Expose person and company retrieval as tools in any MCP-compatible runtime.
npx triguna mcp --stdioMCP server setup →
Agent skill file
Drop a skill definition into your repo so assistants call the API correctly first try.
curl -O triguna.ai/skill.mdSkill file →
Copy-paste recipes
Runnable requests for enrichment on signup, retries, and error handling.
curl -H "ApiKey: …" …Browse the guides →
Usage-based, per record
Pay for records you retrieve. Requests that resolve nothing are never billed.
Free
$0
Evaluation volume
For evaluation. One project, test keys included.
Starter
Usage-based
Per record retrieved
Both endpoints, one destination, email support.
Growth
Usage-based
Per record retrieved
Trace responses, MCP server, shared Slack channel.
Scale
Usage-based
Per record retrieved
Higher concurrency, priority resolution queue.
Enterprise
Committed volume, private deployment options, custom source ordering, and a contractual SLA.
Common questions
What does the Triguna enrichment API return?
Two GET endpoints. /v1/people/profile returns a person record: identity, location, network counts, work history, education, skills, badges, verification, and optional contact details. /v1/companies/details returns firmographics: identity, headquarters, size, industries, specialities, and funding. Every field is nullable, and every record reports which sources contributed and when it was retrieved.
How is a record assembled?
The URL or slug you send is canonicalized into a stable identifier, several independent sources are queried, and what matches is merged by documented precedence rules. No single source is load-bearing: if one is unavailable, the record still returns, with its provenance intact.
What does provenance mean on a field?
Each record carries source, an opaque and stable set of source identifiers, plus fetched_at, an ISO 8601 timestamp. Triguna claims provenance and retrieval time, not correctness. Log both alongside any decision the record drove.
Is there a bulk or search endpoint?
No. These two endpoints are the entire surface, so enriching N entities costs N calls. There is no search or list path: you resolve a known profile or company URL, you do not discover new ones.
Can an agent call Triguna directly?
Yes. The same retrieval is exposed as an MCP tool server, so an agent runtime calls triguna.people.profile and triguna.companies.details with the same keys and credits as the HTTP API.
Start with one request
Free credits on signup, no card required. Usage-based pricing after that.