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.
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": 124,
"email": "eloisa.harber@example.com",
"status": null,
"created_at": "2026-01-15 14:15:16",
"updated_at": "2026-01-15 14:15:16"
}
}
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()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": "01kf105dbhcgas62jvnk1h5x0j",
"status": "pending",
"unique_hosts_checked": 1,
"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."
}
Example response (200):
{
"success": true,
"message": "Blocklist check started successfully.",
"data": {
"id": "01ARZ3NDEKTSV4RRFFQ69G5FAV",
"status": "pending",
"unique_hosts_checked": 0,
"total_hosts_detected": null,
"urls_scanned": 0,
"urls_skipped": 0,
"blocklisted": false,
"credits_used": 1,
"error_message": "",
"started_at": "2024-01-15T10:30:00Z",
"completed_at": null
}
}
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.
success
boolean
Whether the request was successful.
message
string
The message of the response.
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": "01kf105dc1afatp94war8rek5q",
"status": "pending",
"unique_hosts_checked": 1,
"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."
}
Example response (200):
{
"success": true,
"message": "Blocklist check status retrieved successfully.",
"data": {
"id": "01ARZ3NDEKTSV4RRFFQ69G5FAV",
"status": "completed",
"unique_hosts_checked": 5,
"total_hosts_detected": 3,
"urls_scanned": 2,
"urls_skipped": 0,
"blocklisted": true,
"credits_used": 1,
"error_message": "",
"started_at": "2024-01-15T10:30:00Z",
"completed_at": "2024-01-15T10:35:00Z",
"results": {
"data": [
{
"url": "https://example.com",
"total_redirects": 2,
"redirect_urls": [
"https://example.com/redirect1",
"https://example.com/redirect2"
],
"hosts_checked": [
{
"host": "example.com",
"position": 1,
"blocklisted": true,
"listed_details": [
{
"host": "example.com",
"name": "Spamhaus ZEN",
"listed": true,
"details": "Listed on Spamhaus ZEN"
}
]
}
]
}
]
}
}
}
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.
success
boolean
Whether the request was successful.
message
string
The message of the response.
Endpoints
POST api/v1/data-sources/report/validity
requires authentication
Example request:
curl --request POST \
"https://postmasterplus.app/api/v1/data-sources/report/validity" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"From\": \"consequatur\",
\"Headers\": [],
\"Attachments\": [],
\"ToFull\": []
}"
const url = new URL(
"https://postmasterplus.app/api/v1/data-sources/report/validity"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"From": "consequatur",
"Headers": [],
"Attachments": [],
"ToFull": []
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://postmasterplus.app/api/v1/data-sources/report/validity';
$response = $client->post(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'json' => [
'From' => 'consequatur',
'Headers' => [],
'Attachments' => [],
'ToFull' => [],
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://postmasterplus.app/api/v1/data-sources/report/validity'
payload = {
"From": "consequatur",
"Headers": [],
"Attachments": [],
"ToFull": []
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()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": "01kf105dcszpsgya8k94nadyk8",
"url": "https://assets.optipub.com/postmaster/screenshots/01kf105dch8rxtaf1jdf7tqg8s/01kf105dcszpsgya8k94nadyk8.png",
"format": "png",
"width": 1280,
"height": 600,
"device_scale": 2,
"credits_used": 1,
"started_at": "2026-01-15T00:24:50+00:00",
"completed_at": "2026-01-15T00:24:57+00:00",
"created_at": "2026-01-15T14:15:16+00:00"
},
"success": true,
"message": "Screenshot taken successfully."
}
Example response (200):
{
"success": true,
"message": "Screenshot taken 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"
}
}
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.
success
boolean
Whether the request was successful.
message
string
The message of the response.
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" \
--data "{
\"per_page\": 21,
\"page\": 45,
\"sort\": \"format\"
}"
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",
};
let body = {
"per_page": 21,
"page": 45,
"sort": "format"
};
fetch(url, {
method: "GET",
headers,
body: JSON.stringify(body),
}).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',
],
'json' => [
'per_page' => 21,
'page' => 45,
'sort' => 'format',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));import requests
import json
url = 'https://postmasterplus.app/api/v1/screenshots'
payload = {
"per_page": 21,
"page": 45,
"sort": "format"
}
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, json=payload, 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": "01kf105ddn4zxjyyg96wgyzxh6",
"url": "https://assets.optipub.com/postmaster/screenshots/01kf105ddfq7shp5g2yz52kv13/01kf105ddn4zxjyyg96wgyzxh6.jpg",
"format": "jpeg",
"width": 1280,
"height": 1080,
"device_scale": 1,
"credits_used": 1,
"started_at": "2025-12-31T08:41:27+00:00",
"completed_at": "2025-12-31T08:41:37+00:00",
"created_at": "2026-01-15T14:15:16+00:00"
},
"success": true,
"message": "Screenshot retrieved successfully."
}
Example response (200):
{
"success": true,
"message": "Screenshot 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"
}
}
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.
success
boolean
Whether the request was successful.
message
string
The message of the response.