Get Monitor Messages
curl --request GET \
--url https://api.campaigncleaner.com/v1/monitor_get_messagesimport requests
url = "https://api.campaigncleaner.com/v1/monitor_get_messages"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.campaigncleaner.com/v1/monitor_get_messages', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.campaigncleaner.com/v1/monitor_get_messages",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.campaigncleaner.com/v1/monitor_get_messages"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.campaigncleaner.com/v1/monitor_get_messages")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.campaigncleaner.com/v1/monitor_get_messages")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"page": 1,
"page_size": 50,
"total": 21,
"messages": [
{
"message_id": 9821,
"domain_id": 12,
"domain": "example.com",
"from": "news@example.com",
"subject": "October offers",
"seed": "cc_seed_01@aol.com",
"provider": "AOL",
"provider_key": "imap.aol.com",
"placement": "Spam",
"folder": "Bulk",
"received_at": "2026-10-20T11:29:00Z",
"authentication": {
"passed": true,
"spf": "pass",
"dkim": "pass",
"dmarc": "pass"
}
}
]
}Inbox Placement Monitor
Get Monitor Messages
The monitor_get_messages API returns every stored copy of your mail that reached a seed, newest first, with where it landed and its authentication results. Messages are kept for 30 days.
Parameters can be sent in the query string, or in a JSON body with POST.
Header:
X-CC-API-Key: Your API Key
Parameters (all optional):
- domain_id: Only this monitored domain (default: all verified domains).
- provider_key: Only this provider (values from monitor_get_seeds).
- placement: Inbox, Spam, Promotions, Social, Updates, Newsletter, Announcements, Forums or Other.
- days: 1 to 30, default 30.
- page: 1-based, default 1.
- page_size: 1 to 200, default 50.
Response:
- page, page_size, total
- messages:
- message_id: Use with monitor_get_message.
- domain_id, domain: The monitored domain the message matched.
- from, subject
- seed, provider, provider_key: The seed it reached.
- placement: Where it landed (normalized).
- folder: The mailbox folder it was found in.
- received_at: UTC time.
- authentication: passed (true/false), spf, dkim, dmarc.
GET
/
v1
/
monitor_get_messages
Get Monitor Messages
curl --request GET \
--url https://api.campaigncleaner.com/v1/monitor_get_messagesimport requests
url = "https://api.campaigncleaner.com/v1/monitor_get_messages"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.campaigncleaner.com/v1/monitor_get_messages', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.campaigncleaner.com/v1/monitor_get_messages",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.campaigncleaner.com/v1/monitor_get_messages"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.campaigncleaner.com/v1/monitor_get_messages")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.campaigncleaner.com/v1/monitor_get_messages")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"page": 1,
"page_size": 50,
"total": 21,
"messages": [
{
"message_id": 9821,
"domain_id": 12,
"domain": "example.com",
"from": "news@example.com",
"subject": "October offers",
"seed": "cc_seed_01@aol.com",
"provider": "AOL",
"provider_key": "imap.aol.com",
"placement": "Spam",
"folder": "Bulk",
"received_at": "2026-10-20T11:29:00Z",
"authentication": {
"passed": true,
"spf": "pass",
"dkim": "pass",
"dmarc": "pass"
}
}
]
}
