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

# Create bulk email enrichment job

> **Cost:** up to 10 credits per item (charged on completion for newly accessed found emails only)

Creates an asynchronous bulk person email enrichment job for up to 1,000 lookup items.
When `domain` is omitted for an item, current experience domains are tried in seniority order.
Processing happens asynchronously in the background. Use the status endpoint to monitor progress and retrieve the results download URL.



## OpenAPI

````yaml openapi/v1.json POST /people/email/bulk
openapi: 3.0.4
info:
  title: Company Enrich API
  description: >-
    The Company Enrich API provides programmatic access to a comprehensive
    database of company and person data for enrichment, search, and lead
    generation.


    ## Key Features


    - **Company Enrichment** — Enrich company profiles by domain, ID, or
    matching properties. Supports single lookups, batch requests, and bulk
    background jobs.

    - **Company Search** — Search and filter companies by industry, location,
    size, technology usage, keywords, and more. Supports page-based,
    cursor-based, and async export pagination.

    - **People Search** — Search for professionals by job title, company,
    location, and other criteria. Export results in CSV or JSON.

    - **Similar Companies** — Find companies similar to a given company based on
    shared attributes.

    - **Company Lists** — Create and manage saved lists of companies for
    organizing and exporting your data.


    ## Authentication


    All API requests require a Bearer token passed in the `Authorization`
    header:


    ```

    Authorization: Bearer YOUR_API_TOKEN

    ```


    You can generate API tokens from your
    [dashboard](https://companyenrich.com/dashboard).


    ## Credits


    Most API calls consume credits. The credit cost for each endpoint is
    documented in its description. You can check your remaining credit balance
    using the User endpoint.


    ## Rate Limiting


    The global API limiter allows **500 requests per minute** per IP address.
    Authenticated API routes also use a per-user route limiter based on plan
    capabilities.

    Supplementary lookup endpoints (such as keyword/technology/industry
    autocompletes) use a separate per-user route-level bucket.
  termsOfService: https://companyenrich.com/terms-and-conditions
  contact:
    url: https://companyenrich.com/
    email: support@companyenrich.com
  version: 1.0.0
servers:
  - url: https://api.companyenrich.com
security:
  - Bearer: []
tags:
  - name: Company / Enrichment
    description: >-
      Enrich company data by domain, properties, or in batch. Get company
      details by ID.
  - name: Company / Bulk Enrichment
    description: >-
      Create and manage asynchronous bulk enrichment jobs for large domain
      lists.
  - name: Company / Search
    description: Search companies by filters with pagination and cursor scrolling.
  - name: Company / Export
    description: Create and manage asynchronous company search export jobs.
  - name: Company / Similar
    description: Find companies similar to a given company by domain or ID.
  - name: People / Search
    description: >-
      Search people by various criteria with page-based or cursor-based
      pagination.
  - name: People / Enrichment
    description: >-
      Resolve work email addresses for individual people in realtime or
      background jobs.
  - name: People / Export
    description: Create and manage asynchronous people search export jobs.
  - name: Jobs
    description: >-
      Endpoints for listing and monitoring background processing jobs such as
      bulk enrichments and async exports.
  - name: Company / Lists
    description: Endpoints for creating and managing company lists and export lists.
  - name: Geo
    description: >-
      Endpoints for looking up geographic data including regions, countries,
      states, and cities.
  - name: Industries
    description: >-
      Endpoints for listing available industry classifications used in company
      search filters.
  - name: Keywords
    description: Endpoints for looking up keywords used in company search filters.
  - name: Technologies
    description: Endpoints for looking up technologies used in company search filters.
  - name: User
    description: >-
      Endpoints for retrieving information about the authenticated user,
      including credit balance and account details.
  - name: Positions
    description: >-
      Endpoints for looking up job positions and titles used in people search
      filters.
paths:
  /people/email/bulk:
    post:
      tags:
        - People / Enrichment
      summary: Create bulk email enrichment job
      description: >-
        **Cost:** up to 10 credits per item (charged on completion for newly
        accessed found emails only)


        Creates an asynchronous bulk person email enrichment job for up to 1,000
        lookup items.

        When `domain` is omitted for an item, current experience domains are
        tried in seniority order.

        Processing happens asynchronously in the background. Use the status
        endpoint to monitor progress and retrieve the results download URL.
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BulkPersonEmailEnrichmentRequest'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BulkPersonEmailEnrichmentResponse'
        '400':
          description: Bad Request
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '402':
          description: Payment Required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '422':
          description: Unprocessable Entity
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/HttpValidationProblemDetails'
        '429':
          description: Too Many Requests
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
components:
  schemas:
    BulkPersonEmailEnrichmentRequest:
      required:
        - items
      type: object
      properties:
        items:
          maxItems: 1000
          minItems: 1
          type: array
          items:
            $ref: '#/components/schemas/BulkPersonEmailEnrichmentItemRequest'
          description: >-
            A list of person email enrichment lookups. Up to 1,000 items can be
            provided.
        webhook_url:
          maxLength: 2048
          type: string
          description: >-
            The webhook URL to receive the notification when processing
            completes.
          format: uri
          nullable: true
    BulkPersonEmailEnrichmentResponse:
      type: object
      properties:
        job_id:
          type: string
          description: Unique identifier for the bulk person email enrichment job.
          format: uuid
        status:
          $ref: '#/components/schemas/JobStatus'
        total_requests:
          type: integer
          description: Number of lookup items queued in the job.
          format: int32
        estimated_credits:
          type: integer
          description: Estimated maximum credit cost for the job.
          format: int32
    ProblemDetails:
      type: object
      properties:
        type:
          type: string
          nullable: true
        title:
          type: string
          nullable: true
        status:
          type: integer
          format: int32
          nullable: true
        detail:
          type: string
          nullable: true
        instance:
          type: string
          nullable: true
    HttpValidationProblemDetails:
      type: object
      properties:
        type:
          type: string
          nullable: true
        title:
          type: string
          nullable: true
        status:
          type: integer
          format: int32
          nullable: true
        detail:
          type: string
          nullable: true
        instance:
          type: string
          nullable: true
        errors:
          type: object
          additionalProperties:
            type: array
            items:
              type: string
    BulkPersonEmailEnrichmentItemRequest:
      required:
        - person_id
      type: object
      properties:
        person_id:
          maximum: 9223372036854776000
          minimum: 1
          type: integer
          description: The CompanyEnrich person ID to enrich.
          format: int64
        domain:
          maxLength: 1024
          type: string
          description: >-
            Optional company domain to resolve the email address on. If omitted,
            current experience domains are tried in seniority order.
          nullable: true
    JobStatus:
      enum:
        - pending
        - processing
        - completing
        - completed
        - failed
      description: >-
        Current status of the job (pending, processing, completing, completed,
        failed).
  securitySchemes:
    Bearer:
      type: apiKey
      description: >-
        API Token used for authentication. Example: "Authorization: Bearer
        {token}"
      name: Authorization
      in: header
      x-bearer-format: bearer

````

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