Authentication
PIPBIT.IO uses API keys to authenticate requests. You can view and manage your API keys in the Dashboard.
Include your API key in requests using the Authorization header with the Bearer scheme, or pass it as a URL parameter.
Replace your_api_key with your actual API key.
Security
Private API Keys
Use private keys for server-side applications. Never expose them publicly. You can restrict keys to specific IP addresses for additional security.
Public API Keys
Use public keys for client-side applications. They require trusted domain configuration and are rate limited to 10 requests per day per user.
Testing
Use these test emails to validate your integration without consuming credits:
| Result | |
|---|---|
[email protected] |
Returns deliverable |
[email protected] |
Returns undeliverable |
[email protected] |
Returns risky |
Verify Email
Verify a single email address and get detailed deliverability information.
Parameters
| Parameter | Type | Description |
|---|---|---|
email
REQUIRED
|
string | The email address to verify |
api_key
REQUIRED
|
string | Your API key (if not using header) |
smtp
|
boolean | Enable SMTP mailbox verification. Connects to mail server to check if mailbox exists. Default: true |
site_source
|
string | Optional identifier for tracking the source of the request |
Response
| Field | Type | Description |
|---|---|---|
email | string | The verified email address |
status | string | valid or invalid |
score | integer | Deliverability score (0-100) |
deliverability | string | deliverable, undeliverable, or risky |
disposable | boolean | Is disposable email domain |
role | boolean | Is role-based address |
free | boolean | Is free email provider |
catch_all | boolean | Is catch-all domain (accepts all emails) |
risk_factors | array | List of risk factors detected (e.g., smtp_rejected) |
site_source | string | Source identifier (if provided in request) |
duration | number | Processing time in seconds |
Batch Verification
Submit multiple emails for batch verification. Results are processed asynchronously.
Request Body
| Parameter | Type | Description |
|---|---|---|
emails
REQUIRED
|
array | Array of email addresses (max 50,000) |
callback_url |
string | Webhook URL for completion notification |
Account
Retrieve your account information including credit balance and usage statistics.
Rate Limits
API requests are rate limited based on your subscription plan:
| Plan | Requests/Min | Requests/Day |
|---|---|---|
| Free | 10 | 100 |
| Starter | 60 | 10,000 |
| Professional | 120 | 50,000 |
| Enterprise | 300 | 500,000 |
Rate limits apply to all API endpoints including single verify, batch verify, account, and filter endpoints. Limits are enforced per API key.
Rate Limit Headers
Every API response includes headers to help you track your rate limit usage:
| Header | Description |
|---|---|
| X-RateLimit-Limit | Maximum requests allowed per minute for your plan |
| X-RateLimit-Remaining | Number of requests remaining in the current window |
| X-RateLimit-Reset | Unix timestamp when the rate limit window resets |
| Retry-After | Seconds to wait before retrying (only included in 429 responses) |
429 Too Many Requests
When you exceed your rate limit, the API returns a 429 status code with the following response:
{
"error": "rate_limit_exceeded",
"message": "Too many requests. Please retry after the period specified in the Retry-After header.",
"retry_after": 45
}
Retry-After header before making another request.
Status Codes
| Code | Description |
|---|---|
| 200 | Success |
| 400 | Bad Request - Invalid parameters |
| 401 | Unauthorized - Invalid API key |
| 402 | Payment Required - Insufficient credits |
| 429 | Too Many Requests - Rate limit exceeded |
| 500 | Server Error |
# Verify single email
curl "https://api.pipbit.io/v1/[email protected]" \-H "Authorization: Bearer your_api_key"
# Batch verification
curl -X POST "https://api.pipbit.io/v1/batch" \-H "Authorization: Bearer your_api_key" \
-H "Content-Type: application/json" \
-d '{"emails": ["[email protected]"]}'
// Verify email
const response = await fetch('https://api.pipbit.io/v1/[email protected]',
{ headers: { 'Authorization': 'Bearer your_api_key' }}
);
response = requests.get(
'https://api.pipbit.io/v1/verify',
params={'email': '[email protected]'},
headers={'Authorization': 'Bearer your_api_key'}
)
$ch = curl_init();
curl_setopt_array($ch, [
CURLOPT_URL => 'https://api.pipbit.io/v1/[email protected]',
CURLOPT_HTTPHEADER => ['Authorization: Bearer your_api_key']
]);
Replace your_api_key with your API key.