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

# Start Contacts Enrichment

> 

Enrich your contacts using this endpoint.

This endpoint enriches a list of contacts with contact details and Personalized AI insights:
- Verified email addresses.
- Verified phone numbers.
- Professional summary.
- Top problems.
- Internal strategic initiatives.
- Public appearances.

To enrich a contact, you can provide either their LinkedIn profile URL or a combination of their first name, last name, and company name/domain. You can process up to 1,000 contacts in a single request.

To associate your own internal identifiers with each lead, use the customData field. This data will be returned to you in the webhook response, allowing you to easily map the enrichment results back to your system.

To receive the results, you must provide a `webhookUrl`.



## OpenAPI

````yaml /api-reference/combined.json post /v1/leads/enrich
openapi: 3.1.0
info:
  title: Precept API
  description: >-
    Precept API provides powerful, programmatic access to our AI-driven B2B
    account research, company enrichment, and verified contact data
    capabilities. Use these endpoints to discover high-intent companies, map
    decision-makers, and run personalized enrichment pipelines directly
    integrating with your CRM, spreadsheets, or automated workflows like Make
    and n8n.
  version: 1.0.0
servers:
  - url: https://api.preceptai.co.uk
security:
  - bearerAuth: []
paths:
  /v1/leads/enrich:
    post:
      tags:
        - Leads
      summary: Start Contacts Enrichment
      description: >-


        Enrich your contacts using this endpoint.


        This endpoint enriches a list of contacts with contact details and
        Personalized AI insights:

        - Verified email addresses.

        - Verified phone numbers.

        - Professional summary.

        - Top problems.

        - Internal strategic initiatives.

        - Public appearances.


        To enrich a contact, you can provide either their LinkedIn profile URL
        or a combination of their first name, last name, and company
        name/domain. You can process up to 1,000 contacts in a single request.


        To associate your own internal identifiers with each lead, use the
        customData field. This data will be returned to you in the webhook
        response, allowing you to easily map the enrichment results back to your
        system.


        To receive the results, you must provide a `webhookUrl`.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/LeadsEnrichRequest'
            examples:
              default:
                summary: A default example for enriching a list of leads.
                value:
                  name: Q3 Lead List
                  webhookUrl: https://your-site.com/webhook
                  leads:
                    - linkedinUrl: https://linkedin.com/in/johndoe
                      enrichType:
                        - emails
                        - phones
                      customData:
                        contact_id: lead_123
                    - firstName: Jane
                      lastName: Smith
                      companyName: Precept AI
                      enrichType:
                        - emails
                      customData:
                        contact_id: lead_456
                  includeContactDetails: true
      responses:
        '202':
          description: >-
            Request accepted. The enrichment is in progress. The response will
            vary based on whether all leads could be processed.
          content:
            application/json:
              schema:
                oneOf:
                  - type: object
                    properties:
                      message:
                        type: string
                        example: >-
                          Enrichment job successfully created and batches are
                          being processed.
                      enrichment_id:
                        type: string
                        format: uuid
                  - type: object
                    properties:
                      message:
                        type: string
                        example: >-
                          Not enough credits to enrich all leads. 15 leads
                          enrichment in progress. Please upgrade your plan to
                          enrich all leads.
                      enrichment_id:
                        type: string
                        format: uuid
                      skipped_leads:
                        type: array
                        items:
                          $ref: '#/components/schemas/LeadInput'
        '400':
          description: Bad Request - Invalid input.
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  message:
                    type: string
              examples:
                default:
                  summary: Example of a 400 error response.
                  value:
                    error: Bad Request
                    message: Invalid input, please check the documentation.
        '402':
          description: Insufficient credits to process any leads.
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
              examples:
                default:
                  summary: Example of a 402 error response.
                  value:
                    message: >-
                      Not enough credits to start enrichment. Please upgrade
                      your plan to start enrichment.
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
              examples:
                default:
                  summary: Example of a 500 error response.
                  value:
                    error: Internal server error.
components:
  schemas:
    LeadsEnrichRequest:
      type: object
      required:
        - leads
      properties:
        name:
          type: string
          description: A readable name for your enrichment for searching on your dashboard.
        webhookUrl:
          type: string
          format: uri
          description: >-
            Optional. Your webhook URL to receive the result of the enrichment.
            If not provided, you can poll the GET /v1/jobs/{jobId} endpoint.
        leads:
          type: array
          description: >-
            An array of lead objects to enrich. Each object must contain either
            a `linkedinUrl` or a combination of `firstName`, `lastName`, and
            `companyName` or `companyDomain`.
          items:
            type: object
            required: []
            properties:
              linkedinUrl:
                type: string
                format: uri
                description: The LinkedIn profile URL of the contact.
              firstName:
                type: string
                description: The first name of the contact.
              lastName:
                type: string
                description: The last name of the contact.
              companyName:
                type: string
                description: The name of the company where the contact works.
              companyDomain:
                type: string
                description: The domain of the company.
              enrichType:
                type: array
                description: >-
                  The type of data to find. If not provided, both emails and
                  phones will be found.
                items:
                  type: string
                  enum:
                    - emails
                    - phones
              customData:
                type: object
                description: >-
                  An object for any custom data you want to associate with the
                  lead. This data will be returned with the enrichment results.
                  Maximum of 5 properties allowed, and values must be strings
                  with a maximum length of 100 characters.
        includeContactDetails:
          type: boolean
          description: >-
            Whether to include contact details (email and phone) for the
            enriched leads. If true, the webhook results will map back these
            fields as `enrichEmail` and `enrichPhone`.
        translate:
          type: boolean
          description: >-
            This should be set to true if the lead names are not in English.
            This is needed for non english names to ensure the most accurate
            contact details are returned. The names will be translated to
            English before enriching them.
    LeadInput:
      type: object
      properties:
        linkedinUrl:
          type: string
          format: uri
        firstName:
          type: string
        lastName:
          type: string
        companyName:
          type: string
        companyDomain:
          type: string
        enrichType:
          type: array
          items:
            type: string
            enum:
              - emails
              - phones
        customData:
          type: object
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer

````