person_id used across every people endpoint.
Data categories
- Profile. Name, tagline, about, location, profile picture, LinkedIn follower and connection counts.
- Career history.
experience[]: companies, titles, tenure, and progression (is_current,job_order). - Education.
education[]: institutions, degrees, and fields of study. - Skills & attributes. Skills, languages, seniority, years of experience, education level.
- Signals. Talent signals for the person, from Get person talent signals.
- Social links. LinkedIn, Twitter and GitHub URLs, plus
linkedin_num_idandlinkedin_urn.
Highlights
Thehighlights array flags high-signal attributes for evaluating a person, especially founders. Documented values include:
prior_exit. Founded or was part of a company with a successful exit.serial_founder. Founded more than one company.prior_vc_backed_founder. Previously founded a venture-backed company.prior_vc_backed_experience. Worked at a venture-backed company.
Example (trimmed)
Endpoints
How to use the API
Start with what you have- LinkedIn URL or identifier → Find person ID → take the
person_id(free, up to 50 at once), or Enrich person when you want the profile fetched for someone Specter may not hold yet. - Email → Enrich person by email.
- Name → Search entities by name → take the
idof a match in thepeoplegroup (free; it’s theperson_id).
- Full profile → Get person by ID.
- Verified email → Get person email.
- Talent signals → Get person talent signals. The person’s whole signal history, newest first, each entry carrying the signal detail and the embedded profile. Bound it with
signal_date_after/signal_date_before. - Investor interest in the person → interest signals are served as a feed, not per person: Get investor-interest signals by date, where Talent-type signals carry the
person_idinentity_id. - Current employer → take
company_idfrom the currentexperience[]entry (is_current: true) → Get company by ID (the profile carries the current company’s name, not a top-level ID).
Notes
- Most fields are nullable; only core identity (
person_id, name, LinkedIn URL) is guaranteed. - The by-email endpoints return the full person record, the same object as Get person by ID, plus the resolved email and a
scorefrom 1–10; 7 or higher is a reliable match. Roles live inexperience[], each with its owncompany_id; there is no top-levelcompany_id. No match returns204. - Bulk lookups omit unknown identifiers; bulk enrich returns a found/queued status per row, and only found rows are charged.
- Get person talent signals paginates at 50 per page and is charged per signal returned; a known person with no signals returns
200with an empty array, an unknown one404. - Enriching an unknown person queues them for sourcing; retry the lookup shortly after.