Introduction
This documentation aims to provide all the information you need to work with our API.
As you scroll, you'll see code examples for working with the API in different programming languages in the dark area to the right (or as part of the content on mobile).
You can switch the language used with the tabs at the top right (or from the nav menu at the top left on mobile).
Authenticating requests
To authenticate requests, include an Authorization header with the value "Bearer {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 Team Settings > API Tokens.
Domains
Retrieve Domains.
requires authentication
Example request:
curl --request GET \
--get "https://postmasterplus.app/api/v1/domains?page=1&per_page=15" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://postmasterplus.app/api/v1/domains"
);
const params = {
"page": "1",
"per_page": "15",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://postmasterplus.app/api/v1/domains';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'page' => '1',
'per_page' => '15',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://postmasterplus.app/api/v1/domains'
params = {
'page': '1',
'per_page': '15',
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()Example response (200):
{
"success": true,
"message": "Domains retrieved successfully.",
"data": [
{
"id": "01ARZ3NDEKTSV4RRFFQ69G5FAV",
"value": "example.com",
"description": "Primary sending domain",
"created_at": "2026-03-28T10:30:00.000000Z",
"updated_at": "2026-03-28T10:30:00.000000Z"
}
],
"meta": {
"current_page": 1,
"from": 1,
"last_page": 1,
"per_page": 15,
"to": 1,
"total": 1
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Retrieve Domain Feed.
requires authentication
Example request:
curl --request GET \
--get "https://postmasterplus.app/api/v1/domains/01ARZ3NDEKTSV4RRFFQ69G5FAV/feed?page=1&date=2026-04-24" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://postmasterplus.app/api/v1/domains/01ARZ3NDEKTSV4RRFFQ69G5FAV/feed"
);
const params = {
"page": "1",
"date": "2026-04-24",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://postmasterplus.app/api/v1/domains/01ARZ3NDEKTSV4RRFFQ69G5FAV/feed';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'page' => '1',
'date' => '2026-04-24',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://postmasterplus.app/api/v1/domains/01ARZ3NDEKTSV4RRFFQ69G5FAV/feed'
params = {
'page': '1',
'date': '2026-04-24',
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()Example response (200):
{
"success": true,
"message": "Domain feed retrieved successfully.",
"data": [
{
"reported_at": "Mar 28, 2026 5:30PM",
"mail_stream": "Transactional Stream",
"domain": {
"id": "01ARZ3NDEKTSV4RRFFQ69G5FAV",
"value": "example.com",
"description": "Primary sending domain",
"created_at": "2026-03-28T10:30:00.000000Z",
"updated_at": "2026-03-28T10:30:00.000000Z"
},
"spf_domain": "example.com",
"seed_message": {
"mail_from_name": "Test Sender",
"mail_from": "sender@example.com",
"subject": "Seed message",
"preview_line": "This is a preview.",
"is_compliant": true,
"is_blocklisted": false,
"is_test": false
}
},
{
"message": "SPF is valid.",
"reported_at": "Mar 28, 2026 4:45PM",
"mail_stream": "Transactional Stream",
"domain": {
"id": "01ARZ3NDEKTSV4RRFFQ69G5FAV",
"value": "example.com",
"description": "Primary sending domain",
"created_at": "2026-03-28T10:30:00.000000Z",
"updated_at": "2026-03-28T10:30:00.000000Z"
},
"spf_domain": null,
"seed_message": null
}
],
"meta": {
"current_page": 1,
"from": 1,
"last_page": 2,
"per_page": 15,
"to": 15,
"total": 16
}
}
Example response (403):
{
"success": false,
"message": "Feed is only available for activated domains.",
"data": []
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Retrieve Domain.
requires authentication
Example request:
curl --request GET \
--get "https://postmasterplus.app/api/v1/domains/01ARZ3NDEKTSV4RRFFQ69G5FAV?start_date=2026-01-01&end_date=2026-03-31&related_ips_page=1" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"related_ips_page\": 16,
\"start_date\": \"2022-05-19\",
\"end_date\": \"2052-05-17\"
}"
const url = new URL(
"https://postmasterplus.app/api/v1/domains/01ARZ3NDEKTSV4RRFFQ69G5FAV"
);
const params = {
"start_date": "2026-01-01",
"end_date": "2026-03-31",
"related_ips_page": "1",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"related_ips_page": 16,
"start_date": "2022-05-19",
"end_date": "2052-05-17"
};
fetch(url, {
method: "GET",
headers,
body: JSON.stringify(body),
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://postmasterplus.app/api/v1/domains/01ARZ3NDEKTSV4RRFFQ69G5FAV';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'start_date' => '2026-01-01',
'end_date' => '2026-03-31',
'related_ips_page' => '1',
],
'json' => [
'related_ips_page' => 16,
'start_date' => '2022-05-19',
'end_date' => '2052-05-17',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://postmasterplus.app/api/v1/domains/01ARZ3NDEKTSV4RRFFQ69G5FAV'
payload = {
"related_ips_page": 16,
"start_date": "2022-05-19",
"end_date": "2052-05-17"
}
params = {
'start_date': '2026-01-01',
'end_date': '2026-03-31',
'related_ips_page': '1',
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers, json=payload, params=params)
response.json()Example response (200):
{
"success": true,
"message": "Domain retrieved successfully.",
"data": {
"id": "01ARZ3NDEKTSV4RRFFQ69G5FAV",
"value": "example.com",
"description": "Primary sending domain",
"created_at": "2026-03-28T10:30:00.000000Z",
"updated_at": "2026-03-28T10:30:00.000000Z",
"logo": null,
"team": {
"name": "Owner Custom Team"
},
"mail_streams": [
{
"name": "Transactional Stream",
"type": "transactional",
"logo": "https://cdn.example.com/mail-streams/transactional.svg"
}
],
"configuration": {
"spf_domains": [],
"dkim_selectors": [],
"bimi_selectors": [],
"dmarc": {
"valid": true,
"record": "v=DMARC1; p=none;"
},
"mx": {
"valid": true,
"records": [
"mx1.example.com",
"mx2.example.com"
]
},
"created_at": "2026-03-28T10:30:00.000000Z",
"updated_at": "2026-03-28T10:30:00.000000Z"
},
"alignment": {
"items": []
},
"settings": {
"estimated_message_volume": "1000",
"general_settings": {
"estimated_message_volume": "1000"
},
"shared_team_ids": [],
"mail_streams": [
{
"name": "Transactional Stream",
"type": "transactional",
"general_settings": []
}
],
"spf_domains": []
},
"compliance": {
"is_compliant": true,
"pre_send": {
"is_compliant": true,
"mail_streams": [
{
"name": "Transactional Stream",
"type": "transactional",
"is_compliant": true,
"checks": {
"ips": true,
"one_click_unsub": false,
"blocklists": true,
"spf": true,
"dkim": true,
"dmarc": true,
"tls": true
}
}
]
},
"post_send": {
"is_compliant": false,
"requirements": {
"spf": true,
"dkim": null,
"dmarc_alignment": null,
"dmarc_policy": false,
"encryption": null,
"user_reported_spam_rate": null,
"dns_records": null,
"one_click_unsubscribe": null,
"honor_unsubscribe": null,
"message_formatting": null
},
"subdomain": {
"domain_id": "mail.example.com",
"requirements": {
"spf": false,
"dkim": false,
"dmarc_alignment": null,
"dmarc_policy": null,
"encryption": null,
"user_reported_spam_rate": null,
"dns_records": null,
"one_click_unsubscribe": null,
"honor_unsubscribe": null,
"message_formatting": null
}
}
},
"mail_streams": [
{
"name": "Transactional Stream",
"type": "transactional",
"is_compliant": true,
"checks": {
"ips": true,
"one_click_unsub": false,
"blocklists": true,
"spf": true,
"dkim": true,
"dmarc": true,
"tls": true
}
}
]
},
"complaint_rate_averages": {
"periods": []
},
"related_ips": {
"date_range": {
"start_date": "2026-01-01 00:00:00",
"end_date": "2026-03-31 23:59:59"
},
"items": [
{
"id": "01ARZ3NDEKTSV4RRFFQ69G5FAV",
"value": "192.0.2.10",
"description": "Primary sending IP",
"created_at": "2026-03-28T10:30:00.000000Z",
"updated_at": "2026-03-28T10:30:00.000000Z"
}
],
"meta": {
"current_page": 1,
"last_page": 1,
"per_page": 10,
"total": 0
}
},
"blocklists": {
"is_blacklist": false,
"blacklist_count": 0,
"listed_count": 0,
"listed_muted": 0,
"listed_details": []
}
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
IPs
Retrieve IPs.
requires authentication
Example request:
curl --request GET \
--get "https://postmasterplus.app/api/v1/ips?page=1&per_page=15" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://postmasterplus.app/api/v1/ips"
);
const params = {
"page": "1",
"per_page": "15",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://postmasterplus.app/api/v1/ips';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'page' => '1',
'per_page' => '15',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://postmasterplus.app/api/v1/ips'
params = {
'page': '1',
'per_page': '15',
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()Example response (200):
{
"success": true,
"message": "IPs retrieved successfully.",
"data": [
{
"id": "01ARZ3NDEKTSV4RRFFQ69G5FAV",
"value": "192.0.2.10",
"description": "Primary sending IP",
"created_at": "2026-03-28T10:30:00.000000Z",
"updated_at": "2026-03-28T10:30:00.000000Z"
}
],
"meta": {
"current_page": 1,
"from": 1,
"last_page": 1,
"per_page": 15,
"to": 1,
"total": 1
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Retrieve IP Feed.
requires authentication
Example request:
curl --request GET \
--get "https://postmasterplus.app/api/v1/ips/01ARZ3NDEKTSV4RRFFQ69G5FAV/feed?page=1&date=2026-04-24" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://postmasterplus.app/api/v1/ips/01ARZ3NDEKTSV4RRFFQ69G5FAV/feed"
);
const params = {
"page": "1",
"date": "2026-04-24",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://postmasterplus.app/api/v1/ips/01ARZ3NDEKTSV4RRFFQ69G5FAV/feed';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'page' => '1',
'date' => '2026-04-24',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://postmasterplus.app/api/v1/ips/01ARZ3NDEKTSV4RRFFQ69G5FAV/feed'
params = {
'page': '1',
'date': '2026-04-24',
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()Example response (200):
{
"success": true,
"message": "IP feed retrieved successfully.",
"data": [
{
"reported_at": "Mar 28, 2026 5:30PM",
"mail_stream": "Transactional Stream",
"ip": {
"id": "01ARZ3NDEKTSV4RRFFQ69G5FAV",
"value": "192.0.2.10",
"description": "Primary sending IP",
"created_at": "2026-03-28T10:30:00.000000Z",
"updated_at": "2026-03-28T10:30:00.000000Z"
},
"seed_message": {
"mail_from_name": "Test Sender",
"mail_from": "sender@example.com",
"subject": "Seed message",
"preview_line": "This is a preview.",
"is_compliant": true,
"is_blocklisted": false,
"is_test": false
}
},
{
"message": "IP is compliant.",
"reported_at": "Mar 28, 2026 4:45PM",
"mail_stream": "Transactional Stream",
"ip": {
"id": "01ARZ3NDEKTSV4RRFFQ69G5FAV",
"value": "192.0.2.10",
"description": "Primary sending IP",
"created_at": "2026-03-28T10:30:00.000000Z",
"updated_at": "2026-03-28T10:30:00.000000Z"
},
"seed_message": null
}
],
"meta": {
"current_page": 1,
"from": 1,
"last_page": 2,
"per_page": 15,
"to": 15,
"total": 16
}
}
Example response (403):
{
"success": false,
"message": "Feed is only available for activated IPs.",
"data": []
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Retrieve IP.
requires authentication
Example request:
curl --request GET \
--get "https://postmasterplus.app/api/v1/ips/01ARZ3NDEKTSV4RRFFQ69G5FAV?start_date=2026-01-01&end_date=2026-03-31&related_domains_page=1" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"related_domains_page\": 16,
\"start_date\": \"2022-05-19\",
\"end_date\": \"2052-05-17\"
}"
const url = new URL(
"https://postmasterplus.app/api/v1/ips/01ARZ3NDEKTSV4RRFFQ69G5FAV"
);
const params = {
"start_date": "2026-01-01",
"end_date": "2026-03-31",
"related_domains_page": "1",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"related_domains_page": 16,
"start_date": "2022-05-19",
"end_date": "2052-05-17"
};
fetch(url, {
method: "GET",
headers,
body: JSON.stringify(body),
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://postmasterplus.app/api/v1/ips/01ARZ3NDEKTSV4RRFFQ69G5FAV';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'start_date' => '2026-01-01',
'end_date' => '2026-03-31',
'related_domains_page' => '1',
],
'json' => [
'related_domains_page' => 16,
'start_date' => '2022-05-19',
'end_date' => '2052-05-17',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://postmasterplus.app/api/v1/ips/01ARZ3NDEKTSV4RRFFQ69G5FAV'
payload = {
"related_domains_page": 16,
"start_date": "2022-05-19",
"end_date": "2052-05-17"
}
params = {
'start_date': '2026-01-01',
'end_date': '2026-03-31',
'related_domains_page': '1',
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers, json=payload, params=params)
response.json()Example response (200):
{
"success": true,
"message": "IP retrieved successfully.",
"data": {
"id": "01ARZ3NDEKTSV4RRFFQ69G5FAV",
"value": "192.0.2.10",
"description": "Primary sending IP",
"created_at": "2026-03-28T10:30:00.000000Z",
"updated_at": "2026-03-28T10:30:00.000000Z",
"logo": null,
"team": {
"name": "Owner Custom Team"
},
"mail_streams": [
{
"name": "Transactional Stream",
"type": "transactional",
"logo": "https://cdn.example.com/mail-streams/transactional.svg"
}
],
"configuration": {
"rdns": "mail.example.com",
"fcrdns": true,
"rdns_summary": null,
"provider": {
"asn": {
"asn": "AS64500",
"name": "Example ASN"
},
"location": "37.7749,-122.4194"
},
"created_at": "2026-03-28T10:30:00.000000Z",
"updated_at": "2026-03-28T10:30:00.000000Z"
},
"settings": {
"shared_team_ids": []
},
"compliance": {
"is_compliant": true,
"sender_score": 98,
"checks": {
"blocklists": true,
"fcrdns": true
}
},
"complaint_rate_averages": {
"periods": []
},
"inbox_placement_averages": {
"periods": []
},
"related_domains": {
"date_range": {
"start_date": "2026-01-01 00:00:00",
"end_date": "2026-03-31 23:59:59"
},
"items": [
{
"id": "01ARZ3NDEKTSV4RRFFQ69G5FAV",
"value": "example.com",
"description": "Primary sending domain",
"created_at": "2026-03-28T10:30:00.000000Z",
"updated_at": "2026-03-28T10:30:00.000000Z"
}
],
"meta": {
"current_page": 1,
"last_page": 1,
"per_page": 10,
"total": 0
}
},
"blocklists": {
"is_blacklist": false,
"blacklist_count": 0,
"listed_count": 0,
"listed_muted": 0,
"listed_details": []
}
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Intelligence
Single Email
Retrieve Single Email.
requires authentication
Example request:
curl --request GET \
--get "https://postmasterplus.app/api/v1/intelligence/single-emails/example@postmasterplus.com" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://postmasterplus.app/api/v1/intelligence/single-emails/example@postmasterplus.com"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://postmasterplus.app/api/v1/intelligence/single-emails/example@postmasterplus.com';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://postmasterplus.app/api/v1/intelligence/single-emails/example@postmasterplus.com'
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers)
response.json()Example response (200):
{
"data": {
"id": 25,
"email": "price.amber@example.org",
"status": null,
"created_at": "2026-04-24 17:05:51",
"updated_at": "2026-04-24 17:05:51"
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Scan Single Email.
requires authentication
Example request:
curl --request POST \
"https://postmasterplus.app/api/v1/intelligence/single-emails/scan" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"email\": \"example@postmasterplus.com\",
\"actions\": \"\\\"verification,activity,postal_append\\\"\"
}"
const url = new URL(
"https://postmasterplus.app/api/v1/intelligence/single-emails/scan"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"email": "example@postmasterplus.com",
"actions": "\"verification,activity,postal_append\""
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://postmasterplus.app/api/v1/intelligence/single-emails/scan';
$response = $client->post(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'json' => [
'email' => 'example@postmasterplus.com',
'actions' => '"verification,activity,postal_append"',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://postmasterplus.app/api/v1/intelligence/single-emails/scan'
payload = {
"email": "example@postmasterplus.com",
"actions": "\"verification,activity,postal_append\""
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()Example response (200):
{
"data": {
"id": 26,
"email": "rempel.chadrick@example.org",
"status": null,
"created_at": "2026-04-24 17:05:51",
"updated_at": "2026-04-24 17:05:51"
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Delete Single Email.
requires authentication
Example request:
curl --request DELETE \
"https://postmasterplus.app/api/v1/intelligence/single-emails/example@postmasterplus.com" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://postmasterplus.app/api/v1/intelligence/single-emails/example@postmasterplus.com"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://postmasterplus.app/api/v1/intelligence/single-emails/example@postmasterplus.com';
$response = $client->delete(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://postmasterplus.app/api/v1/intelligence/single-emails/example@postmasterplus.com'
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('DELETE', url, headers=headers)
response.json()Example response (200):
{
"message": "Single email deleted.",
"deleted": true
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Blocklists
Blocklist Scan
Start Blocklist Scan.
requires authentication
Example request:
curl --request POST \
"https://postmasterplus.app/api/v1/blocklist/scan/start" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"urls\": [
\"https:\\/\\/optipub.com\",
\"https:\\/\\/postmasterplus.com\"
],
\"follow_redirects\": true
}"
const url = new URL(
"https://postmasterplus.app/api/v1/blocklist/scan/start"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"urls": [
"https:\/\/optipub.com",
"https:\/\/postmasterplus.com"
],
"follow_redirects": true
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://postmasterplus.app/api/v1/blocklist/scan/start';
$response = $client->post(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'json' => [
'urls' => [
'https://optipub.com',
'https://postmasterplus.com',
],
'follow_redirects' => true,
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://postmasterplus.app/api/v1/blocklist/scan/start'
payload = {
"urls": [
"https:\/\/optipub.com",
"https:\/\/postmasterplus.com"
],
"follow_redirects": true
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()Example response (200):
{
"data": {
"id": "01kq078y1d8kjfwv0gh07qyn1t",
"status": "pending",
"unique_hosts_checked": 3,
"total_hosts_detected": null,
"urls_scanned": 0,
"urls_skipped": 0,
"blocklisted": false,
"credits_used": 0,
"error_message": "",
"started_at": null,
"completed_at": null
},
"success": true,
"message": "Blocklist check started successfully."
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Response
Response Fields
data
object
id
string
The unique identifier for the blocklist check.
status
string
The status of the blocklist check. Example: pending, processing, completed, partially_completed, failed
pendingprocessingcompletedpartially_completedfailed
unique_hosts_checked
integer
The number of unique hosts checked.
total_hosts_detected
integer
The number of hosts detected.
urls_scanned
integer
The number of URLs scanned.
urls_skipped
integer
The number of URLs skipped.
blocklisted
boolean
Whether the check is blocklisted.
credits_used
integer
The number of credits used.
error_message
string
The error message if the check failed.
started_at
string
The date and time the check started.
completed_at
string
The date and time the check completed.
results
object
Detailed results of the blocklist check. Only included when the check is completed and results are requested. Contains a data array with monitoring history items.
data array with monitoring history items.
data
string[]
Array of blacklist monitoring history items, each containing URL, redirect information, and blocklist status for each host checked.
url
string
The URL that was checked for blocklist status.
total_redirects
integer
Total number of redirects found for this URL.
redirect_urls
string[]
Array of redirect URLs encountered during the check.
hosts_checked
string[]
Array of hosts that were checked for blocklist status.
host
string
The hostname that was checked.
position
integer
The position of this host in the redirect chain.
blocklisted
boolean
Whether this host is blocklisted.
listed_details
string[]
Array of blocklist details for this host.
host
string
The blocklist hostname.
name
string
The name of the blocklist.
listed
boolean
Whether the host is listed on this blocklist.
details
string
Additional details about the blocklist status.
Retrieve Blocklist Scan Status.
requires authentication
Example request:
curl --request GET \
--get "https://postmasterplus.app/api/v1/blocklist/scan/status/01ARZ3NDEKTSV4RRFFQ69G5FAV" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://postmasterplus.app/api/v1/blocklist/scan/status/01ARZ3NDEKTSV4RRFFQ69G5FAV"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://postmasterplus.app/api/v1/blocklist/scan/status/01ARZ3NDEKTSV4RRFFQ69G5FAV';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://postmasterplus.app/api/v1/blocklist/scan/status/01ARZ3NDEKTSV4RRFFQ69G5FAV'
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers)
response.json()Example response (200):
{
"data": {
"id": "01kq078y20hz059cxwegesh4w7",
"status": "pending",
"unique_hosts_checked": 4,
"total_hosts_detected": null,
"urls_scanned": 0,
"urls_skipped": 0,
"blocklisted": false,
"credits_used": 0,
"error_message": "",
"started_at": null,
"completed_at": null
},
"success": true,
"message": "Blocklist check status retrieved successfully."
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Response
Response Fields
data
object
id
string
The unique identifier for the blocklist check.
status
string
The status of the blocklist check. Example: pending, processing, completed, partially_completed, failed
pendingprocessingcompletedpartially_completedfailed
unique_hosts_checked
integer
The number of unique hosts checked.
total_hosts_detected
integer
The number of hosts detected.
urls_scanned
integer
The number of URLs scanned.
urls_skipped
integer
The number of URLs skipped.
blocklisted
boolean
Whether the check is blocklisted.
credits_used
integer
The number of credits used.
error_message
string
The error message if the check failed.
started_at
string
The date and time the check started.
completed_at
string
The date and time the check completed.
results
object
Detailed results of the blocklist check. Only included when the check is completed and results are requested. Contains a data array with monitoring history items.
data array with monitoring history items.
data
string[]
Array of blacklist monitoring history items, each containing URL, redirect information, and blocklist status for each host checked.
url
string
The URL that was checked for blocklist status.
total_redirects
integer
Total number of redirects found for this URL.
redirect_urls
string[]
Array of redirect URLs encountered during the check.
hosts_checked
string[]
Array of hosts that were checked for blocklist status.
host
string
The hostname that was checked.
position
integer
The position of this host in the redirect chain.
blocklisted
boolean
Whether this host is blocklisted.
listed_details
string[]
Array of blocklist details for this host.
host
string
The blocklist hostname.
name
string
The name of the blocklist.
listed
boolean
Whether the host is listed on this blocklist.
details
string
Additional details about the blocklist status.
Spam Identifiers
Retrieve Spam Identifiers.
requires authentication
List all Gmail Postmaster Tools v2 spam (feedback loop) identifiers reported for accessible domains in the given date range, along with each identifier's average complaint rate across that window.
Example request:
curl --request GET \
--get "https://postmasterplus.app/api/v1/spam-identifiers?domain_id=01ARZ3NDEKTSV4RRFFQ69G5FAV&page=1&start_date=2026-01-22&end_date=2026-04-22" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://postmasterplus.app/api/v1/spam-identifiers"
);
const params = {
"domain_id": "01ARZ3NDEKTSV4RRFFQ69G5FAV",
"page": "1",
"start_date": "2026-01-22",
"end_date": "2026-04-22",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://postmasterplus.app/api/v1/spam-identifiers';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'domain_id' => '01ARZ3NDEKTSV4RRFFQ69G5FAV',
'page' => '1',
'start_date' => '2026-01-22',
'end_date' => '2026-04-22',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://postmasterplus.app/api/v1/spam-identifiers'
params = {
'domain_id': '01ARZ3NDEKTSV4RRFFQ69G5FAV',
'page': '1',
'start_date': '2026-01-22',
'end_date': '2026-04-22',
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()Example response (200):
{
"success": true,
"message": "Spam identifiers retrieved successfully.",
"data": [
{
"domain": {
"id": "01ARZ3NDEKTSV4RRFFQ69G5FAV",
"value": "example.com"
},
"identifier": "66189376",
"sample_count": 57,
"average_complaint_rate": 0.12
},
{
"domain": {
"id": "01ARZ3NDEKTSV4RRFFQ69G5FBG",
"value": "example.net"
},
"identifier": "66189799",
"sample_count": 40,
"average_complaint_rate": 0.05
}
],
"meta": {
"current_page": 1,
"last_page": 1,
"per_page": 25,
"total": 2
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Retrieve Spam Identifier.
requires authentication
Return the daily Gmail complaint rate time series for a single spam (feedback loop) identifier across accessible domains, plus the aggregate average over the selected date range for each domain.
Example request:
curl --request GET \
--get "https://postmasterplus.app/api/v1/spam-identifiers/66189376?domain_id=01ARZ3NDEKTSV4RRFFQ69G5FAV&start_date=2026-01-22&end_date=2026-04-22" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://postmasterplus.app/api/v1/spam-identifiers/66189376"
);
const params = {
"domain_id": "01ARZ3NDEKTSV4RRFFQ69G5FAV",
"start_date": "2026-01-22",
"end_date": "2026-04-22",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://postmasterplus.app/api/v1/spam-identifiers/66189376';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'domain_id' => '01ARZ3NDEKTSV4RRFFQ69G5FAV',
'start_date' => '2026-01-22',
'end_date' => '2026-04-22',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://postmasterplus.app/api/v1/spam-identifiers/66189376'
params = {
'domain_id': '01ARZ3NDEKTSV4RRFFQ69G5FAV',
'start_date': '2026-01-22',
'end_date': '2026-04-22',
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()Example response (200):
{
"success": true,
"message": "Spam identifier retrieved successfully.",
"data": [
{
"identifier": "66189376",
"domain": {
"id": "01ARZ3NDEKTSV4RRFFQ69G5FAV",
"value": "example.com"
},
"date_range": {
"start_date": "2026-01-22",
"end_date": "2026-04-22"
},
"aggregate": {
"average_complaint_rate": 0.12,
"sample_count": 57
},
"time_series": [
{
"date": "2026-01-22",
"complaint_rate": 0.1
},
{
"date": "2026-01-23",
"complaint_rate": null
}
]
}
]
}
Example response (404):
{
"success": false,
"message": "Spam identifier not found for accessible domains in the selected date range.",
"data": []
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Tools
Screenshot
Take Screenshot.
requires authentication
Take a screenshot of a URL or HTML content.
Example request:
curl --request POST \
"https://postmasterplus.app/api/v1/screenshot/take" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"url\": \"\\\"https:\\/\\/example.com\\\"\",
\"width\": 1280,
\"height\": 720,
\"format\": \"\\\"png\\\"\",
\"device_scale\": 1
}"
const url = new URL(
"https://postmasterplus.app/api/v1/screenshot/take"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"url": "\"https:\/\/example.com\"",
"width": 1280,
"height": 720,
"format": "\"png\"",
"device_scale": 1
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://postmasterplus.app/api/v1/screenshot/take';
$response = $client->post(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'json' => [
'url' => '"https://example.com"',
'width' => 1280,
'height' => 720,
'format' => '"png"',
'device_scale' => 1,
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://postmasterplus.app/api/v1/screenshot/take'
payload = {
"url": "\"https:\/\/example.com\"",
"width": 1280,
"height": 720,
"format": "\"png\"",
"device_scale": 1
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()Example response (200):
{
"data": {
"id": "01kq078y2kgfbyc2hec2xspsqx",
"url": "https://assets.optipub.com/postmaster/screenshots/01kq078y2df0f4wx6w80cx9c4t/01kq078y2kgfbyc2hec2xspsqx.png",
"format": "png",
"width": 1024,
"height": 600,
"device_scale": 3,
"credits_used": 1,
"started_at": "2026-04-14T11:07:25+00:00",
"completed_at": "2026-04-14T11:07:38+00:00",
"created_at": "2026-04-24T17:05:51+00:00"
},
"success": true,
"message": "Screenshot taken successfully."
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Response
Response Fields
data
object
id
string
The unique identifier for the screenshot.
url
string
The URL of the screenshot image.
format
string
The format of the screenshot image. Example: png, jpeg
width
integer
The width of the screenshot in pixels.
height
integer
The height of the screenshot in pixels.
device_scale
integer
The device scale factor used (1-3). Higher values produce sharper images.
credits_used
integer
The number of credits used for this screenshot.
started_at
string
The date and time when the screenshot capture started.
completed_at
string
The date and time when the screenshot capture completed.
created_at
string
The date and time the screenshot was created.
List Screenshots.
requires authentication
Retrieve a paginated list of screenshots for the current team.
Example request:
curl --request GET \
--get "https://postmasterplus.app/api/v1/screenshots?per_page=15&page=1&sort=-created_at" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://postmasterplus.app/api/v1/screenshots"
);
const params = {
"per_page": "15",
"page": "1",
"sort": "-created_at",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://postmasterplus.app/api/v1/screenshots';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'per_page' => '15',
'page' => '1',
'sort' => '-created_at',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://postmasterplus.app/api/v1/screenshots'
params = {
'per_page': '15',
'page': '1',
'sort': '-created_at',
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()Example response (200):
{
"success": true,
"message": "Screenshots retrieved successfully.",
"data": [
{
"id": "01ARZ3NDEKTSV4RRFFQ69G5FAV",
"url": "https://assets.optipub.com/postmaster/screenshots/01arz3ndektsv4rrffq69g5fav/01arz3ndektsv4rrffq69g5fav.png",
"format": "png",
"width": 1280,
"height": 720,
"credits_used": 1,
"created_at": "2024-01-15T10:30:00Z"
}
],
"meta": {
"current_page": 1,
"from": 1,
"last_page": 5,
"per_page": 15,
"to": 15,
"total": 75
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Get Screenshot.
requires authentication
Retrieve details of a specific screenshot by its ID.
Example request:
curl --request GET \
--get "https://postmasterplus.app/api/v1/screenshot/01ARZ3NDEKTSV4RRFFQ69G5FAV" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://postmasterplus.app/api/v1/screenshot/01ARZ3NDEKTSV4RRFFQ69G5FAV"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://postmasterplus.app/api/v1/screenshot/01ARZ3NDEKTSV4RRFFQ69G5FAV';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://postmasterplus.app/api/v1/screenshot/01ARZ3NDEKTSV4RRFFQ69G5FAV'
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers)
response.json()Example response (200):
{
"data": {
"id": "01kq078y3dm6n8mh7331hxrxcc",
"url": "https://assets.optipub.com/postmaster/screenshots/01kq078y38848v70vhhagqc8xk/01kq078y3dm6n8mh7331hxrxcc.png",
"format": "png",
"width": 800,
"height": 600,
"device_scale": 2,
"credits_used": 1,
"started_at": "2026-04-14T07:48:15+00:00",
"completed_at": "2026-04-14T07:48:45+00:00",
"created_at": "2026-04-24T17:05:51+00:00"
},
"success": true,
"message": "Screenshot retrieved successfully."
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Response
Response Fields
data
object
id
string
The unique identifier for the screenshot.
url
string
The URL of the screenshot image.
format
string
The format of the screenshot image. Example: png, jpeg
width
integer
The width of the screenshot in pixels.
height
integer
The height of the screenshot in pixels.
device_scale
integer
The device scale factor used (1-3). Higher values produce sharper images.
credits_used
integer
The number of credits used for this screenshot.
started_at
string
The date and time when the screenshot capture started.
completed_at
string
The date and time when the screenshot capture completed.
created_at
string
The date and time the screenshot was created.