API Reference

HTTP Status Codes & Error Handling

Complete reference of HTTP status codes returned by the BounceLayer REST API, standard JSON error envelopes, rate limits, and zero-credit cost policies.

Standard Error Response Envelope

All error responses return a structured JSON body with a descriptive detail or error message:

json
{
  "success": false,
  "status_code": 402,
  "detail": "Insufficient credits. Required: 1, Available: 0",
  "error_code": "INSUFFICIENT_CREDITS",
  "documentation_url": "https://bouncelayer.com/docs/status-codes"
}

Comprehensive HTTP Status Codes Table

Status CodeStatus NameWhen It Is ReturnedCredit Charged?
`200 OK`SuccessRequest succeeded. A single email was verified, a bulk job was created/queried, or telemetry returned.1 Credit for valid, invalid, catch_all, or disposable; 0 Credits for indeterminate unknown
`400 Bad Request`Bad RequestThe request body could not be parsed as valid JSON, required parameters are missing, or the email address contains unparseable syntax.0 Credits (Free)
`401 Unauthorized`Authentication FailedMissing or invalid X-API-Key or Authorization: Bearer header, or the provided key has been revoked.0 Credits (Free)
`402 Payment Required`Insufficient BalanceYour account has 0 credits remaining. Top up pay-as-you-go credits or upgrade your monthly subscription plan to resume API calls.0 Credits (Free)
`403 Forbidden`Access DeniedThe API key is valid but restricted from accessing this endpoint (e.g., read-only sub-key attempting a deletion).0 Credits (Free)
`404 Not Found`Resource MissingThe requested resource (such as a job_id or webhook subscription ID) does not exist under your account.0 Credits (Free)
`409 Conflict`Resource ConflictDuplicate resource submission or a conflicting operation is currently in progress.0 Credits (Free)
`413 Payload Too Large`Plan Cap ExceededThe bulk verification job exceeds the batch limit for your current subscription plan (e.g. >10,000 on Free, >100,000 on Pro).0 Credits (Free)
`422 Unprocessable Entity`Schema Validation ErrorParameter validation failed (e.g., negative timeout or invalid data type).0 Credits (Free)
`429 Too Many Requests`Rate Limit ExceededRequest velocity exceeded the concurrency or requests-per-minute threshold for your tier. Includes a Retry-After header.0 Credits (Free)
`500 Internal Server Error`Engine ErrorAn unexpected server error occurred in our verification cluster. Our operations team is automatically alerted.0 Credits (Free)
`502 Bad Gateway`Socket Gateway TimeoutDownstream SMTP proxy gateway failed to establish a raw TCP connection within the timeout window.0 Credits (Free)
`503 Service Unavailable`Maintenance / OverloadVerification cluster or database is temporarily undergoing scheduled maintenance.0 Credits (Free)

Rate Limiting & Concurrency

Rate limits apply per account and scale with your subscription tier:

Plan TierRequests Per Minute (RPM)Concurrent Bulk BatchesMax Batch Size
Free Developer60 RPM1 concurrent job1,000 emails
Starter ($12/mo)300 RPM3 concurrent jobs10,000 emails
Growth ($29/mo)600 RPM5 concurrent jobs25,000 emails
Pro ($79/mo)1,500 RPM10 concurrent jobs100,000 emails
Scale ($699/mo)3,000 RPM25 concurrent jobs500,000 emails

Rate Limit Response Headers

http
HTTP/1.1 429 Too Many Requests
Content-Type: application/json
X-RateLimit-Limit: 1500
X-RateLimit-Remaining: 0
X-RateLimit-Reset: 1729785660
Retry-After: 42