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.
curl -H "ApiKey: $TRIGUNA_API_KEY" \
"https://api.triguna.ai/v1/people/profile\
?profile_id=rokafor\
&include_contact_info=true\
&include_network_info=true"
{
"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.
-
The title is nested. Read
experience[0].positions[0].title, notexperience[0].title. Reference → -
Dates are objects.
{ year, month, day, iso }with a partialisosuch as"2018-03". A strict date parser will throw. Reference → -
Sections are flag-gated. No
include_contact_info=true, nocontact_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.