# Pabbly Email Verification > **Per-section URLs available** — append `.md` to any docs URL for markdown: > - Endpoint: `/pabbly/email-verification/{tagSlug}/{endpointSlug}.md` > - Resource object: `/pabbly/email-verification/{tagSlug}/object.md` > - Guide page: `/pabbly/email-verification/guides/{docSlug}.md` > > Or send `Accept: text/markdown` on the canonical URL. > REST API for Pabbly Email Verification - Base URL: `https://verify.pabbly.com/api/v1` - Authentication: Basic token via `Authorization` header - Version: v1 --- ## Guides ### Overview The Pabbly Email Verification API lets you verify the deliverability and validity of email addresses on demand. Use it to clean lists before sending, validate user signups in real time, and reduce bounce rates by catching invalid or risky emails before they reach your delivery server. *Example request* ```bash curl https://verify.pabbly.com/api/v1/email-lists/verify-single \ -u {{YOUR_API_KEY}}:{{YOUR_SECRET_KEY}} ``` **Base URL** All endpoints are relative to the base URL below. Combine the base URL with the path on each endpoint to get the full request URL. *Base URL* ```text https://verify.pabbly.com/api/v1 ``` **Requests and responses** The API accepts JSON request bodies and returns JSON responses. Send `Content-Type: application/json` on every request that has a body. Path parameters are interpolated into the URL; query parameters and body fields are documented per endpoint. *Success response* ```json { "success": true, "data": { /* … */ } } ``` **Errors** When a request fails, the response status code reflects the error category and the body carries a human-readable message. Treat any non-2xx status as a failure. | Status | Meaning | |---|---| | 200, 201 | Success | | 400 | Bad request — missing or malformed parameters | | 401 | Unauthorized — missing or invalid API credentials | | 404 | Not found — the resource does not exist | | 429 | Too many requests | | 5xx | Server error — retry with backoff | *Error response* ```json { "success": false, "error": "A human-readable explanation" } ``` ### Authentication The Pabbly Email Verification API uses **HTTP Basic Auth**. Every request must include your API Key and Secret Key as the username and password. *Auth header* ```http Authorization: Basic ``` **Getting your credentials** Sign in to your Pabbly account and navigate to **Settings → API → Generate API Keys**. You will see (or be able to generate) an **API Key** and a matching **Secret Key**. Treat the Secret Key like a password. **Making authenticated requests** Send your API Key as the HTTP Basic username and your Secret Key as the password on every request. The examples on the right show how to call /email-lists/verify-single with proper authentication. *cURL* ```bash curl https://verify.pabbly.com/api/v1/email-lists/verify-single \ -u {{YOUR_API_KEY}}:{{YOUR_SECRET_KEY}} ``` *Node.js* ```javascript const credentials = Buffer .from('{{YOUR_API_KEY}}:{{YOUR_SECRET_KEY}}') .toString('base64'); const response = await fetch( 'https://verify.pabbly.com/api/v1/email-lists/verify-single', { headers: { Authorization: `Basic ${credentials}` } } ); const data = await response.json(); ``` *Python* ```python import requests from requests.auth import HTTPBasicAuth response = requests.get( 'https://verify.pabbly.com/api/v1/email-lists/verify-single', auth=HTTPBasicAuth('{{YOUR_API_KEY}}', '{{YOUR_SECRET_KEY}}'), ) data = response.json() ``` **Keep your credentials secret** Your credentials grant full access to your account. Never embed them in browser-side code, commit them to version control, or share them in support tickets. If you suspect a credential has been exposed, rotate it from the dashboard (**Settings → API → Generate API Keys**) and update any servers that use it. --- ## API Reference ### Verify Email #### POST /email-lists/verify-single — Verify Single Email Hit the API with POST method and fill the following data according your requirements to verify single email. **Body parameters:** | Name | Type | Required | Description | |------|------|----------|-------------| | email | string | Yes | Email to verify | **Example Response (200):** ```json { "status": "success", "message": "Email validation result", "data": { "email": "nohan@drggf.hg", "result": "undeliverable", "message": "Unreachable mail server. Emails sent to this address will bounce. ", "accept_all": 0, "disposable": 0, "spamtrap": 0, "role": 0, "free_email": 0, "success": true, "user": "nohan", "domain": "drggf.hg" } } ```