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

# Start Reverse Email Bulk

> Starts person lookups from email addresses and returns a job to poll.



## OpenAPI

````yaml /openapi.json post /v1/reverse-email/bulk
openapi: 3.1.0
info:
  title: Sixtyfour API
  description: >-
    Intelligence API for people and companies: research agents that investigate,
    resolve identities, map relationships and surface risk signals.
  contact:
    name: Sixtyfour
    url: https://sixtyfour.ai/
    email: support@sixtyfour.ai
  license:
    name: Proprietary
  version: 1.0.0
servers:
  - url: https://api.sixtyfour.ai
    description: Production
security:
  - ApiKeyAuth: []
  - BearerAuth: []
tags:
  - name: Enrichment
    description: Find and enrich emails, phones, and LinkedIn for people and companies.
  - name: Search
    description: Run deep and filter searches over Sixtyfour's data.
  - name: Workflow
    description: Create, run, and manage enrichment workflows.
  - name: Workflow Schedules
    description: Create and manage recurring schedules for workflows.
  - name: Account
    description: Manage and inspect your account and credit balance.
  - name: Feedback
    description: >-
      Tell us a result was wrong, missing or outdated, and report problems with
      the API, the docs or a tool.
  - name: Intelligence
    description: Verify identity attributes such as age using high-tier OSINT research.
  - name: Atlas
    description: >-
      Start, continue and read Atlas investigations: attribution graph,
      workspace files, reports and exports.
paths:
  /v1/reverse-email/bulk:
    post:
      tags:
        - Jobs
      summary: Start Reverse Email Bulk
      description: Starts person lookups from email addresses and returns a job to poll.
      operationId: start_reverse_email_bulk_v1_reverse_email_bulk_post
      parameters:
        - name: Idempotency-Key
          in: header
          required: false
          schema:
            anyOf:
              - type: string
                minLength: 1
                maxLength: 255
              - type: 'null'
            description: >-
              - Scoped to organization + operation.

              - Same key + body: same job, no new charge, `Idempotent-Replayed:
              true`.

              - Different body: 409 `idempotency_key_reused`.

              - Uploads must match filename + contents.

              - Omit for no replay protection.

              - JSON replay lasts through the workflow retention window; CSV
              replay lasts 24 hours.
            title: Idempotency-Key
          description: >-
            - Scoped to organization + operation.

            - Same key + body: same job, no new charge, `Idempotent-Replayed:
            true`.

            - Different body: 409 `idempotency_key_reused`.

            - Uploads must match filename + contents.

            - Omit for no replay protection.

            - JSON replay lasts through the workflow retention window; CSV
            replay lasts 24 hours.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ReverseEmailBulkRequest'
            example:
              leads:
                - email: jane@example.com
      responses:
        '202':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Job'
              example:
                job_id: job_3f8b2c1e-9d4a-4c1b-8e2f-6a7b5c4d3e21
                status: running
                created_at: '2026-11-03T18:04:12Z'
                next_poll_after: 5
          headers:
            Location:
              schema:
                type: string
              description: URL to poll for this job.
            Retry-After:
              schema:
                type: integer
              description: Seconds before polling again.
            Idempotent-Replayed:
              schema:
                type: boolean
              description: True when this submission replays an existing job.
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicJobError'
          description: Bad Request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicJobError'
          description: Unauthorized
        '402':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicJobError'
          description: Payment Required
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicJobError'
          description: Forbidden
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicJobError'
          description: Not Found
        '409':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicJobError'
              example:
                detail: >-
                  This Idempotency-Key is already in use. Use a new key for a
                  new request.
                error_code: idempotency_key_reused
                request_id: enrich_3f8b2c1e-9d4a-4c1b-8e2f-6a7b5c4d3e21
                retryable: false
                param: null
          description: Conflict
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicJobValidationError'
          description: Unprocessable Entity
        '429':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicJobError'
          description: Too Many Requests
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicJobError'
          description: Internal Server Error
        '503':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicJobError'
          description: Service Unavailable
components:
  schemas:
    ReverseEmailBulkRequest:
      properties:
        leads:
          items:
            additionalProperties: true
            type: object
          type: array
          title: Leads
          description: List of leads with `email` to reverse-lookup in one request.
        webhook_url:
          anyOf:
            - type: string
              maxLength: 2048
              minLength: 1
              format: uri
            - type: 'null'
          title: Webhook Url
          description: >-
            HTTPS URL that receives the result when the job completes. Default:
            none.
      type: object
      required:
        - leads
      title: ReverseEmailBulkRequest
    Job:
      properties:
        job_id:
          type: string
          title: Job Id
          description: >-
            Job identifier, normally prefixed with `job_`. Store it exactly as
            returned. GET /v1/jobs/{job_id} also accepts IDs returned by
            unversioned endpoints.
        status:
          type: string
          enum:
            - queued
            - running
            - succeeded
            - failed
            - canceled
          title: Status
          description: >-
            `queued`: accepted and waiting to start. `running`: work is in
            progress. `succeeded`: work finished successfully. `failed`: work
            ended with an error. `canceled`: work was canceled. The last three
            states are terminal; stop polling.
        created_at:
          type: string
          format: date-time
          title: Created At
          description: UTC timestamp when the job was created, in ISO 8601 format.
        next_poll_after:
          anyOf:
            - type: integer
            - type: 'null'
          title: Next Poll After
          description: >-
            Seconds before polling again while queued or running; omitted for
            terminal states.
        progress:
          anyOf:
            - additionalProperties: true
              type: object
            - type: 'null'
          title: Progress
          description: >-
            Operation-specific progress while queued or running; omitted when
            unavailable.
        result:
          title: Result
          description: >-
            Successful output when available; bulk jobs may return download
            links.
        error:
          anyOf:
            - $ref: '#/components/schemas/JobError'
            - type: 'null'
          description: Failure details when available; omitted otherwise.
      type: object
      required:
        - job_id
        - status
        - created_at
      title: Job
      examples:
        - job_id: job_3f8b2c1e-9d4a-4c1b-8e2f-6a7b5c4d3e21
          status: running
          created_at: '2026-11-03T18:04:12Z'
          next_poll_after: 5
        - job_id: job_3f8b2c1e-9d4a-4c1b-8e2f-6a7b5c4d3e21
          status: succeeded
          created_at: '2026-11-03T18:04:12Z'
          result:
            structured_data:
              name: Saarth Shah
              title: CEO & Co-Founder
              company: Sixtyfour
              linkedin: https://www.linkedin.com/in/saarthshah
            notes: >-
              Confirmed current role from the LinkedIn profile and the company
              site.
            references:
              https://www.linkedin.com/in/saarthshah: LinkedIn profile with current title
            confidence_score: 9
    PublicJobError:
      properties:
        detail:
          type: string
          title: Detail
          description: Human-readable explanation of why the request failed.
        error_code:
          type: string
          title: Error Code
          description: >-
            Stable error code for handling the failure in code. Do not branch on
            the wording of `detail`.
        request_id:
          type: string
          title: Request Id
          description: >-
            Request identifier, equal to the X-Request-Id response header. Quote
            this value when contacting support.
        retryable:
          type: boolean
          title: Retryable
          description: >-
            If true, retrying the request can succeed without changing its
            inputs; respect Retry-After when present. If false, correct the
            request or resolve the reported condition before retrying.
        param:
          anyOf:
            - type: string
            - type: 'null'
          title: Param
          description: >-
            Dot-separated path to the parameter that caused the error, such as
            `body.lead` or `header.Idempotency-Key`. Null when the error is not
            tied to a parameter.
      type: object
      required:
        - detail
        - error_code
        - request_id
        - retryable
      title: PublicJobError
    PublicJobValidationError:
      properties:
        detail:
          type: string
          title: Detail
          description: Human-readable explanation of why the request failed.
        error_code:
          type: string
          title: Error Code
          description: >-
            Stable error code for handling the failure in code. Do not branch on
            the wording of `detail`.
        request_id:
          type: string
          title: Request Id
          description: >-
            Request identifier, equal to the X-Request-Id response header. Quote
            this value when contacting support.
        retryable:
          type: boolean
          title: Retryable
          description: >-
            If true, retrying the request can succeed without changing its
            inputs; respect Retry-After when present. If false, correct the
            request or resolve the reported condition before retrying.
        param:
          anyOf:
            - type: string
            - type: 'null'
          title: Param
          description: >-
            Dot-separated path to the parameter that caused the error, such as
            `body.lead` or `header.Idempotency-Key`. Null when the error is not
            tied to a parameter.
        errors:
          items:
            additionalProperties: true
            type: object
          type: array
          title: Errors
          description: >-
            Individual validation failures, each with a parameter location
            (`loc`), message (`msg`), and error type (`type`).
      type: object
      required:
        - detail
        - error_code
        - request_id
        - retryable
        - errors
      title: PublicJobValidationError
    JobError:
      properties:
        error_code:
          type: string
          title: Error Code
          description: Stable error code for identifying the job failure in code.
        detail:
          type: string
          title: Detail
          description: Human-readable explanation of the job failure.
      type: object
      required:
        - error_code
        - detail
      title: JobError
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: Your Sixtyfour API key.
    BearerAuth:
      type: http
      scheme: bearer
      description: >-
        An OAuth access token from `POST /oauth/token`, sent as `Authorization:
        Bearer <token>`. An API key sent as a bearer token is refused with 401.
        When both headers are sent, the bearer token is used.

````

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