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

# Find email

> Find a verified work email by lead ID, LinkedIn URL, or by name and domain. Billed only when a valid email is found.

<Note>
  **Important:** All generated emails are automatically validated and ready for use. No additional email validation is required - the emails returned by this endpoint are already verified for deliverability.
</Note>

## Use Case:

Reveal a work email for a lead from Preview, or find a verified email from a name and company domain.

## Pricing

This is a billable endpoint — you are charged only for each valid email found. If no email is found, the request is free.

<Tip>Your price decreases automatically as your lifetime spend grows. [Check your current tier and pricing →](https://beta.generect.com/settings/billing)</Tip>


## OpenAPI

````yaml post /api/v1/email/find/
openapi: 3.0.3
info:
  title: Generect API
  description: >-
    Welcome to the Generect API documentation. Here we will help you integrate
    and use our API.


    API base url: `https://api.generect.com` — every path below is relative to
    this host. Newer endpoints live under `/api/v1/...`, legacy endpoints under
    `/api/...`; use each path exactly as documented.

    Protocol: `HTTPS`


    # Authentication


    Get your API token from the Generect app settings and send it in the
    `Authorization` header with the required `Token` prefix.


    Example: `Authorization: Token xxxxxxxxx`


    # Rate limits


    You can request data depending on your data plan and account balance
    (default: 10000/month). Pricing depends on the operation and the number of
    results returned, and may increase with additional data flags. For exact
    pricing, see each endpoint's Pricing section or your billing settings:
    https://beta.generect.com/settings/billing


    # Note


    _Every endpoint must include the trailing `/`. Requests without the trailing
    slash may fail._
  version: 1.0.0
  contact: {}
servers:
  - url: https://api.generect.com
security:
  - apiKey: []
tags:
  - name: 1. Auth
    description: Login and get user info
  - name: 2. Transactions
    description: List of latest transactions in your account
  - name: 3. Leads
    description: Fetch information about leads by _link/name/ICP_.
  - name: 4. Companies
    description: Fetch information about companies by link/name/ICP.
  - name: 5. Preview
    description: Search masked database leads for preview and reveal workflows.
  - name: 6. Enrich
    description: Enrich leads and companies by internal or external identifiers.
  - name: 7. Email
    description: Find and validate email addresses.
  - name: 8. Accounts
    description: Account profile, usage, and transactions.
  - name: 9. Search
    description: Database and realtime lead, company, and company-lead search.
  - name: 10. Phone
    description: Find phone numbers for leads.
  - name: 11. Webhooks
    description: Register and manage async job notifications.
paths:
  /api/v1/email/find/:
    post:
      tags:
        - 7. Email
      summary: Find email
      description: >-
        Find a verified work email by lead ID, LinkedIn URL, or by name and
        domain. Billed only when a valid email is found.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              oneOf:
                - title: By Lead ID
                  type: object
                  required:
                    - lead_id
                  properties:
                    lead_id:
                      type: string
                      description: >-
                        Generect lead identifier from Search, Preview, or
                        Enrich.
                      example: ACwAAAE9bk0BxY7Qf2mN4pR8sT1vW3zA5cE6gH9
                - title: By LinkedIn URL
                  type: object
                  required:
                    - linkedin_url
                  properties:
                    linkedin_url:
                      type: string
                      description: Lead's LinkedIn profile URL.
                      example: https://www.linkedin.com/in/jordan-ellis
                - title: By Name and Domain
                  type: object
                  required:
                    - first_name
                    - last_name
                    - domain
                  properties:
                    first_name:
                      type: string
                      description: Lead's first name.
                      example: John
                    last_name:
                      type: string
                      description: Lead's last name.
                      example: Doe
                    domain:
                      type: string
                      description: Company domain used to generate the email pattern.
                      example: microsoft.com
            examples:
              By Lead ID:
                value:
                  lead_id: ACwAAAE9bk0BxY7Qf2mN4pR8sT1vW3zA5cE6gH9
              By LinkedIn URL:
                value:
                  linkedin_url: https://www.linkedin.com/in/jordan-ellis
              By name and domain:
                value:
                  first_name: Jordan
                  last_name: Ellis
                  domain: microsoft.com
      responses:
        '200':
          description: Email result
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmailFindResponse'
              examples:
                Found:
                  value:
                    data:
                      valid_email: jordan.ellis@microsoft.com
                      result: valid
                      catch_all: false
                      source: generect
                    meta:
                      amount_charged: 0.02
                Not found:
                  value:
                    data:
                      valid_email: null
                    meta:
                      amount_charged: 0
        '400':
          description: Validation error or insufficient balance.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                Validation error:
                  value:
                    status: error
                    status_code: 400
                    detail:
                      non_field_errors:
                        - >-
                          Provide one of: lead_id, linkedin_url, or
                          first_name+last_name+domain.
                Insufficient funds:
                  value:
                    status: error
                    status_code: 400
                    detail: Insufficient funds in the account.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
components:
  schemas:
    EmailFindResponse:
      type: object
      properties:
        data:
          type: object
          description: The email finder result. valid_email is null when no email is found.
          properties:
            lead_id:
              type: string
              description: Echoed back when the request was made by lead_id.
            valid_email:
              type: string
              nullable: true
              description: The found verified email, or null if none was found.
            result:
              type: string
              description: 'Outcome: valid, invalid, or unknown.'
            catch_all:
              type: boolean
              description: True if the domain is catch-all.
            source:
              type: string
              description: Where the email was resolved (e.g. generect, findymail, FORMAT).
            email_format:
              type: string
              description: Detected address pattern for the domain.
            mx_domain:
              type: string
              description: Mail exchanger domain.
        meta:
          $ref: '#/components/schemas/Meta'
    Error:
      type: object
      description: Standard error envelope returned for 4xx/5xx responses.
      properties:
        status:
          type: string
          example: error
        status_code:
          type: integer
          example: 400
        detail:
          description: >-
            Human-readable message (string) for most errors, or a field-level
            validation map ({ field: [messages] }) for 400 validation errors.
          example: Insufficient funds in the account.
    Meta:
      type: object
      description: Operation metadata returned in every data/meta response.
      required:
        - amount_charged
      properties:
        amount_charged:
          type: number
          description: >-
            Actual amount charged for this request in USD, computed from your
            pricing tier. 0 for free operations and for not-found results (No
            Data — No Charge).
        status:
          type: string
          description: Set to "error" when the operation finished with an error.
        error:
          type: string
          description: Error details; present only when the operation failed.
        time_cached:
          type: string
          format: date-time
          description: >-
            When the cached result set was originally collected (returned by
            database company search when results are served from a previous
            identical search).
  responses:
    Unauthorized:
      description: Missing or invalid API token.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            status: error
            status_code: 401
            detail: Authentication credentials were not provided.
    Forbidden:
      description: Authenticated, but the account/plan is not allowed to use this endpoint.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            status: error
            status_code: 403
            detail: You do not have permission to perform this action.
  securitySchemes:
    apiKey:
      type: apiKey
      in: header
      name: Authorization
      description: 'Use the required Token prefix. Example: Authorization: Token xxxxxxxxx'

````