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/.
'