{"provider":{"host":"emailauth.openverbs.com","name":"Parse an SPF record","score":69.9,"live":true,"checkedAt":"2026-10-27T19:10:09.512Z","uptime72h":100,"lastCheck":{"httpStatus":402,"ms":580,"note":"valid x402 v2 terms"},"endpoints":4,"networks":["eip155:8453"],"cheapestUsd":"0.004","income7dUsd":"21.821","payers7d":28,"transfers7d":1470,"payoutAddressShared":true,"claimed":false,"page":"https://logicnodes.io/observatory/p/emailauth.openverbs.com"},"endpoints":[{"url":"https://emailauth.openverbs.com/v1/dkim-parse","method":"POST","priceMicroUsd":4000,"networks":["eip155:8453"],"description":"Parse a DKIM public-key DNS TXT record (\"v=DKIM1; k=rsa; p=…\") into its key type, public key, hash algorithms, service types and flags. An empty `p` is reported as a revoked key. A missing `p` tag is a clean 400."},{"url":"https://emailauth.openverbs.com/v1/dmarc-parse","method":"POST","priceMicroUsd":4000,"networks":["eip155:8453"],"description":"Parse a DMARC TXT record (\"v=DMARC1; p=…\") into its policy, alignment, sampling and reporting tags. Missing or invalid policy/alignment/pct values are clean 400s."},{"url":"https://emailauth.openverbs.com/v1/spf-check","method":"POST","priceMicroUsd":4000,"networks":["eip155:8453"],"description":"Evaluate an SPF record against an IPv4/IPv6 address using only its literal ip4/ip6/all mechanisms. DNS-dependent mechanisms (include, a, mx, exists, redirect) reached before a match yield an honest `indeterminate` result rather than a guess."},{"url":"https://emailauth.openverbs.com/v1/spf-parse","method":"POST","priceMicroUsd":4000,"networks":["eip155:8453"],"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."}]}