Partner Embed Integration: Add Email Health Checks to Your Product
A guide for partners and integrators who want to embed email health checks in their own products. Covers the iframe widget, JSON API, DKIM selectors, and rate limits.
What the Email Health Widget Shows
The mxio.io email health widget runs four authentication checks in parallel and displays the results in a self-contained panel:
- MX Records — are mail servers configured and reachable?
- SPF — is the Sender Policy Framework record valid, within lookup limits, and properly structured?
- DKIM — are DomainKeys Identified Mail signatures in place for common selectors?
- DMARC — is there a DMARC policy, and does it align with SPF and DKIM?
Each check shows a pass/warn/fail status with a brief explanation. The overall status summarizes whether the domain's email authentication is healthy.
Why Partners Embed It
Reduce support burden
Email deliverability problems generate support tickets. When your customers can check their own email health in your product, they self-diagnose before contacting you. One less ticket, one less back-and-forth.
Differentiate your product
Most hosting panels, email security platforms, and IT management tools don't show email authentication status. Adding health checks signals that you understand what your customers care about.
White-label ready
Two themes (dark and light) and two layout modes (summary and compact) fit any product design without custom CSS. The widget is fully self-contained — inline styles, no external dependencies.
How It Works
Iframe embed (simplest)
Drop a single <iframe> tag into your HTML:
<iframe
src="https://tools.mxio.io/embed/health?domain=example.com&token=YOUR_TOKEN&selectors=google,selector1&mode=summary&theme=dark"
width="100%"
height="320"
style="border:none"
title="Email Health Check"
></iframe>
The widget is fully self-contained — all styles are inline, no external CSS or JavaScript required. It works in any HTML context: dashboards, documentation pages, control panels, emails (as a linked preview).
JSON API (for custom UIs)
If you need raw data to render your own UI:
curl -H "Authorization: Bearer YOUR_API_KEY" \
"https://tools.mxio.io/api/tools/embed/health?domain=example.com"
The response includes overall_status, individual check results, and a report_url linking to the full report on mxio.io.
Attribution required: When using the JSON API to build a custom UI, you must display "Powered by mxio.io" with a link to mxio.io. The iframe embed includes attribution automatically.
DKIM selectors
By default, the widget shows DKIM as a warning because it has no way to know which selectors your customers use. If you know the selectors (e.g. MailRoute uses mr01, mr02, mr03; Google Workspace uses google), pass them in the selectors parameter:
&selectors=mr01,mr02,google
Up to 5 selectors can be checked per request. By default, if any selector passes, DKIM shows as green — a sensible rule when the selectors are a guess, since a domain should not be marked failing because one guessed selector does not exist.
Requiring your own records
If your product is the mail path, "some valid SPF exists" is not the question you need answered — you need to know whether the customer's domain is configured for you. Two optional per-partner requirements change the widget from a generic health check into a setup check:
- Required SPF include — the widget marks SPF failing unless the customer's record actually authorizes your host (e.g.
spf.mailroute.net). - Required DKIM selectors — every listed selector must carry a usable key, not just one of them.
These are set on your partner record, not in the embed URL, so a white-label page cannot accidentally drop them, and changing them does not mean re-editing every page that carries the snippet. Ask us to configure them.
Three details worth knowing, because they are where a naive check gets the answer wrong:
- The include has to be reachable.
v=spf1 include:_spf.google.com ~all include:spf.example.netdoes not authorize you — SPF evaluation stops atall, so the trailing include never runs. The widget reads it as missing, because receivers do too. - The qualifier has to be a pass.
~include:yields SoftFail and?include:yields Neutral. Neither is an SPF Pass, so neither satisfies a requirement. - Nested includes count. If the customer reaches your host through a reseller's include, the widget resolves the whole chain and passes — and tells them which include it came through, because an indirect path costs against the 10-lookup limit.
When a requirement is not met, the widget says so specifically ("SPF is valid, but MailRoute isn't authorized — add include:spf.mailroute.net") rather than calling the record broken, because it usually isn't. The JSON response carries a requirement_code on the affected check so a server-side integration can branch on the reason without parsing the sentence.
If a lookup fails, the widget reports that it could not confirm the requirement — it never reads a DNS failure as a missing record.
Modes and themes
- Summary mode (default): shows all four checks with status badges and details
- Compact mode: condensed single-row layout for tight spaces
- Dark theme (default): zinc-900 background, designed for dark UIs
- Light theme: white background with subtle borders
Rate Limits
| Tier | Embed Rate | API Rate |
|---|---|---|
| Anonymous (no token) | 10/min per IP | — |
| Partner token (unreviewed) | 30/min per token | — |
| Partner token (reviewed) | 60/min per token | — |
| API key | — | 120/min per key |
New partner tokens work immediately at the starter rate. After admin review, limits are upgraded to the full partner tier.
Getting Started
- Visit the embed integration page for a live preview, copy-paste snippets, and instant token registration
- Register for a partner token — it works immediately at 30 requests/min, upgraded to 60/min after admin review
- Drop the iframe into your product and start embedding
No token is required for basic usage — anonymous embeds work immediately at 10 requests/minute. Partner tokens unlock higher limits and attribution tracking.