DeBounce Bulk API

Bulk email list upload and status

OpenAPI Specification

debounce-bulk-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: DeBounce Email Validation Account Bulk API
  description: 'DeBounce is an email validation and verification REST API that helps developers ensure the deliverability and quality of email addresses at scale. The API supports real-time single email validation, asynchronous bulk list processing, and data enrichment via reverse email lookup. It detects disposable addresses, role-based emails, catch-all domains, syntax errors, and performs MX record and SMTP-level mailbox verification.

    '
  version: 1.0.0
  contact:
    name: DeBounce Support
    url: https://debounce.com/
  license:
    name: MIT
  termsOfService: https://debounce.com/terms/
servers:
- url: https://api.debounce.io
  description: DeBounce production API
security:
- ApiKeyQuery: []
tags:
- name: Bulk
  description: Bulk email list upload and status
paths:
  /v1/bulk/:
    post:
      tags:
      - Bulk
      summary: Upload Email List for Bulk Validation
      description: 'Uploads a list of email addresses for asynchronous bulk validation processing. Bulk validation operates asynchronously and a list ID is returned for polling status or receiving webhook notifications on completion.

        '
      operationId: bulkUpload
      parameters:
      - name: api
        in: query
        required: true
        schema:
          type: string
        description: Your DeBounce API key
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              required:
              - file
              properties:
                file:
                  type: string
                  format: binary
                  description: CSV or TXT file containing email addresses (one per line)
                name:
                  type: string
                  description: Optional name for the bulk list
          application/json:
            schema:
              type: object
              required:
              - emails
              properties:
                emails:
                  type: array
                  items:
                    type: string
                    format: email
                  description: Array of email addresses to validate
                name:
                  type: string
                  description: Optional name for the bulk list
      responses:
        '200':
          description: Bulk list upload accepted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BulkUploadResponse'
              example:
                success: '1'
                list_id: '12345'
                message: File uploaded successfully. Processing started.
        '401':
          description: Invalid API key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '402':
          description: Insufficient credits
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
  /v1/bulk/{list_id}:
    get:
      tags:
      - Bulk
      summary: Get Bulk Validation Status
      description: 'Retrieves the processing status and results of a previously submitted bulk email validation list. Poll this endpoint to check progress, or use webhooks for completion notifications.

        '
      operationId: getBulkStatus
      parameters:
      - name: api
        in: query
        required: true
        schema:
          type: string
        description: Your DeBounce API key
      - name: list_id
        in: path
        required: true
        schema:
          type: string
        description: The list ID returned from the bulk upload endpoint
      responses:
        '200':
          description: Bulk list status retrieved
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BulkStatusResponse'
              example:
                success: '1'
                list_id: '12345'
                status: completed
                total: 1000
                processed: 1000
                safe: 750
                invalid: 150
                risky: 75
                unknown: 25
                download_url: https://api.debounce.io/v1/bulk/12345/download
        '401':
          description: Invalid API key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: List not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
components:
  schemas:
    ErrorResponse:
      type: object
      properties:
        debounce:
          type: object
          properties:
            error:
              type: string
              description: Human-readable error message
            code:
              type: string
              description: Error code
        success:
          type: string
          enum:
          - '0'
          description: Always '0' for error responses
    BulkUploadResponse:
      type: object
      properties:
        success:
          type: string
          enum:
          - '0'
          - '1'
        list_id:
          type: string
          description: Unique identifier for the submitted bulk list
        message:
          type: string
          description: Status message
    BulkStatusResponse:
      type: object
      properties:
        success:
          type: string
          enum:
          - '0'
          - '1'
        list_id:
          type: string
          description: The bulk list identifier
        status:
          type: string
          enum:
          - pending
          - processing
          - completed
          - failed
          description: Current processing status of the bulk list
        total:
          type: integer
          description: Total number of email addresses in the list
        processed:
          type: integer
          description: Number of email addresses processed so far
        safe:
          type: integer
          description: Count of Safe to Send results
        invalid:
          type: integer
          description: Count of Invalid results
        risky:
          type: integer
          description: Count of Risky results
        unknown:
          type: integer
          description: Count of Unknown results
        download_url:
          type: string
          format: uri
          description: URL to download the completed validation results file
  securitySchemes:
    ApiKeyQuery:
      type: apiKey
      in: query
      name: api
      description: 'DeBounce API key passed as the ''api'' query parameter. Obtain your API key from the DeBounce account dashboard at https://app.debounce.io/.

        '