Test before you ship
Start a spam check from a deploy step or a CI job, send the message your app really sends, and read the score before the campaign goes out.
Run the same checks the dashboard runs, from your own code: spam tests, inbox placement, client previews and recurring automatic tests. 29 endpoints across 6 areas, one bearer token, JSON in and JSON out.
Start a spam check from a deploy step or a CI job, send the message your app really sends, and read the score before the campaign goes out.
Connect a sender once and let scheduled tests run on their own cadence, so inbox placement is checked on a schedule instead of only when somebody remembers.
Ask for client previews on a test you already ran and get one entry per device, each captured in a real client rather than simulated from the markup.
Scores, authentication results, heatmaps and screenshots all come back as JSON, so they land in your own dashboard or your own alerts.
Anything that already speaks HTTP can run these checks. These are the places the API usually lands, and the teams that get the most out of it.
Run a spam check as a build step and fail the deploy when the score drops, so a template edit cannot quietly cost you the inbox.
The test receives a real message from your real path: SES, Postmark, SendGrid, Mailgun or your own SMTP, whatever already sends your email.
Scores, placement and authentication results come back as JSON, so they land in the dashboard your team already watches.
Poll scheduled test runs from a cron job and alert whoever is on call when placement drops, before the open rate does.
Embed the checks in your own product on the White Label plan: an email builder or an agency platform can offer spam testing under its own brand.
Over MCP, the same jobs are tools an assistant can call, so a check can run in the middle of a conversation with no client code written.
One token per integration, a small set of status codes, and the same jobs available to AI clients over MCP.
Every request carries a bearer token in the Authorization header. Tokens are created in your account, one per integration, and revoking one leaves the others working.
A missing, malformed or revoked token answers 401. A valid token on an account that may not make the call answers 403, and the body names the reason, so a billing problem is never mistaken for a broken integration.
A call that starts work answers with an id. You poll that id until the result is ready, which keeps the integration to plain outbound HTTP with nothing of yours exposed publicly.
The API uses a small set of codes and nothing outside it. A 422 means the request parsed and the values were rejected, with the fields named, so a bad payload never looks like a rejected account.
AI clients reach the same work over MCP, as JSON-RPC 2.0 to a single endpoint, so an assistant can run a spam check and read the result without anyone writing a client for it.
MCP authenticates with OAuth 2.1 and there is no token to paste: the client runs the flow when you add the server. The bearer token above is for the REST API only.
The spam check is the shortest path through the API. Inbox placement and previews follow the same shape: start something, take the id, read the result.
In your account, one token per integration, each revocable on its own.
POST to the spam check endpoint. The response carries the test id and the address to send your email to.
From the platform you really send with, to the address the API returned, so the test measures your actual sending setup rather than a copy of it.
GET the test by its id for the score and the authentication results, then ask for the heatmap or the client previews on the same id.
Plans, limits, where the reference lives, and what a 403 is telling you.
API access is included with the White Label plan. The current prices are on the pricing page.
See pricing