> ## Documentation Index
> Fetch the complete documentation index at: https://api.tryspecter.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Enrich person

> Look up and enrich a person by a known LinkedIn identifier - URL, vanity ID, numeric ID, or URN. Returns the most current professional profile - career history, education, skills, languages, and social presence.

<Note> Costs 1 credit per person returned. </Note>

## What you need

One LinkedIn identifier for the person: their profile URL, vanity ID, numeric ID, or URN. Supply exactly one per request. You don't need a Specter person ID; if you already have one, call [Get person by ID](/api-reference/people/get-person-by-id) directly.

## Behaviour

- Returns a single person object when matched.
- If the person isn't in the dataset yet, returns `202` and queues them for enrichment; usually available within 24 hours.
- `linkedin_num_id` and `linkedin_urn` lookups only match existing records; they don't trigger enrichment yet.

## What you do next

- **Reach out.** The profile doesn't include a contactable address; get one with [Get person email](/api-reference/people/get-person-email).




## OpenAPI

````yaml /api-ref/bundle_api.yaml post /people
openapi: 3.0.0
info:
  title: Specter API
  termsOfService: https://tryspecter.com/terms/
  contact:
    name: API support
    email: api-support@tryspecter.com
  version: 1.0.0
servers:
  - description: Production
    url: https://app.tryspecter.com/api/v1
security:
  - ApiKeyAuth: []
tags:
  - name: Enrich
    description: >
      Look up a company, person, or investor and, if Specter does not already
      hold it, fetch it on demand. Includes email-based person enrichment.
  - name: Search
    description: |
      Find records across every product from a single plain-English query.
  - name: Companies
    description: >
      Company profiles, funding, headcount, traction, the per-company signals
      and sub-resources attached to a single company, and identifier resolution.
  - name: People
    description: >
      Specter people records: profile data, contact details, and per-person
      lookups for a known person ID.
  - name: Investors
    description: >
      Specter investor records: profile, activity, targeting, funds, portfolio
      companies, and the funding rounds they have participated in.
  - name: Transactions
    description: |
      Transaction detail by ID: funding rounds, acquisitions, and IPOs.
  - name: News Signals
    description: |
      Company-level news signals: by ID, and for a saved list or company search.
  - name: Revenue Signals
    description: >
      Revenue and profitability signals: by ID, by date, and for a saved list or
      company search.
  - name: Talent Signals
    description: |
      Talent signals: by ID and in bulk by ID.
  - name: Investor Interest Signals
    description: |
      Investor interest signals: by ID and in bulk by ID.
  - name: Company Lists
    description: |
      Create, query, and maintain lists of companies, including their results.
  - name: Investor Lists
    description: |
      Create, query, and maintain lists of investors, including their results.
  - name: People Lists
    description: |
      Create, query, and maintain lists of people, including their results.
  - name: Saved Searches
    description: |
      List and delete searches saved via tryspecter.com.
  - name: Company Saved Searches
    description: |
      Details and results for saved company searches.
  - name: People Saved Searches
    description: |
      Details and results for saved people searches.
  - name: Investor Saved Searches
    description: |
      Details and results for saved investor searches.
  - name: Talent Signals Saved Searches
    description: |
      Details and results for saved Talent Signals searches.
  - name: Investor Interest Saved Searches
    description: |
      Details and results for saved Investor Interest Signals searches.
  - name: Network
    description: >
      Your team's LinkedIn network: the people and companies your teammates are
      connected to, and your reach into a given company.
  - name: Account
    description: >
      Organisation-level resources: your team's members, API call logs, and
      credit balance.
paths:
  /people:
    post:
      tags:
        - Enrich
      summary: Enrich person
      description: >
        Look up and enrich a person by a known LinkedIn identifier - URL, vanity
        ID, numeric ID, or URN. Returns the most current professional profile -
        career history, education, skills, languages, and social presence.


        <Note> Costs 1 credit per person returned. </Note>


        ## What you need


        One LinkedIn identifier for the person: their profile URL, vanity ID,
        numeric ID, or URN. Supply exactly one per request. You don't need a
        Specter person ID; if you already have one, call [Get person by
        ID](/api-reference/people/get-person-by-id) directly.


        ## Behaviour


        - Returns a single person object when matched.

        - If the person isn't in the dataset yet, returns `202` and queues them
        for enrichment; usually available within 24 hours.

        - `linkedin_num_id` and `linkedin_urn` lookups only match existing
        records; they don't trigger enrichment yet.


        ## What you do next


        - **Reach out.** The profile doesn't include a contactable address; get
        one with [Get person email](/api-reference/people/get-person-email).
      requestBody:
        description: >
          Supply exactly one identifier. Providing more than one returns a
          validation error.
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                linkedin_url:
                  description: >
                    The person's LinkedIn profile URL. Accepts `http`/`https`,
                    with or without `www`.
                  type: string
                linkedin_id:
                  description: >
                    The person's LinkedIn vanity ID - the slug at the end of
                    their profile URL (e.g. `john-doe-123abc` in
                    `linkedin.com/in/john-doe-123abc`).
                  type: string
                linkedin_num_id:
                  description: The person's LinkedIn numeric member ID.
                  type: integer
                linkedin_urn:
                  description: >
                    The person's LinkedIn URN - a stable, non-changing reference
                    found in many datasets.
                  type: string
              additionalProperties: false
            example:
              linkedin_url: https://www.linkedin.com/in/patrickcollison
      responses:
        '200':
          $ref: '#/components/responses/PersonResponse'
        '202':
          description: >
            The person wasn't found in the dataset and has been queued for
            enrichment, usually completed within 24 hours.
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    description: A message about whether the value has been seen before.
                  context:
                    type: object
                    description: Information about the request and the enrichment.
                    properties:
                      id:
                        type: string
                        format: uuid
                        description: A UUID for the enrichment, usable to check its status.
                      status:
                        type: string
                        enum:
                          - PENDING
                          - QUEUED
                          - FAILED
                        description: How far along the enrichment is.
                      updatedAt:
                        type: string
                        description: When the status was last updated.
        '400':
          $ref: '#/components/responses/EnrichmentBadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
components:
  responses:
    PersonResponse:
      description: >
        A successful response containing the detailed professional profile of
        the requested person.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Person'
    EnrichmentBadRequest:
      description: Bad Request
      content:
        application/json:
          schema:
            type: object
            properties:
              errorCode:
                type: string
                description: The type of error.
              message:
                type: string
                description: >
                  A message with information about why the request was bad, will
                  be either a single message, or a path to the validation
                  issues.
          examples:
            no-request-body:
              summary: No request body
              value:
                errorCode: VALIDATION_ERROR
                message: Cannot get item with no request body.
            bad-linkedin-id:
              summary: Bad LinkedIn Id
              value:
                errorCode: VALIDATION_ERROR
                message: >
                  {"code":"invalid_type","expected":"number","received":"string","path":["linkedin_id"],"message":"Expected
                  number, received string"}
    Unauthorized:
      description: Unauthorized
      content:
        application/json:
          schema:
            oneOf:
              - $ref: '#/components/schemas/ApiKeyMissing'
              - $ref: '#/components/schemas/ApiKeyNotValid'
    Forbidden:
      description: Forbidden - There is no permissions to use the endpoint
      content:
        application/json:
          schema:
            type: object
            properties:
              errorCode:
                description: NOT_PERMITTED
                type: string
                example: NOT_PERMITTED
              message:
                type: string
                description: You do not have permission to access this resource.
                example: You do not have permission to access this resource.
            required:
              - errorCode
              - message
  schemas:
    Person:
      title: Person
      properties:
        person_id:
          description: >-
            The Specter person ID for this person, can be used in people
            endpoints.
          type: string
          example: per_34f8a8ad1f7497b83e821345
        talent_signal_ids:
          description: Talent signal IDs for this person, can be used in talent endpoints
          nullable: true
          items:
            type: string
            example: 02d32673-f1ab-40a1-93c5-a3a36a10d342
          type: array
          example:
            - 58323b85-153b-4d3d-8c0c-62dbf41198dc
        investor_signal_ids:
          nullable: true
          items:
            description: >
              Investor signal IDs for this person, will be usable in investor
              endpoints when available.
            type: string
            example: 0340bac8-bcee-46a2-94bf-cf77e0c34253
          type: array
        profile_picture_url:
          description: A url for a profile picture if there is one.
          nullable: true
          type: string
          example: >-
            https://peopledb-public.s3.eu-west-2.amazonaws.com/assets/profile-pictures/per_34f8a8ad1f7497b83e821345.jpg
        first_name:
          description: First name
          type: string
          example: Cosmin
        last_name:
          description: Last Name
          type: string
          example: Urdea
        full_name:
          description: Full name
          type: string
          example: Cosmin Urdea
        linkedin_url:
          description: URL for LinkedIn account.
          type: string
          example: https://www.linkedin.com/in/cosmin-urdea-0848973
        linkedin_num_id:
          description: The numeric ID for the LinkedIn account.
          type: number
          example: 11147428
        linkedin_urn:
          description: The URN from LinkedIn for the account.
          type: string
          example: ACoAAEULqT0BasKeraebkQhLfmIwxpxTlNThQjE
        twitter_url:
          description: URL for Twitter account.
          nullable: true
          type: string
          example: https://x.com/moissinac
        github_url:
          description: URL for Github account.
          nullable: true
          type: string
          example: https://github.com/sarahchen9776
        about:
          description: A description of the person.
          nullable: true
          type: string
          example: >-
            IT Software Consultant / Contractor 20+ years of experience in
            software development - Systems and Applications Architecture -
            Product Design / Management - Coach and mentorship Experience in
            various industries, but mostly in electronic payments. After a full
            carrier as a full stack developer and, later on, architect, I have
            decided to put my experience to use from a different perspective as
            Product Owner/Manager and it has been already 3 years and I am
            enjoying very much this new role.
        tagline:
          description: A shorter tagline for the person.
          nullable: true
          type: string
          example: Software Consultant / Contractor
        location:
          description: Where the person is located.
          nullable: true
          type: string
          example: Bucharest, București, Romania, Europe
        region:
          description: Main region where the person is located.
          nullable: true
          type: string
          example: Europe
        highlights:
          items:
            type: string
            example: prior_exit
          type: array
          description: |
            Type of highlight, the full list will be added shortly.
          example:
            - major_tech_experience
            - prior_vc_backed_experience
            - strong_technical_background
            - vc_backed_experience
        level_of_seniority:
          description: Top level of seniority the person has achieved.
          nullable: true
          type: string
          example: Senior Level
        years_of_experience:
          description: Years of experience the person has worked for.
          nullable: true
          type: number
          example: 21
        education_level:
          description: Top level of education that the person has.
          nullable: true
          type: string
          example: ''
        experience:
          type: array
          description: Companies that the person has worked for.
          items:
            $ref: '#/components/schemas/Experience'
        current_position_title:
          description: Title of the person's current position
          nullable: true
          type: string
          example: Senior Consultant Fintech & Digital Payment
        current_position_company_name:
          description: Name of the company where the person currently works.
          nullable: true
          type: string
          example: valantic (vormals mm1)
        current_position_company_website:
          description: Website for the company where the person currently works.
          nullable: true
          type: string
          example: mm1.com
        past_position_title:
          description: Title of the person's last position
          nullable: true
          type: string
          example: Product Owner (Contracted)
        past_position_company_name:
          description: Name of the company where the person last left.
          nullable: true
          type: string
          example: Riverty
        past_position_company_website:
          description: Website for the company where the person last left.
          nullable: true
          type: string
          example: riverty.com
        current_tenure:
          description: Length of time the person has been in their current job.
          nullable: true
          type: number
          example: 15
        average_tenure:
          description: Average length of time in a position.
          nullable: true
          type: number
          example: 22
        education:
          type: array
          description: Educational background for the person
          items:
            $ref: '#/components/schemas/Education'
        languages:
          description: Languages that the person speaks
          nullable: true
          type: array
          items:
            $ref: '#/components/schemas/Language'
          example:
            - name: English
              proficiency_level: Native Or Bilingual Proficiency
            - name: Mandarin Chinese
              proficiency_level: Limited Working Proficiency
        skills:
          items:
            type: string
            example: Machine Learning
          description: List of skills that the person has.
          type: array
          example:
            - API Development
            - Agentic AI
            - Agentic Orchestration
            - Algorithmic Trading
            - Algorithms
            - Apache Spark
            - C#
            - C++
            - CORS
            - Communication
        linkedin_followers:
          description: Number of followers the person has on LinkedIn.
          type: number
          example: 904
        linkedin_connections:
          description: Number of connections the person has on LinkedIn.
          type: number
          example: 500
        last_updated:
          description: |
            A date for when the person was last updated in Specter.
            Uses the format YYYY-MM-DD HH:MM:SS.
          type: string
          example: '2026-07-13 17:37:30'
      required:
        - last_updated
        - person_id
      additionalProperties: false
      type: object
    ApiKeyMissing:
      properties:
        errorCode:
          description: API_KEY_MISSING
          example: API_KEY_MISSING
          type: string
        message:
          description: No API Key was presented on the header X-API-KEY
          example: No API Key was presented on the header X-API-KEY
          type: string
    ApiKeyNotValid:
      properties:
        errorCode:
          description: API_KEY_NOT_VALID
          example: API_KEY_NOT_VALID
          type: string
        message:
          description: API key present, but not valid
          example: API key present, but not valid
          type: string
    Experience:
      properties:
        company_name:
          title: Experience.company_name
          description: The name of the company or organization
          type: string
          example: valantic (vormals mm1)
        company_id:
          title: Experience.company_id
          description: Unique identifier for the company in the system
          nullable: true
          type: string
          example: 6744b47c776432406530a72b
        domain:
          title: Experience.domain
          description: The company's website domain
          nullable: true
          type: string
          example: mm1.com
        linkedin_url:
          title: Experience.linkedin_url
          description: LinkedIn URL for the company
          nullable: true
          type: string
          example: https://www.linkedin.com/company/mm1
        description:
          title: Experience.description
          description: Details about the role, responsibilities, and achievements
          nullable: true
          type: string
          example: >-
            As an Implementation Engineer at valantic, I play a pivotal role in
            the technical execution of Stripe integration projects, ensuring
            precision, efficiency, and robust infrastructure in every
            implementation. Leveraging deep technical expertise and payments
            industry experience, I design and deploy custom payment solutions
            that enhance operational efficiency and customer satisfaction.
        company_size:
          title: Experience.company_size
          description: The size category of the company
          nullable: true
          type: string
          example: 51-200
        industry:
          $ref: '#/components/schemas/Industry'
        tech_verticals:
          $ref: '#/components/schemas/TechVertical'
        title:
          title: Experience.title
          description: Job title or position held
          type: string
          example: Senior Consultant Fintech & Digital Payment
        departments:
          anyOf:
            - items:
                title: Experience.departments.[]
                type: string
                example: Engineering
              title: Experience.departments.[]
              type: array
              example:
                - Senior Leadership
                - Engineering
            - title: Experience.departments
              nullable: true
          title: Experience.departments
          description: Departments or teams the person worked in
          example:
            - Finance
        start_date:
          title: Experience.start_date
          description: Start date of the position
          nullable: true
          type: string
          example: '2025-04-01'
        end_date:
          title: Experience.end_date
          description: End date of the position (null if current)
          nullable: true
          type: string
          example: '2025-03-01'
        location:
          title: Experience.location
          description: Location where the work was performed
          nullable: true
          type: string
          example: Stuttgart, Baden-Wurttemberg, Germany, Europe
        is_current:
          title: Experience.is_current
          description: Whether this is the person's current position
          type: boolean
          example: true
        founded_year:
          title: Experience.founded_year
          description: The year the company was founded
          nullable: true
          type: number
          example: 1997
        job_order:
          title: Experience.job_order
          description: >-
            Sequential order of this job in the person's career (higher numbers
            for more recent positions)
          type: number
          example: 13
      required:
        - company_name
        - linkedin_url
        - title
        - departments
        - start_date
        - is_current
        - job_order
      additionalProperties: false
      title: Experience
      type: object
    Education:
      properties:
        name:
          title: Education.name
          description: The name of the educational institution
          nullable: true
          type: string
          example: Stanford University
        linkedin_url:
          title: Education.linkedin_url
          description: LinkedIn URL for the educational institution
          nullable: true
          type: string
          example: https://www.linkedin.com/school/stanford-university
        field_of_study:
          title: Education.field_of_study
          description: The academic field or major area of study
          nullable: true
          type: string
          example: Computer Science (AI track) and Statistics
        degree_title:
          title: Education.degree_title
          description: The type of degree or qualification obtained
          nullable: true
          type: string
          example: Bachelor of Science - BS
        description:
          title: Education.description
          description: >-
            Additional details about the educational experience, research focus,
            or achievements
          nullable: true
          type: string
          example: |-
            <p class="show-more-less-text__text--less">
                    Krieger School of Arts and Sciences<br>Bloomberg School of Public Health<br>(joint degree program)
            <!---->      </p>
        start_date:
          title: Education.start_date
          description: The start date of the educational program
          nullable: true
          type: string
          example: '2024-01-01'
        end_date:
          title: Education.end_date
          description: The end date or graduation date of the educational program
          nullable: true
          type: string
          example: '2028-01-01'
        location:
          title: Education.location
          description: The location of the educational institution
          nullable: true
          type: string
          example: Stanford, California, United States, North America
      required:
        - name
        - linkedin_url
        - field_of_study
        - degree_title
        - description
        - start_date
        - end_date
        - location
      additionalProperties: false
      title: Education
      type: object
    Language:
      properties:
        name:
          title: Language.name
          description: The name of the language
          nullable: true
          type: string
          example: Romanian
        proficiency_level:
          title: Language.proficiency_level
          description: The level of proficiency in the language
          nullable: true
          type: string
          example: Native Or Bilingual Proficiency
      required:
        - name
        - proficiency_level
      additionalProperties: false
      title: Language
      type: object
    Industry:
      type: array
      items:
        type: string
        example: Financial Services
      example:
        - Financial Services
        - Financial Technology
      description: >
        Classifies companies by their economic activity - the market they serve
        and the products or services they deliver.

        E.g: Construction, Utilities, Wholesale.

        There is one industry per company, with up to three levels.
      nullable: true
    TechVertical:
      type: array
      items:
        type: array
        items:
          type: string
          example: Blockchain, Crypto & Web3
      example:
        - - Blockchain, Crypto & Web3
          - Crypto Exchanges and Trading Infrastructure
      title: Experience.tech_verticals
      description: >
        Classifies companies by the technology domain they operate in - the
        technical capability or space they're building around.

        E.g: AI & Machine Learning, Cybersecurity, FinTech.

        There can be up to 5 tech verticals per company, with 2 levels each.
      nullable: true
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: X-API-Key

````