Person API

Resolve a profile URL into a structured person record

One authenticated GET against /v1/people/profile. Identity, location, network counts, work history, education, skills, badges, verification, and, when you ask for it, contact details.

GET /v1/people/profile
curl -H "ApiKey: $TRIGUNA_API_KEY" \
  "https://api.triguna.ai/v1/people/profile\
?profile_id=rokafor\
&include_contact_info=true\
&include_network_info=true"
200 response (excerpt)
{
  "member_urn": "urn:li:member:251749025",
  "public_identifier": "williamhgates",
  "first_name": "Bill",
  "last_name": "Gates",
  "headline": "Chair, Gates Foundation",
  "location": { "city": "Seattle", "country_code": "US" },
  "experience": [ /* grouped by company */ ],
  "skills": ["Philanthropy", "Global Health"]
}

What the record carries

Identity

member_urn, public_identifier, names, headline, summary, industry, photo URLs, and profile_url.

Work history

experience[], grouped by company, with a nested positions[] array so a promotion reads as one employer and several roles.

Education and skills

education[] with degree and field of study, and skills[] as a plain array of strings.

Network and badges

Follower and connection counts, an optional custom action, and badges such as open_to_work and is_hiring. Requires a flag.

Generic sections

Certifications, courses, honors, languages, organizations, patents, projects, publications, test scores, and volunteering: all one shape, one parser.

Contact details

Email, websites, handles, and address when the sources hold them. Frequently null, so design for absence.

Three things that catch parsers

None of these are exotic. All three show up in the first day of an integration.

  1. The title is nested. Read experience[0].positions[0].title, not experience[0].title. Reference →
  2. Dates are objects. { year, month, day, iso } with a partial iso such as "2018-03". A strict date parser will throw. Reference →
  3. Sections are flag-gated. No include_contact_info=true, no contact_info. That is a missing parameter, not missing data. Reference →

Common questions

What identifier does the person API take?

A profile slug, the path segment after /in/ in a profile URL, with any query string, fragment, or trailing slash removed. Display names are not accepted and always return 404.

Where is the job title in a person record?

On experience[0].positions[0].title. The experience array is grouped by company and the title lives on the nested positions array, so experience[0].title is undefined for effectively every record.

Why is contact_info missing from my response?

It is gated behind the include_contact_info flag. The same applies to network_info (include_network_info) and verifications (get_verification_details). Omit the flag and the section comes back null or absent.

Which key should I store for a person?

member_urn. The public_identifier slug is user-editable and will break your joins when someone renames their profile.

Map a person record in an afternoon

The guide walks the whole path: slug in, stored row out.