SPF Flattener
Useful for mail operations, audits, and agent workflows that need to reason about SPF include expansion.
Use This Skill
Endpoints
| Method | Path | Status | Modes |
|---|---|---|---|
| POST | /api/v1/spf-flattener |
live | json |
Input Contract
Provide a domain name whose TXT records contain an SPF policy.
Output Contract
Returns traversal stages, raw output, final flattened SPF record, or a DNS/error message.
Errors
Invalid domain, no SPF record, DNS lookup failure, flattening process failure.
Auth and Limits
Anonymous JSON API for initial rollout. Use the /api/v1 endpoint for agents; browser form submissions remain protected by CSRF and reCAPTCHA.
JSON API uses the standard API throttle.
Examples
Requests
POST /api/v1/spf-flattener {"domain":"example.com"}
Responses
{"domain":"example.com","finalSPFRecord":"v=spf1 ip4:192.0.2.0/24 ~all"}
FAQ
Should every SPF record be flattened?
No. Flattening can help with lookup limits, but it also creates maintenance obligations when provider ranges change.
Can an agent post to the web form route?
No. Agents should post JSON to /api/v1/spf-flattener. The /spf-flatten/process route is a browser form path and intentionally requires CSRF and reCAPTCHA.