Hunter Leads API

Manage leads stored in Hunter.

OpenAPI Specification

hunter-leads-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Hunter Account Leads API
  description: Hunter is an email finding and verification service that helps find professional email addresses associated with a domain and verify email deliverability. The API provides domain search, email finder, email verifier, email count, account information, leads management, leads lists, campaigns, discover, enrichment, and logo retrieval capabilities.
  version: 2.0.0
  termsOfService: https://hunter.io/terms
  contact:
    name: Hunter Support
    url: https://hunter.io/contact
    email: support@hunter.io
  license:
    name: Proprietary
    url: https://hunter.io/terms
servers:
- url: https://api.hunter.io/v2
  description: Hunter API v2 Production
security:
- apiKeyQuery: []
- apiKeyHeader: []
- bearerAuth: []
tags:
- name: Leads
  description: Manage leads stored in Hunter.
paths:
  /leads:
    get:
      operationId: listLeads
      summary: Hunter List Leads
      description: Returns all the leads saved in your account.
      tags:
      - Leads
      parameters:
      - name: limit
        in: query
        description: Maximum number of leads to return. Default is 20, max is 100.
        schema:
          type: integer
          default: 20
          maximum: 100
      - name: offset
        in: query
        description: Number of leads to skip for pagination.
        schema:
          type: integer
          default: 0
      - name: leads_list_id
        in: query
        description: Filter leads by list identifier.
        schema:
          type: integer
      - name: first_name
        in: query
        description: Filter by first name.
        schema:
          type: string
      - name: last_name
        in: query
        description: Filter by last name.
        schema:
          type: string
      - name: email
        in: query
        description: Filter by email address.
        schema:
          type: string
      - name: company
        in: query
        description: Filter by company name.
        schema:
          type: string
      - name: phone_number
        in: query
        description: Filter by phone number.
        schema:
          type: string
      - name: twitter
        in: query
        description: Filter by Twitter handle.
        schema:
          type: string
      responses:
        '200':
          description: Successful leads list response.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      leads:
                        type: array
                        items:
                          $ref: '#/components/schemas/Lead'
                  meta:
                    $ref: '#/components/schemas/PaginationMeta'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '429':
          $ref: '#/components/responses/TooManyRequests'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    post:
      operationId: createLead
      summary: Hunter Create Lead
      description: Creates a new lead in your Hunter account.
      tags:
      - Leads
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/LeadInput'
      responses:
        '201':
          description: Lead created successfully.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/Lead'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    put:
      operationId: upsertLead
      summary: Hunter Create or Update Lead
      description: Creates a new lead or updates an existing one if a lead with the same email address already exists in the specified list.
      tags:
      - Leads
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/LeadInput'
      responses:
        '200':
          description: Lead updated successfully.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/Lead'
        '201':
          description: Lead created successfully.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/Lead'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /leads/{id}:
    get:
      operationId: getLead
      summary: Hunter Get Lead
      description: Retrieves a single lead by its identifier.
      tags:
      - Leads
      parameters:
      - $ref: '#/components/parameters/LeadId'
      responses:
        '200':
          description: Successful lead retrieval.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/Lead'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    put:
      operationId: updateLead
      summary: Hunter Update Lead
      description: Updates an existing lead by its identifier.
      tags:
      - Leads
      parameters:
      - $ref: '#/components/parameters/LeadId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/LeadInput'
      responses:
        '200':
          description: Lead updated successfully.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/Lead'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    delete:
      operationId: deleteLead
      summary: Hunter Delete Lead
      description: Deletes a lead by its identifier.
      tags:
      - Leads
      parameters:
      - $ref: '#/components/parameters/LeadId'
      responses:
        '204':
          description: Lead deleted successfully.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
components:
  responses:
    TooManyRequests:
      description: Usage limit exceeded or rate limited.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Unauthorized:
      description: Invalid or missing API key.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    UnprocessableEntity:
      description: Valid request but resource creation or update failed.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    BadRequest:
      description: Invalid parameters or missing required fields.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    NotFound:
      description: Resource not found.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  schemas:
    PaginationMeta:
      type: object
      properties:
        results:
          type: integer
          description: Total number of results available.
          example: 10
        limit:
          type: integer
          description: Number of results per page.
          example: 10
        offset:
          type: integer
          description: Current offset position.
          example: 10
    Lead:
      type: object
      properties:
        id:
          type: integer
          description: Unique identifier for the lead.
          example: abc123
        email:
          type: string
          format: email
          description: Email address of the lead.
          example: user@example.com
        first_name:
          type:
          - string
          - 'null'
          description: First name of the lead.
          example: example_value
        last_name:
          type:
          - string
          - 'null'
          description: Last name of the lead.
          example: example_value
        position:
          type:
          - string
          - 'null'
          description: Job position or title.
          example: example_value
        company:
          type:
          - string
          - 'null'
          description: Company name.
          example: example_value
        company_industry:
          type:
          - string
          - 'null'
          description: Industry of the company.
          example: example_value
        company_size:
          type:
          - string
          - 'null'
          description: Size range of the company.
          example: example_value
        confidence_score:
          type:
          - integer
          - 'null'
          minimum: 0
          maximum: 100
          description: Confidence score for the lead email.
          example: example_value
        website:
          type:
          - string
          - 'null'
          description: Website URL associated with the lead.
          example: example_value
        country_code:
          type:
          - string
          - 'null'
          description: ISO 3166-1 alpha-2 country code.
          example: example_value
        linkedin_url:
          type:
          - string
          - 'null'
          description: LinkedIn profile URL.
          example: https://www.example.com
        phone_number:
          type:
          - string
          - 'null'
          description: Phone number.
          example: example_value
        twitter:
          type:
          - string
          - 'null'
          description: Twitter handle.
          example: example_value
        notes:
          type:
          - string
          - 'null'
          description: Free-text notes about the lead.
          example: example_value
        leads_list_id:
          type:
          - integer
          - 'null'
          description: Identifier of the leads list the lead belongs to.
          example: '500123'
        sync_status:
          type:
          - string
          - 'null'
          description: CRM synchronization status.
          example: example_value
        sending_status:
          type:
          - string
          - 'null'
          description: Email sending status.
          example: example_value
        verification:
          $ref: '#/components/schemas/VerificationStatus'
        last_activity_at:
          type:
          - string
          - 'null'
          format: date-time
          description: Timestamp of the last activity for this lead.
          example: '2026-01-15T10:30:00Z'
        last_contacted_at:
          type:
          - string
          - 'null'
          format: date-time
          description: Timestamp of the last contact with this lead.
          example: '2026-01-15T10:30:00Z'
        created_at:
          type: string
          format: date-time
          description: Timestamp when the lead was created.
          example: '2026-01-15T10:30:00Z'
    LeadInput:
      type: object
      properties:
        email:
          type: string
          format: email
          description: Email address of the lead.
          example: user@example.com
        first_name:
          type: string
          description: First name of the lead.
          example: example_value
        last_name:
          type: string
          description: Last name of the lead.
          example: example_value
        position:
          type: string
          description: Job position or title.
          example: example_value
        company:
          type: string
          description: Company name.
          example: example_value
        company_industry:
          type: string
          description: Industry of the company.
          example: example_value
        company_size:
          type: string
          description: Size range of the company.
          example: example_value
        confidence_score:
          type: integer
          minimum: 0
          maximum: 100
          description: Confidence score for the lead email.
          example: 10
        website:
          type: string
          format: uri
          description: Website URL associated with the lead.
          example: https://www.example.com
        country_code:
          type: string
          description: ISO 3166-1 alpha-2 country code.
          example: example_value
        linkedin_url:
          type: string
          format: uri
          description: LinkedIn profile URL.
          example: https://www.example.com
        phone_number:
          type: string
          description: Phone number.
          example: example_value
        twitter:
          type: string
          description: Twitter handle.
          example: example_value
        notes:
          type: string
          description: Free-text notes about the lead.
          example: example_value
        leads_list_id:
          type: integer
          description: Identifier of the leads list to add the lead to.
          example: '500123'
    VerificationStatus:
      type: object
      properties:
        date:
          type:
          - string
          - 'null'
          format: date
          description: Date the verification was performed.
          example: '2026-01-15'
        status:
          type:
          - string
          - 'null'
          enum:
          - valid
          - invalid
          - accept_all
          - webmail
          - disposable
          - unknown
          - null
          description: The verification status.
          example: valid
    Error:
      type: object
      properties:
        errors:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                description: Error identifier code.
              code:
                type: integer
                description: HTTP status code.
              details:
                type: string
                description: Human-readable error message.
          example: []
  parameters:
    LeadId:
      name: id
      in: path
      required: true
      description: The unique identifier of the lead.
      schema:
        type: integer
  securitySchemes:
    apiKeyQuery:
      type: apiKey
      in: query
      name: api_key
      description: API key passed as a query parameter.
    apiKeyHeader:
      type: apiKey
      in: header
      name: X-API-KEY
      description: API key passed via the X-API-KEY header.
    bearerAuth:
      type: http
      scheme: bearer
      description: API key passed as a Bearer token in the Authorization header.