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

# Research a single contact

> Research one contact by searchResultId from contact search results or Contact enrich



## OpenAPI

````yaml /v2-openapi.json post /contacts/research/single
openapi: 3.0.0
info:
  title: Seamless API
  description: >-
    Search and research Seamless.AI contacts and companies, and work with the
    records saved to your organization. Authentication, rate limits, and credits
    are covered at https://docs.seamless.ai.


    Public API v2 is in beta. Every v2 endpoint returns 403 until Seamless
    enables v2 for your organization; contact your Account Executive or support
    for access.


    [Privacy Policy](https://seamless.ai/policies/privacy-policy)
  version: 1.0.0
  termsOfService: https://seamless.ai/policies/terms-of-use
servers:
  - url: https://api.seamless.ai/api/client/v2
    description: Seamless API
security: []
tags: []
paths:
  /contacts/research/single:
    post:
      tags:
        - Contact Research
      summary: Research a single contact
      description: >-
        Research one contact by searchResultId from contact search results or
        Contact enrich
      operationId: researchSingleContact
      requestBody:
        required: true
        content:
          application/json:
            examples:
              searchResultId:
                summary: Contact research via searchResultId
                value:
                  searchResultId: 708dbb34-3849-3c06-abd1-238b9a0295b3
              contact:
                summary: Contact research via contact
                value:
                  contact:
                    contactName: John Doe
                    companyName: Acme Corp
              jobChange:
                summary: Contact research with job change
                value:
                  isJobChange: true
                  contact:
                    contactName: Jane Doe
                    companyName: Acme Corp
                    title: Software Engineer
            schema:
              type: object
              properties:
                searchResultId:
                  type: string
                  description: >-
                    A search result ID obtained from a prior /search/contacts
                    call. Provide either searchResultId or contact, not both.
                    Consumes one credit.
                  example: 11ad7a1c-9a63-30e0-a1de-cd9a766805ca
                contact:
                  allOf:
                    - type: object
                      properties:
                        contactName:
                          type: string
                          description: >-
                            Full name of the contact to research. Required when
                            using companyName or domain for identification.
                          example: John Doe
                        companyName:
                          type: string
                          description: >-
                            Name of the company the contact is associated with.
                            Use together with contactName.
                          example: Acme Corp
                        title:
                          type: string
                          description: >-
                            Job title of the contact. Used alongside contactName
                            and companyName when isJobChange is true to match
                            the correct job change record.
                          example: Software Engineer
                        domain:
                          type: string
                          description: >-
                            Company website domain. Use as an alternative to
                            companyName together with contactName.
                          example: acme.com
                        email:
                          type: string
                          description: >-
                            Email address of the contact. Can be used as a
                            standalone identifier without contactName or
                            companyName.
                          example: john.doe@acme.com
                        liProfileUrl:
                          type: string
                          description: >-
                            LinkedIn public profile URL. Can be used as a
                            standalone identifier.
                          example: https://www.linkedin.com/in/johndoe
                        liSalesNavUrl:
                          type: string
                          description: >-
                            LinkedIn Sales Navigator profile URL. Can be used as
                            a standalone identifier.
                          example: https://www.linkedin.com/sales/lead/ACoAAA...
                        liRecruiterUrl:
                          type: string
                          description: >-
                            LinkedIn Recruiter profile URL. Can be used as a
                            standalone identifier.
                          example: >-
                            https://www.linkedin.com/talent/search/profile/AEMAA...
                  description: >
                    Contact enrich request. Provide either searchResultId or
                    contact, not both. Must include one of the following
                    combinations:

                    - contactName and companyName (optionally include title when
                    using isJobChange)

                    - contactName and domain

                    - email

                    - liProfileUrl

                    - liSalesNavUrl

                    - liRecruiterUrl
                isJobChange:
                  type: boolean
                  description: >-
                    When set to true, triggers a job change research for the
                    provided contact. Must be used together with contact; cannot
                    be used with searchResultId.
                  default: false
                  example: false
                listIds:
                  type: array
                  description: >
                    IDs of the contact lists to add the newly saved contact to.
                    A contact that was already researched is not saved again, so
                    it is not added to the lists.

                    The lists must already belong to the authenticated user; an
                    unknown ID fails the research request, which reports the
                    error when you poll for it.
                  maxItems: 50
                  items:
                    type: integer
                  example:
                    - 1234
                    - 5678
                skipDeduplicationCheck:
                  type: boolean
                  description: >-
                    When true, research will not check for duplicate records
                    that you already researched recently, and perform a research
                    (which can result in credit usage)
                  default: false
      responses:
        '202':
          description: The request ID for research
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    description: >-
                      Indicates whether the research request was accepted
                      successfully.
                    example: true
                  requestId:
                    type: string
                    description: >-
                      The request ID for the contact research request. Use it to
                      poll for results via /contacts/research/poll.
                    example: 6Ei5iKuSHzJXvqjVPWiZ_
        '400':
          description: >-
            Neither or both of searchResultId and contact provided, or the
            contact is missing required properties
          content:
            application/json:
              schema:
                type: object
                required:
                  - msg
                properties:
                  msg:
                    description: A human readable error message
                    type: string
                  code:
                    description: Machine-readable error code, when one applies
                    type: string
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                required:
                  - msg
                properties:
                  msg:
                    description: A human readable error message
                    type: string
                  code:
                    description: Machine-readable error code, when one applies
                    type: string
        '422':
          description: Insufficient credits or missing license
          content:
            application/json:
              schema:
                description: Insufficient credits or missing license
                type: object
                properties:
                  msg:
                    type: string
                  code:
                    type: string
                  data:
                    type: object
                    properties:
                      productCategory:
                        type: string
                      additionalCreditsNeeded:
                        type: integer
        '500':
          description: Unexpected error
          content:
            application/json:
              schema:
                type: object
                required:
                  - msg
                properties:
                  msg:
                    description: A human readable error message
                    type: string
                  code:
                    description: Machine-readable error code, when one applies
                    type: string
      security:
        - OAuth2:
            - publicAPI.v2.all
        - ApiKeyAuth: []
components:
  securitySchemes:
    OAuth2:
      type: oauth2
      flows:
        authorizationCode:
          authorizationUrl: https://login.seamless.ai/oauth/authorize
          tokenUrl: https://api.seamless.ai/api/client/v2/oauth/accessToken
          scopes:
            publicAPI.v2.all: Public API v2
    ApiKeyAuth:
      type: apiKey
      name: Token
      in: header
      description: API key passed via the Token header.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.