Real client captures, not simulations.
Every preview is your email opened in an actual copy of the client and device, then screenshotted. No CSS transforms, no browser emulation: the PNG you get is what a subscriber on that client sees.
Render your real email across 50+ real email clients and devices via REST: create a spam-check, send the message, then read back pixel-accurate client previews as JSON, each captured from a live client in light and dark mode. The same renders are exposed as MCP tools, so AI agents can run an email rendering test in plain language.
Every preview is your email opened in an actual copy of the client and device, then screenshotted. No CSS transforms, no browser emulation: the PNG you get is what a subscriber on that client sees.
Each of the 50+ clients renders in both modes, so one call returns 100+ images and the inverted logo or unreadable dark-mode text shows up in your pipeline, not in production.
Pass devices with keys from the catalog to render only the clients you care about (just iOS Mail, just every Outlook), or omit it for the full set. Newly requested devices come back pending; poll until each is completed.
The preview endpoints ship as MCP tools (get_spam_check_client_previews, list_client_preview_devices) on the Unspam MCP server, so Claude, Cursor, or any MCP client can pull real client renders mid-conversation.
Real client screenshots as JSON: one entry per device, each captured from a live client in light and dark mode.
GET /spam-check/{id}/client-previews returns a top-level status and a previews[] array with one entry per device: device_key, device_name, per-device status, and CDN URLs for the original and thumbnail renders.
original and thumbnail stay null until that device flips to completed, so a simple poll loop drains the whole set. Most devices land within about a minute.
GET /client-preview-devices lists every renderable client with its device_key, display name, and category (DESKTOP, MOBILE, WEB). Cache it, show it in your own UI, or use it to build the devices filter for the render call.
Filtering matters for quota: rendering three Outlook versions instead of the full set spends your device previews deliberately, which is exactly what you want in a CI job that runs on every template change.
Connect the Unspam MCP server over OAuth and your assistant gets the preview tools next to spam checks and inbox placement. Ask it to render the campaign and flag anything broken in Outlook dark mode, and it chains the calls itself.
No other email preview service exposes real client renders to AI agents today: MCP support means your agent workflows can do rendering QA without a human opening a dashboard.
Previews ride on the spam-check flow: create a test, send your email to the inbox address we return, then read the renders per device.
POST /ext/v2/spam-check with your bearer token. The 201 response hands back a test id and a unique inbox_address.
From your transactional pipeline, marketing platform, or a CI step. The exact message your audience would receive is what gets rendered.
GET /ext/v2/spam-check/{id}/client-previews returns the per-device renders. Poll on a back-off while devices are pending; URLs appear as each one completes.
Pull the catalog from GET /ext/v2/client-preview-devices and pass devices to render a subset. The same test also serves /screenshots and /heatmap if you want the visual extras.
Integration, device filtering, MCP access for AI agents, and how the preview endpoints behave.
POST /ext/v2/spam-check returns an inbox_address; you send the real email there; then GET /ext/v2/spam-check/{id}/client-previews returns one entry per device with per-device status and image URLs. Devices complete independently, so poll until the set you need is completed.devices query parameter with keys from GET /ext/v2/client-preview-devices to render a subset, for example only iOS Mail or only the Outlook family. Scoping the render also scopes what it costs against your device-preview quota.get_spam_check_client_previews and list_client_preview_devices, next to the spam-check and inbox-placement tools. Connect Claude, Cursor, or ChatGPT over OAuth and ask for renders in plain language; no keys to paste./spam-check/{id}/screenshots returns three viewport renders (desktop, tablet, mobile) of the message. /spam-check/{id}/client-previews renders the email inside 50+ real client applications, each in light and dark mode, so it catches client-specific breakage like the Outlook Word engine or a dark-mode logo inversion.API access is included with the White Label plan. Pricing on the public page, custom limits over chat.
See pricing