ZeroBounce · OpenAPI Overlay 1.0.0
API Evangelist enhancements for the ZeroBounce Validation API
7 actions
7 updates
update
extends
../openapi/zerobounce-validation-api-openapi.yml
Generated by API Evangelist
Written by API Evangelist tooling for ZeroBounce's API. It is a proposal applied on top of the contract, not a document ZeroBounce publishes.
What the actions change
x-agent-costx-enum-valuesx-enum-sourcex-notex-api-evangelistx-idempotencyx-rate-limitsx-sandbox
Targets 6
$.info
$.paths['/api/validation/chatgpt-single-email-validation/'].post
$.paths['/api/validation/chatgpt-batch-validation/'].post
$.components.schemas.validateEmailResponse.properties.status
$.components.schemas.validateEmailResponse.properties.sub_status
$.components.schemas.validateEmailResponse
OpenAPI Overlay
overlay: 1.0.0
info:
title: API Evangelist enhancements for the ZeroBounce Validation API
version: 1.0.0
x-generated: '2026-08-13'
x-method: generated
x-source: openapi/zerobounce-validation-api-openapi.yml
x-note: >-
Non-destructive Overlay 1.0.0 capturing API Evangelist enrichment of the ZeroBounce
ChatGPT-plugin OpenAPI. The original spec is never mutated. Every value below is drawn
from a ZeroBounce-published source already captured in this repo — the status-codes
reference, the sandbox page, the rate-limits page and the API error-codes page — or
from the spec itself. Nothing is invented. Notably this overlay does NOT correct the
string-typed booleans in validateEmailResponse; that is a real defect in the provider's
contract and is recorded in data-model/zerobounce-data-model.yml rather than papered
over here.
extends: ../openapi/zerobounce-validation-api-openapi.yml
actions:
- target: $.info
update:
x-api-evangelist:
slug: zerobounce
profile: https://apis.io/providers/zerobounce
scope: >-
This document describes the ZeroBounce ChatGPT-plugin validation endpoints on
members-api.zerobounce.net ONLY. It is not the production ZeroBounce v2 API,
which runs on api-us / api-eu / api.zerobounce.net and bulkapi.zerobounce.net
and has no published OpenAPI.
production_api_inventory: collections/zerobounce-api-v2-official.postman_collection.json
artifacts:
authentication: authentication/zerobounce-authentication.yml
conventions: conventions/zerobounce-conventions.yml
errors: errors/zerobounce-error-codes.yml
rate_limits: rate-limits/zerobounce-rate-limits.yml
sandbox: sandbox/zerobounce-sandbox.yml
plans: plans/zerobounce-plans-pricing.yml
data_model: data-model/zerobounce-data-model.yml
webhooks: asyncapi/zerobounce-webhooks.yml
mcp: mcp/zerobounce-mcp.yml
crosswalk: mcp/zerobounce-tool-crosswalk.yml
lifecycle: lifecycle/zerobounce-lifecycle.yml
conformance: conformance/zerobounce-conformance.yml
- target: $.info
update:
x-idempotency:
supported: false
note: >-
ZeroBounce publishes no idempotency key and no request deduplication. Retrying a
credit-consuming call spends credits again.
x-rate-limits:
documented: true
response_headers: none
status_on_exhaustion: 429
source: https://www.zerobounce.net/docs/api-dashboard/api-rate-limits
- target: $.paths['/api/validation/chatgpt-single-email-validation/'].post
update:
x-sandbox:
supported: true
mode: magic-identifiers
credits_consumed: 0
example_addresses:
- valid@example.com
- invalid@example.com
- catch_all@example.com
- spamtrap@example.com
- abuse@example.com
- donotmail@example.com
- unknown@example.com
test_ip: 99.110.204.1
source: https://www.zerobounce.net/docs/email-validation-api-quickstart/v2-sandbox-mode
x-agent-cost:
unit: credit
credits_per_call: 1
free_allowance: >-
Up to 3 unauthenticated calls per day without an api_key, per the operation's own
summary in the original spec.
- target: $.paths['/api/validation/chatgpt-batch-validation/'].post
update:
x-agent-cost:
unit: credit
credits_per_email: 1
requires_api_key: true
x-batch-limits:
max_items: 100
note: >-
The production /v2/validatebatch endpoint caps a batch at 100 addresses and 30
requests per minute (40 on ZeroBounce ONE). The plugin spec declares no cap.
source: https://www.zerobounce.net/docs/api-dashboard/api-rate-limits
- target: $.components.schemas.validateEmailResponse.properties.status
update:
x-enum-values:
- valid
- invalid
- catch-all
- spamtrap
- abuse
- do_not_mail
- unknown
x-enum-source: https://www.zerobounce.net/docs/email-validation-api-quickstart/v2-status-codes
x-note: >-
A closed, provider-published vocabulary that the original schema declares as a bare
string. Recorded here rather than injected into the spec.
- target: $.components.schemas.validateEmailResponse.properties.sub_status
update:
x-enum-values:
- alias_address
- leading_period_removed
- alternate
- gold
- role_based_accept_all
- accept_all
- ai_agent_mailbox
- does_not_accept_mail
- failed_syntax_check
- possible_typo
- mailbox_not_found
- no_dns_entries
- mailbox_quota_exceeded
- unroutable_ip_address
- role_based
- disposable
- role_based_catch_all
- mx_forward
- global_suppression
- possible_trap
- toxic
- antispam_system
- exception_occurred
- failed_smtp_connection
- forcible_disconnect
- greylisted
- mail_server_did_not_respond
- mail_server_temporary_error
- timeout_exceeded
x-open-enum: true
x-note: >-
Treat as OPEN. ai_agent_mailbox was added on 2026-07-14 with no version change, so
a closed client-side enum will break on the next addition.
x-enum-source: https://www.zerobounce.net/docs/email-validation-api-quickstart/v2-status-codes
- target: $.components.schemas.validateEmailResponse
update:
x-type-fidelity-warning: >-
free_email, mx_found and catchall_domain are semantically boolean and
domain_age_days is semantically an integer, but all are declared type string in the
provider's schema. Clients must coerce. Deliberately NOT rewritten here — the
overlay records our enhancements, and silently retyping a provider's contract would
misrepresent what they publish.