{"uid":"cap_rrIee4TKeXIf6o6-pPzKd","slug":"spf-record-parser-d013b5d3","name":"SPF Record Parser","description":"Parse an SPF TXT record (\"v=spf1 …\") into its qualified mechanisms and modifiers. Records that do not start with v=spf1 or use unknown mechanisms are clean 400s.","url":"https://emailauth.openverbs.com/v1/spf-parse","method":"POST","headers":{},"bodySchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["input"],"properties":{"input":{"type":"object","required":["type","method","bodyType","body"],"properties":{"body":{"type":"object","required":["record"],"properties":{"record":{"type":"string","description":"SPF TXT record, e.g. \"v=spf1 ip4:192.0.2.0/24 include:_spf.example.com ~all\"."}},"additionalProperties":false},"type":{"type":"string","const":"http"},"method":{"enum":["POST"],"type":"string"},"bodyType":{"enum":["json","form-data","text"],"type":"string"}},"additionalProperties":false}}},"responseSchema":null,"example":null,"exampleRequest":null,"tags":["x402"],"displayCostAmount":"0.004","displayCostAsset":"USDC","priceDynamic":false,"priceHint":null,"priceStatus":"priced","priceSource":"probe","requiresHandshake":false,"reviewCount":0,"rating":{"score":"0.00","successRate":"0.00","reviews":0,"stars":null,"state":"unrated"},"availabilityStatus":"unknown","priceObserved":null,"sessionDeposit":null,"pricing":{"kind":"static","summary":"$0.004/call","primary":{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.004","per":"call","confidence":"exact"},"accepted":[{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.004","per":"call","confidence":"exact"}]},"paymentMethods":[{"uid":"pm_FSPAmZtBj9bO0K8gTdUPT","protocol":"x402","methodType":"crypto","chain":"base","mode":"charge","costAmount":"0.004","costPer":"request","priority":0,"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","unit":"request","depositMicros":null,"planRef":null}],"brandName":null,"brandSlug":null,"brandBaseUrl":null,"brandDocsUrl":null,"whatItDoes":"Parses an SPF TXT record string into its constituent qualified mechanisms and modifiers","exampleAgentPrompt":"Can you parse this SPF record for me and break down all its mechanisms and modifiers: 'v=spf1 ip4:192.0.2.0/24 include:_spf.google.com ~all'?","exampleUseCases":[{"title":"Audit domain email sender policy","prompt":"I need to understand exactly which IP ranges and third-party senders are authorized in this SPF record — can you parse it out: 'v=spf1 ip4:203.0.113.5 include:sendgrid.net include:_spf.mailchimp.com -all'?"},{"title":"Debug SPF misconfiguration","prompt":"Our emails keep failing SPF checks — can you parse this SPF TXT record and list all the mechanisms so I can figure out what's wrong: 'v=spf1 ip4:10.0.0.0/8 ip6:2001:db8::/32 include:_spf.example.com ?all'?"},{"title":"Compare SPF record before and after update","prompt":"I just updated our domain's SPF record. Can you parse 'v=spf1 ip4:198.51.100.0/24 include:mail.protection.outlook.com ~all' and show me all the mechanisms so I can verify the change looks right?"}],"resultDescription":"A structured breakdown of the SPF record's qualified mechanisms (ip4, ip6, include, a, mx, all, etc.) and modifiers (redirect, exp), each with its qualifier (pass, fail, softfail, neutral) and associated values. Returns a 400 error for records that don't start with v=spf1 or contain unrecognized mechanisms.","failureModes":["400 if the record string does not begin with 'v=spf1'","400 if the record contains unknown or unsupported mechanisms","400 if the record field is missing or empty","Malformed IP ranges or include targets may cause parsing errors"],"whenToPreferThis":"Use this endpoint when you need to programmatically decompose an SPF TXT record string into structured, queryable mechanisms and modifiers — for example, auditing which IPs or senders are authorized, validating a record before publishing, or diffing two records. Prefer this over the sibling SPF-evaluate endpoint when you want structural analysis of the record itself rather than testing a specific IP against it.","instructions":null,"reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":0,"lastUsedAt":null,"lastSuccessfullyRanAt":null,"lastHealthCheckAt":"2026-09-13T18:35:15.913Z","isFirstParty":false}