Get Your API Key
Sign in to your dashboard and create an API key under Settings → API Keys
Base URL
https://api.vetobounce.com/api/v1Authentication
Include your API key in the Authorization header:
Authorization: Bearer YOUR_API_KEY Complete API reference for integrating VetoBounce into your applications.
Simple, RESTful endpoints with comprehensive examples.
Sign in to your dashboard and create an API key under Settings → API Keys
https://api.vetobounce.com/api/v1Include your API key in the Authorization header:
Authorization: Bearer YOUR_API_KEYVerify email addresses using SMTP-level validation
/jobs/quick-verifyVerify a single email address instantly
{
"email": "user@example.com"
}{
"email": "user@example.com",
"status": "valid",
"reason": "SMTP verification successful",
"creditsUsed": 1
}curl -X POST https://api.vetobounce.com/api/v1/jobs/quick-verify \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"email": "user@example.com"
}'/jobsCreate a bulk email verification job
{
"name": "My Verification Job",
"type": "verification",
"inputConfig": {
"emailColumn": "email"
},
"items": [
{
"email": "user1@example.com"
},
{
"email": "user2@example.com"
}
]
}{
"id": "550e8400-e29b-41d4-a716-446655440000",
"userId": "123e4567-e89b-12d3-a456-426614174000",
"name": "My Verification Job",
"type": "verification",
"status": "pending",
"totalItems": 2,
"processedItems": 0,
"progress": 0,
"stats": {
"valid": 0,
"invalid": 0,
"catch_all": 0,
"unknown": 0,
"risky": 0
},
"creditsCharged": 0,
"creditsRefunded": 0,
"netCredits": 0,
"createdAt": "2024-01-15T10:30:00Z",
"expiresAt": "2024-02-14T10:30:00Z",
"updatedAt": "2024-01-15T10:30:00Z"
}curl -X POST https://api.vetobounce.com/api/v1/jobs \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "My Verification Job",
"type": "verification",
"inputConfig": {
"emailColumn": "email"
},
"items": [
{"email": "user1@example.com"},
{"email": "user2@example.com"}
]
}'Find professional email addresses using pattern matching
/jobs/quick-findFind email for a single person instantly
{
"firstName": "John",
"lastName": "Doe",
"domain": "example.com",
"patternLevel": "mid"
}{
"emails": [
{
"email": "john.doe@example.com",
"pattern": "first.last",
"status": "valid",
"reason": "SMTP verification successful",
"verified": true
}
],
"creditsUsed": 1
}curl -X POST https://api.vetobounce.com/api/v1/jobs/quick-find \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"firstName": "John",
"lastName": "Doe",
"domain": "example.com",
"patternLevel": "mid"
}'/jobsCreate a bulk email discovery job
{
"name": "My Discovery Job",
"type": "finding",
"inputConfig": {
"firstNameColumn": "firstName",
"lastNameColumn": "lastName",
"domainColumn": "domain",
"patternLevel": "mid"
},
"items": [
{
"firstName": "John",
"lastName": "Doe",
"domain": "example.com"
},
{
"firstName": "Jane",
"lastName": "Smith",
"domain": "company.com"
}
]
}{
"id": "550e8400-e29b-41d4-a716-446655440000",
"userId": "123e4567-e89b-12d3-a456-426614174000",
"name": "My Discovery Job",
"type": "finding",
"status": "pending",
"totalItems": 2,
"processedItems": 0,
"progress": 0,
"stats": {
"valid": 0,
"invalid": 0,
"catch_all": 0,
"unknown": 0,
"risky": 0,
"unverified": 0
},
"creditsCharged": 0,
"creditsRefunded": 0,
"netCredits": 0,
"createdAt": "2024-01-15T10:30:00Z",
"expiresAt": "2024-02-14T10:30:00Z",
"updatedAt": "2024-01-15T10:30:00Z"
}curl -X POST https://api.vetobounce.com/api/v1/jobs \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "My Discovery Job",
"type": "finding",
"inputConfig": {
"firstNameColumn": "firstName",
"lastNameColumn": "lastName",
"domainColumn": "domain",
"patternLevel": "mid"
},
"items": [
{"firstName": "John", "lastName": "Doe", "domain": "example.com"}
]
}'Manage and monitor your verification and discovery jobs
/jobsList all jobs for authenticated user
[
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"name": "My Job",
"type": "verification",
"status": "completed",
"totalItems": 100,
"processedItems": 100,
"progress": 100,
"stats": {
"valid": 85,
"invalid": 10,
"catch_all": 3,
"unknown": 2,
"risky": 0
},
"creditsCharged": -100,
"creditsRefunded": 5,
"netCredits": -95,
"createdAt": "2024-01-15T10:30:00Z",
"completedAt": "2024-01-15T10:35:00Z",
"expiresAt": "2024-02-14T10:30:00Z"
}
]curl -X GET https://api.vetobounce.com/api/v1/jobs \ -H "Authorization: Bearer YOUR_API_KEY"
/jobs/:idGet details of a specific job
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"name": "My Job",
"type": "verification",
"status": "completed",
"totalItems": 100,
"processedItems": 100,
"progress": 100,
"stats": {
"valid": 85,
"invalid": 10,
"catch_all": 3,
"unknown": 2,
"risky": 0
},
"creditsCharged": -100,
"creditsRefunded": 5,
"netCredits": -95,
"createdAt": "2024-01-15T10:30:00Z",
"completedAt": "2024-01-15T10:35:00Z",
"expiresAt": "2024-02-14T10:30:00Z"
}curl -X GET https://api.vetobounce.com/api/v1/jobs/550e8400-e29b-41d4-a716-446655440000 \ -H "Authorization: Bearer YOUR_API_KEY"
/jobs/:id/downloadDownload job results as CSV
"CSV file download"
curl -X GET https://api.vetobounce.com/api/v1/jobs/550e8400-e29b-41d4-a716-446655440000/download \ -H "Authorization: Bearer YOUR_API_KEY" \ -o results.csv
/jobs/:idDelete a job
{
"message": "job deleted"
}curl -X DELETE https://api.vetobounce.com/api/v1/jobs/550e8400-e29b-41d4-a716-446655440000 \ -H "Authorization: Bearer YOUR_API_KEY"
Parse and upload CSV/XLSX/XLS files for bulk processing
/upload/parseParse uploaded file and return preview
"multipart/form-data with file field"
{
"fileName": "contacts.csv",
"fileSize": 1024,
"totalRows": 100,
"headers": [
"email",
"firstName",
"lastName"
],
"previewRows": [
{
"email": "john@example.com",
"firstName": "John",
"lastName": "Doe"
}
],
"allRows": [],
"hasHeaders": true,
"detectedType": "csv"
}curl -X POST https://api.vetobounce.com/api/v1/upload/parse \ -F "file=@contacts.csv"
Manage API keys for authentication
/api-keysCreate a new API key
{
"name": "Production API Key",
"ipWhitelist": [
"192.168.1.1"
],
"rateLimit": 100
}{
"id": "123e4567-e89b-12d3-a456-426614174000",
"key": "vb_live_1234567890abcdef",
"keyPrefix": "vb_live_****cdef",
"name": "Production API Key",
"createdAt": "2024-01-15T10:30:00Z"
}curl -X POST https://api.vetobounce.com/api/v1/api-keys \
-H "Authorization: Bearer YOUR_JWT_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "Production API Key",
"rateLimit": 100
}'/api-keysList all API keys
{
"keys": [
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"keyPrefix": "vb_live_****cdef",
"name": "Production API Key",
"isActive": true,
"rateLimit": 100,
"createdAt": "2024-01-15T10:30:00Z"
}
],
"total": 1
}curl -X GET https://api.vetobounce.com/api/v1/api-keys \ -H "Authorization: Bearer YOUR_JWT_TOKEN"
/api-keys/:idDelete an API key
{
"message": "API key deleted successfully"
}curl -X DELETE https://api.vetobounce.com/api/v1/api-keys/123e4567-e89b-12d3-a456-426614174000 \ -H "Authorization: Bearer YOUR_JWT_TOKEN"
Configure webhooks to receive job completion notifications
/webhooksCreate a webhook
{
"name": "Job Completion Hook",
"url": "https://your-app.com/webhook",
"events": [
"job.completed",
"job.failed"
],
"customHeaders": {
"X-Custom-Header": "value"
},
"retryCount": 3
}{
"id": "123e4567-e89b-12d3-a456-426614174000",
"name": "Job Completion Hook",
"url": "https://your-app.com/webhook",
"events": [
"job.completed",
"job.failed"
],
"isActive": true,
"retryCount": 3,
"createdAt": "2024-01-15T10:30:00Z"
}curl -X POST https://api.vetobounce.com/api/v1/webhooks \
-H "Authorization: Bearer YOUR_JWT_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "Job Completion Hook",
"url": "https://your-app.com/webhook",
"events": ["job.completed"]
}'/webhooksList all webhooks
{
"webhooks": [
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"name": "Job Completion Hook",
"url": "https://your-app.com/webhook",
"events": [
"job.completed"
],
"isActive": true,
"createdAt": "2024-01-15T10:30:00Z"
}
],
"total": 1
}curl -X GET https://api.vetobounce.com/api/v1/webhooks \ -H "Authorization: Bearer YOUR_JWT_TOKEN"
/webhooks/:idDelete a webhook
{
"message": "Webhook deleted successfully"
}curl -X DELETE https://api.vetobounce.com/api/v1/webhooks/123e4567-e89b-12d3-a456-426614174000 \ -H "Authorization: Bearer YOUR_JWT_TOKEN"
Check credit balance and transaction history
/creditsGet current credit balance
{
"balance": 5000,
"userId": "123e4567-e89b-12d3-a456-426614174000"
}curl -X GET https://api.vetobounce.com/api/v1/credits \ -H "Authorization: Bearer YOUR_JWT_TOKEN"
/credits/transactionsList credit transactions
{
"transactions": [
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"type": "purchase",
"amount": 10000,
"balance": 10000,
"description": "Credit purchase",
"createdAt": "2024-01-15T10:30:00Z"
},
{
"id": "223e4567-e89b-12d3-a456-426614174000",
"type": "charge",
"amount": -100,
"balance": 9900,
"description": "Email verification job",
"createdAt": "2024-01-15T11:00:00Z"
},
{
"id": "323e4567-e89b-12d3-a456-426614174000",
"type": "refund",
"amount": 5,
"balance": 9905,
"description": "Unknown/catch-all refund",
"createdAt": "2024-01-15T11:05:00Z"
}
],
"total": 3,
"page": 1,
"limit": 20,
"totalPages": 1
}curl -X GET https://api.vetobounce.com/api/v1/credits/transactions?page=1&limit=20 \ -H "Authorization: Bearer YOUR_JWT_TOKEN"
Email address exists and can receive emails. Full credit charged.
Email address does not exist or is invalid. Full credit charged.
Domain accepts all emails (cannot verify). Credit automatically refunded.
Unable to verify (server issues, timeout). Credit automatically refunded.
Email may be valid but has risk factors (disposable, role-based). Full credit charged.
100 requests/minute
Configurable per API key in your dashboard
X-RateLimit-Limit: 100X-RateLimit-Remaining: 95X-RateLimit-Reset: 1642253400When rate limit exceeded, you'll receive a 429 status with retry information
Subscribe to these events to receive real-time notifications
Triggered when a verification or discovery job finishes successfully
Triggered when a job fails due to an error
Triggered when a job begins processing
Triggered when credit balance falls below threshold
{
"event": "job.completed",
"timestamp": "2024-01-15T10:35:00Z",
"data": {
"jobId": "550e8400-e29b-41d4-a716-446655440000",
"name": "My Verification Job",
"type": "verification",
"status": "completed",
"totalItems": 100,
"processedItems": 100,
"stats": {
"valid": 85,
"invalid": 10,
"catch_all": 3,
"unknown": 2
},
"creditsCharged": -100,
"creditsRefunded": 5,
"netCredits": -95
}
}Our support team is here to help you integrate VetoBounce