Introduction
This documentation aims to provide all the information you need to work with our API.
Base URL
https://debounce.nl/api/
Authenticating requests
To authenticate requests, include a api_key
header with the value "{YOUR_AUTH_KEY}"
.
All authenticated endpoints are marked with a requires authentication
badge in the documentation below.
You can retrieve your token by visiting your dashboard and clicking Generate API token.
Email Checks
Check email for bounces, disposability, and spam risk.
requires authentication
Validates an email address and returns information about recent bounces, whether the email is disposable, and its spam risk score.
Example request:
curl -X GET \
-G "https://debounce.nl/api/api/check-all" \
-H "api_key: {YOUR_AUTH_KEY}" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"email":"user@example.com"}'
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://debounce.nl/api/api/check-all',
[
'headers' => [
'api_key' => '{YOUR_AUTH_KEY}',
'Accept' => 'application/json',
],
'json' => [
'email' => 'user@example.com',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
"https://debounce.nl/api/api/check-all"
);
let headers = {
"api_key": "{YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"email": "user@example.com"
}
fetch(url, {
method: "GET",
headers,
body: JSON.stringify(body),
}).then(response => response.json());
import requests
import json
url = 'https://debounce.nl/api/api/check-all'
payload = {
"email": "user@example.com"
}
headers = {
'api_key': '{YOUR_AUTH_KEY}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers, json=payload)
response.json()
Example response (200):
{
"bounce_found": true,
"bounce_type": "hard",
"bounce_last_report": "2025-07-10T12:34:56Z",
"is_disposable": false,
"spam_score": 3,
"spam_risk_level": "medium",
"spam_risk_reasons": [
"Suspicious domain",
"Common spam pattern"
]
}
Received response:
Request failed with error:
Check if an email address has bounced recently.
requires authentication
Checks for recent bounces for the given email address within the last 96 hours.
Example request:
curl -X GET \
-G "https://debounce.nl/api/api/check-bounce" \
-H "api_key: {YOUR_AUTH_KEY}" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"email":"user@example.com"}'
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://debounce.nl/api/api/check-bounce',
[
'headers' => [
'api_key' => '{YOUR_AUTH_KEY}',
'Accept' => 'application/json',
],
'json' => [
'email' => 'user@example.com',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
"https://debounce.nl/api/api/check-bounce"
);
let headers = {
"api_key": "{YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"email": "user@example.com"
}
fetch(url, {
method: "GET",
headers,
body: JSON.stringify(body),
}).then(response => response.json());
import requests
import json
url = 'https://debounce.nl/api/api/check-bounce'
payload = {
"email": "user@example.com"
}
headers = {
'api_key': '{YOUR_AUTH_KEY}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers, json=payload)
response.json()
Example response (200):
{
"bounce_found": true,
"bounce_type": "hard",
"bounce_reason": "Mailbox does not exist",
"bounce_last_report": "2025-07-10T12:34:56Z"
}
Example response (200):
{
"bounce_found": false,
"bounce_type": null,
"bounce_reason": null,
"bounce_last_report": null
}
Received response:
Request failed with error:
Check if an email address is disposable.
requires authentication
Determines if the provided email address uses a disposable email provider.
Example request:
curl -X GET \
-G "https://debounce.nl/api/api/check-disposable" \
-H "api_key: {YOUR_AUTH_KEY}" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"email":"user@example.com"}'
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://debounce.nl/api/api/check-disposable',
[
'headers' => [
'api_key' => '{YOUR_AUTH_KEY}',
'Accept' => 'application/json',
],
'json' => [
'email' => 'user@example.com',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
"https://debounce.nl/api/api/check-disposable"
);
let headers = {
"api_key": "{YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"email": "user@example.com"
}
fetch(url, {
method: "GET",
headers,
body: JSON.stringify(body),
}).then(response => response.json());
import requests
import json
url = 'https://debounce.nl/api/api/check-disposable'
payload = {
"email": "user@example.com"
}
headers = {
'api_key': '{YOUR_AUTH_KEY}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers, json=payload)
response.json()
Example response (200):
{
"is_disposable": true
}
Example response (200):
{
"is_disposable": false
}
Received response:
Request failed with error:
Check if an email's domain is valid.
requires authentication
Validates the domain of the provided email address, checking for existence and MX records.
Example request:
curl -X GET \
-G "https://debounce.nl/api/api/check-domain" \
-H "api_key: {YOUR_AUTH_KEY}" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"email":"user@example.com"}'
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://debounce.nl/api/api/check-domain',
[
'headers' => [
'api_key' => '{YOUR_AUTH_KEY}',
'Accept' => 'application/json',
],
'json' => [
'email' => 'user@example.com',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
"https://debounce.nl/api/api/check-domain"
);
let headers = {
"api_key": "{YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"email": "user@example.com"
}
fetch(url, {
method: "GET",
headers,
body: JSON.stringify(body),
}).then(response => response.json());
import requests
import json
url = 'https://debounce.nl/api/api/check-domain'
payload = {
"email": "user@example.com"
}
headers = {
'api_key': '{YOUR_AUTH_KEY}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers, json=payload)
response.json()
Example response (200):
{
"email_is_valid": true,
"domain_is_valid": false,
"domain_is_valid_reason": "Domain lookup failed"
}
Example response (200):
{
"email_is_valid": true,
"domain_is_valid": false,
"domain_is_valid_reason": "MX-record lookup failed"
}
Example response (200):
{
"email_is_valid": true,
"domain_is_valid": true
}
Received response:
Request failed with error:
Check the spam risk of an email address.
requires authentication
Calculates a spam score and risk level for the provided email address.
Example request:
curl -X GET \
-G "https://debounce.nl/api/api/check-spam" \
-H "api_key: {YOUR_AUTH_KEY}" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"email":"user@example.com"}'
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://debounce.nl/api/api/check-spam',
[
'headers' => [
'api_key' => '{YOUR_AUTH_KEY}',
'Accept' => 'application/json',
],
'json' => [
'email' => 'user@example.com',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
"https://debounce.nl/api/api/check-spam"
);
let headers = {
"api_key": "{YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"email": "user@example.com"
}
fetch(url, {
method: "GET",
headers,
body: JSON.stringify(body),
}).then(response => response.json());
import requests
import json
url = 'https://debounce.nl/api/api/check-spam'
payload = {
"email": "user@example.com"
}
headers = {
'api_key': '{YOUR_AUTH_KEY}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers, json=payload)
response.json()
Example response (200):
{
"spam_score": 3,
"spam_risk_level": "medium",
"spam_risk_reasons": [
"Suspicious domain",
"Common spam pattern"
]
}
Received response:
Request failed with error: