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 GET endpoints. No SDK required, no dashboard step.
Auth
One custom ApiKey header. No OAuth flow, no session.
Response
JSON on success, plain text on error, documented status codes.
Provenance
source and fetched_at travel 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.

GET /v1/people/profile 200 OK
{
  "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"
}
GET /v1/companies/details 200 OK
{
  "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 /v1/people/profile
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 --stdio
MCP 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.md
Skill 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.

See full pricing →

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.

Talk to us

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.