{"openapi":"3.1.0","info":{"title":"Web Content Toolkit","version":"0.1.0","description":"Fetch a public URL and extract its readable article, link-preview metadata, structured data (JSON-LD/Open Graph/microdata), sitemap URLs, HTTP/security response headers, trace its redirect chain, check its robots.txt crawl rules, extract and classify all its hyperlinks, or audit its on-page SEO.","x-guidance":"Fetch a public URL and extract its readable article, link-preview metadata, structured data (JSON-LD/Open Graph/microdata), sitemap URLs, HTTP/security response headers, trace its redirect chain, check its robots.txt crawl rules, extract and classify all its hyperlinks, or audit its on-page SEO. Each operation is an HTTP POST to its /v1/<operation> path with a JSON request body (see each operation's requestBody schema) and returns a JSON response. Endpoints are paid per successful call via x402 or MPP (USDC on Base); an unpaid request returns 402 with payment metadata in the WWW-Authenticate header.","contact":{"email":"hello@openverbs.com"}},"x-discovery":{"ownershipProofs":["0xb1401a71756f51464a9962db12f1eb3e9522490cd20010b06d00cf7b7770acfd5f79721f9dfdf2643f8cecd29af3bde9ec133941a386042b32d9886053a70de61b","0xc1c1f11793e18a00fcb7072421f26e89fb75b6aa517fa84370564991f4b10efa024f6f57e4e67eefd20cf46cc01fc5a62d793fa8fbcda04f26c946a3433d73f91b","0x676b474af0ef9ed4809b5d12d2e789b36e52d56215b21f601d71f76620e36ec630347116a7b2b349a3c3681e5db0fbfa76c4169a676b6d6f27864d0e5017284a1c","0xc2ab96522515ed9e9bc4f1a241b774bd48df42e951ddbf7f6aa8fc76f5a96a20421703e1ec402ce7eb1e4eabea3b6e4e4129cf39d56ea91cf4fcf38561fc94fc1c"]},"servers":[{"url":"https://web.openverbs.com"}],"paths":{"/health":{"get":{"summary":"Health check","security":[],"responses":{"200":{"description":"Healthy","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"service":{"type":"string"},"version":{"type":"string"}}}}}}}}},"/v1/extract":{"post":{"summary":"Extract readable content","description":"Fetch a URL and return its main article as clean HTML, Markdown and plain text. Paid endpoint (x402 + MPP). Price: $0.006000 USDC per successful payment.","tags":["extract article text","readable content api","url to markdown","web page to text","html article extraction","fetch article content"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri","maxLength":2048,"description":"Public http(s) URL to fetch. Private/loopback/link-local addresses are rejected."}},"required":["url"],"additionalProperties":false}}}},"responses":{"200":{"description":"The final `url`, `title`, `byline`, `excerpt`, `siteName`, `lang`, `publishedTime`, `length`/`wordCount`, and the article as `content` (HTML), `markdown` and `text`.","content":{"application/json":{"schema":{"type":"object","description":"The final `url`, `title`, `byline`, `excerpt`, `siteName`, `lang`, `publishedTime`, `length`/`wordCount`, and the article as `content` (HTML), `markdown` and `text`."}}}},"400":{"description":"Invalid request; no payment is attempted"},"402":{"description":"Payment required; x402/MPP metadata returned in headers"},"502":{"description":"Upstream provider error after payment verification"}},"x-payment-info":{"amount":"6000","currency":"0x20c000000000000000000000b9537d11c60e8b50","description":"Fetch a URL and return its main article as clean HTML, Markdown and plain text.","method":"tempo","preferredOffer":"mpp-tempo","price":{"mode":"fixed","currency":"USD","amount":"0.006000"},"protocols":[{"x402":{"scheme":"exact","network":"eip155:8453","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}},{"mpp":{"method":"evm","intent":"charge","network":"8453","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}},{"mpp":{"method":"tempo","intent":"charge","network":"4217","currency":"0x20c000000000000000000000b9537d11c60e8b50","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}}],"network":"4217","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A","offers":[{"amount":"6000","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","description":"Fetch a URL and return its main article as clean HTML, Markdown and plain text.","intent":"charge","method":"evm","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"},{"amount":"6000","currency":"0x20c000000000000000000000b9537d11c60e8b50","description":"Fetch a URL and return its main article as clean HTML, Markdown and plain text.","intent":"charge","method":"tempo","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}]}}},"/v1/unfurl":{"post":{"summary":"Unfurl link preview","description":"Fetch a URL and return link-preview metadata from Open Graph, Twitter Card and standard meta tags. Paid endpoint (x402 + MPP). Price: $0.006000 USDC per successful payment.","tags":["link preview api","unfurl url metadata","open graph lookup","twitter card metadata","fetch page preview","url metadata extraction"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri","maxLength":2048,"description":"Public http(s) URL to fetch. Private/loopback/link-local addresses are rejected."}},"required":["url"],"additionalProperties":false}}}},"responses":{"200":{"description":"The final `url`, `title`, `description`, `siteName`, `type`, `image`, `favicon`, `themeColor`, `canonical` and `author` (absolute URLs where applicable).","content":{"application/json":{"schema":{"type":"object","description":"The final `url`, `title`, `description`, `siteName`, `type`, `image`, `favicon`, `themeColor`, `canonical` and `author` (absolute URLs where applicable)."}}}},"400":{"description":"Invalid request; no payment is attempted"},"402":{"description":"Payment required; x402/MPP metadata returned in headers"},"502":{"description":"Upstream provider error after payment verification"}},"x-payment-info":{"amount":"6000","currency":"0x20c000000000000000000000b9537d11c60e8b50","description":"Fetch a URL and return link-preview metadata from Open Graph, Twitter Card and standard meta tags.","method":"tempo","preferredOffer":"mpp-tempo","price":{"mode":"fixed","currency":"USD","amount":"0.006000"},"protocols":[{"x402":{"scheme":"exact","network":"eip155:8453","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}},{"mpp":{"method":"evm","intent":"charge","network":"8453","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}},{"mpp":{"method":"tempo","intent":"charge","network":"4217","currency":"0x20c000000000000000000000b9537d11c60e8b50","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}}],"network":"4217","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A","offers":[{"amount":"6000","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","description":"Fetch a URL and return link-preview metadata from Open Graph, Twitter Card and standard meta tags.","intent":"charge","method":"evm","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"},{"amount":"6000","currency":"0x20c000000000000000000000b9537d11c60e8b50","description":"Fetch a URL and return link-preview metadata from Open Graph, Twitter Card and standard meta tags.","intent":"charge","method":"tempo","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}]}}},"/v1/structured":{"post":{"summary":"Extract structured data","description":"Fetch a URL and pull out its machine-readable structured data: all JSON-LD blocks (schema.org), Open Graph and Twitter Card tags, standard named meta tags, and inline microdata items. Also returns the page title, canonical URL, language and the distinct schema.org types found. Ideal for turning a product, article, recipe, event or organization page into structured fields without bespoke scraping. Paid endpoint (x402 + MPP). Price: $0.006000 USDC per successful payment.","tags":["extract structured data","json ld extraction","schema org lookup","open graph structured data","microdata parser api","web page schema extraction"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri","maxLength":2048,"description":"Public http(s) URL to fetch. Private/loopback/link-local addresses are rejected."}},"required":["url"],"additionalProperties":false}}}},"responses":{"200":{"description":"The final `url`, `title`, `canonical`, `lang`, `schemaTypes` (distinct schema.org types), `jsonld` (parsed JSON-LD objects), `openGraph`, `twitter`, `meta` (named tags) and `microdata` ([{ type, properties }]).","content":{"application/json":{"schema":{"type":"object","description":"The final `url`, `title`, `canonical`, `lang`, `schemaTypes` (distinct schema.org types), `jsonld` (parsed JSON-LD objects), `openGraph`, `twitter`, `meta` (named tags) and `microdata` ([{ type, properties }])."}}}},"400":{"description":"Invalid request; no payment is attempted"},"402":{"description":"Payment required; x402/MPP metadata returned in headers"},"502":{"description":"Upstream provider error after payment verification"}},"x-payment-info":{"amount":"6000","currency":"0x20c000000000000000000000b9537d11c60e8b50","description":"Fetch a URL and pull out its machine-readable structured data: all JSON-LD blocks (schema.org), Open Graph and Twitter Card tags, standard named meta tags, and inline microdata items. Also returns the page title, canonical URL, language and the distinct schema.org types found. Ideal for turning a product, article, recipe, event or organization page into structured fields without bespoke scraping.","method":"tempo","preferredOffer":"mpp-tempo","price":{"mode":"fixed","currency":"USD","amount":"0.006000"},"protocols":[{"x402":{"scheme":"exact","network":"eip155:8453","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}},{"mpp":{"method":"evm","intent":"charge","network":"8453","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}},{"mpp":{"method":"tempo","intent":"charge","network":"4217","currency":"0x20c000000000000000000000b9537d11c60e8b50","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}}],"network":"4217","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A","offers":[{"amount":"6000","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","description":"Fetch a URL and pull out its machine-readable structured data: all JSON-LD blocks (schema.org), Open Graph and Twitter Card tags, standard named meta tags, and inline microdata items. Also returns the page title, canonical URL, language and the distinct schema.org types found. Ideal for turning a product, article, recipe, event or organization page into structured fields without bespoke scraping.","intent":"charge","method":"evm","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"},{"amount":"6000","currency":"0x20c000000000000000000000b9537d11c60e8b50","description":"Fetch a URL and pull out its machine-readable structured data: all JSON-LD blocks (schema.org), Open Graph and Twitter Card tags, standard named meta tags, and inline microdata items. Also returns the page title, canonical URL, language and the distinct schema.org types found. Ideal for turning a product, article, recipe, event or organization page into structured fields without bespoke scraping.","intent":"charge","method":"tempo","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}]}}},"/v1/sitemap":{"post":{"summary":"Discover and parse sitemaps","description":"Discover a site's XML sitemaps (via robots.txt Sitemap: directives, an explicit sitemap URL, or the conventional /sitemap.xml) and parse them into a bounded list of URLs with their lastmod, changefreq and priority. Follows sitemap-index files to their child sitemaps. Fetches and URL counts are capped (with a `truncated` flag) to stay fast and memory-bounded. The reliable way for an agent to enumerate a site's pages. Paid endpoint (x402 + MPP). Price: $0.006000 USDC per successful payment.","tags":["parse sitemap","discover sitemap urls","robots sitemap lookup","website page enumeration","sitemap xml parser","list site urls"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri","maxLength":2048,"description":"Public http(s) URL to fetch. Private/loopback/link-local addresses are rejected."}},"required":["url"],"additionalProperties":false}}}},"responses":{"200":{"description":"The input `url`, `origin`, `robotsUrl`, `sitemapUrls` (sitemap files parsed), `urlCount`, `urls` ([{ loc, lastmod, changefreq, priority }]) and `truncated`.","content":{"application/json":{"schema":{"type":"object","description":"The input `url`, `origin`, `robotsUrl`, `sitemapUrls` (sitemap files parsed), `urlCount`, `urls` ([{ loc, lastmod, changefreq, priority }]) and `truncated`."}}}},"400":{"description":"Invalid request; no payment is attempted"},"402":{"description":"Payment required; x402/MPP metadata returned in headers"},"502":{"description":"Upstream provider error after payment verification"}},"x-payment-info":{"amount":"6000","currency":"0x20c000000000000000000000b9537d11c60e8b50","description":"Discover a site's XML sitemaps (via robots.txt Sitemap: directives, an explicit sitemap URL, or the conventional /sitemap.xml) and parse them into a bounded list of URLs with their lastmod, changefreq and priority. Follows sitemap-index files to their child sitemaps. Fetches and URL counts are capped (with a `truncated` flag) to stay fast and memory-bounded. The reliable way for an agent to enumerate a site's pages.","method":"tempo","preferredOffer":"mpp-tempo","price":{"mode":"fixed","currency":"USD","amount":"0.006000"},"protocols":[{"x402":{"scheme":"exact","network":"eip155:8453","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}},{"mpp":{"method":"evm","intent":"charge","network":"8453","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}},{"mpp":{"method":"tempo","intent":"charge","network":"4217","currency":"0x20c000000000000000000000b9537d11c60e8b50","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}}],"network":"4217","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A","offers":[{"amount":"6000","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","description":"Discover a site's XML sitemaps (via robots.txt Sitemap: directives, an explicit sitemap URL, or the conventional /sitemap.xml) and parse them into a bounded list of URLs with their lastmod, changefreq and priority. Follows sitemap-index files to their child sitemaps. Fetches and URL counts are capped (with a `truncated` flag) to stay fast and memory-bounded. The reliable way for an agent to enumerate a site's pages.","intent":"charge","method":"evm","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"},{"amount":"6000","currency":"0x20c000000000000000000000b9537d11c60e8b50","description":"Discover a site's XML sitemaps (via robots.txt Sitemap: directives, an explicit sitemap URL, or the conventional /sitemap.xml) and parse them into a bounded list of URLs with their lastmod, changefreq and priority. Follows sitemap-index files to their child sitemaps. Fetches and URL counts are capped (with a `truncated` flag) to stay fast and memory-bounded. The reliable way for an agent to enumerate a site's pages.","intent":"charge","method":"tempo","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}]}}},"/v1/headers":{"post":{"summary":"Inspect HTTP response headers","description":"Fetch a URL (following redirects) and return the final response's HTTP headers, the server banner and content-type, plus a security-header audit reporting HSTS, Content-Security-Policy, X-Content-Type-Options, X-Frame-Options, Referrer-Policy, Permissions-Policy and the cross-origin policies (with the missing ones listed). No body is downloaded or parsed. Paid endpoint (x402 + MPP). Price: $0.003000 USDC per successful payment.","tags":["http headers lookup","response headers api","check security headers","hsts csp inspector","server header check","fetch url headers"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri","maxLength":2048,"description":"Public http(s) URL to fetch. Private/loopback/link-local addresses are rejected."}},"required":["url"],"additionalProperties":false}}}},"responses":{"200":{"description":"The requested `url`, `finalUrl`, `status`, `redirected`/`redirectCount`, the full `headers` map, pulled-out `server` and `contentType`, and a `security` object (each header's value or null, plus `missing`).","content":{"application/json":{"schema":{"type":"object","description":"The requested `url`, `finalUrl`, `status`, `redirected`/`redirectCount`, the full `headers` map, pulled-out `server` and `contentType`, and a `security` object (each header's value or null, plus `missing`)."}}}},"400":{"description":"Invalid request; no payment is attempted"},"402":{"description":"Payment required; x402/MPP metadata returned in headers"},"502":{"description":"Upstream provider error after payment verification"}},"x-payment-info":{"amount":"3000","currency":"0x20c000000000000000000000b9537d11c60e8b50","description":"Fetch a URL (following redirects) and return the final response's HTTP headers, the server banner and content-type, plus a security-header audit reporting HSTS, Content-Security-Policy, X-Content-Type-Options, X-Frame-Options, Referrer-Policy, Permissions-Policy and the cross-origin policies (with the missing ones listed). No body is downloaded or parsed.","method":"tempo","preferredOffer":"mpp-tempo","price":{"mode":"fixed","currency":"USD","amount":"0.003000"},"protocols":[{"x402":{"scheme":"exact","network":"eip155:8453","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}},{"mpp":{"method":"evm","intent":"charge","network":"8453","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}},{"mpp":{"method":"tempo","intent":"charge","network":"4217","currency":"0x20c000000000000000000000b9537d11c60e8b50","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}}],"network":"4217","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A","offers":[{"amount":"3000","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","description":"Fetch a URL (following redirects) and return the final response's HTTP headers, the server banner and content-type, plus a security-header audit reporting HSTS, Content-Security-Policy, X-Content-Type-Options, X-Frame-Options, Referrer-Policy, Permissions-Policy and the cross-origin policies (with the missing ones listed). No body is downloaded or parsed.","intent":"charge","method":"evm","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"},{"amount":"3000","currency":"0x20c000000000000000000000b9537d11c60e8b50","description":"Fetch a URL (following redirects) and return the final response's HTTP headers, the server banner and content-type, plus a security-header audit reporting HSTS, Content-Security-Policy, X-Content-Type-Options, X-Frame-Options, Referrer-Policy, Permissions-Policy and the cross-origin policies (with the missing ones listed). No body is downloaded or parsed.","intent":"charge","method":"tempo","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}]}}},"/v1/redirects":{"post":{"summary":"Trace URL redirect chain","description":"Follow a URL's redirect chain (301/302/303/307/308) to its final destination and return every hop with its status and Location. Unwraps link shorteners and cloaked/tracking links so an agent can see where a link really goes before following it. Each hop is SSRF-validated and the chain is capped. Paid endpoint (x402 + MPP). Price: $0.003000 USDC per successful payment.","tags":["url redirect tracer","follow redirect chain","unshorten url api","expand short link","resolve final url","http redirect lookup"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri","maxLength":2048,"description":"Public http(s) URL to fetch. Private/loopback/link-local addresses are rejected."}},"required":["url"],"additionalProperties":false}}}},"responses":{"200":{"description":"The requested `url`, `finalUrl`, final `status`, `redirected`/`redirectCount`, the ordered `chain` ([{ url, status, location }]) and `truncated`.","content":{"application/json":{"schema":{"type":"object","description":"The requested `url`, `finalUrl`, final `status`, `redirected`/`redirectCount`, the ordered `chain` ([{ url, status, location }]) and `truncated`."}}}},"400":{"description":"Invalid request; no payment is attempted"},"402":{"description":"Payment required; x402/MPP metadata returned in headers"},"502":{"description":"Upstream provider error after payment verification"}},"x-payment-info":{"amount":"3000","currency":"0x20c000000000000000000000b9537d11c60e8b50","description":"Follow a URL's redirect chain (301/302/303/307/308) to its final destination and return every hop with its status and Location. Unwraps link shorteners and cloaked/tracking links so an agent can see where a link really goes before following it. Each hop is SSRF-validated and the chain is capped.","method":"tempo","preferredOffer":"mpp-tempo","price":{"mode":"fixed","currency":"USD","amount":"0.003000"},"protocols":[{"x402":{"scheme":"exact","network":"eip155:8453","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}},{"mpp":{"method":"evm","intent":"charge","network":"8453","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}},{"mpp":{"method":"tempo","intent":"charge","network":"4217","currency":"0x20c000000000000000000000b9537d11c60e8b50","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}}],"network":"4217","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A","offers":[{"amount":"3000","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","description":"Follow a URL's redirect chain (301/302/303/307/308) to its final destination and return every hop with its status and Location. Unwraps link shorteners and cloaked/tracking links so an agent can see where a link really goes before following it. Each hop is SSRF-validated and the chain is capped.","intent":"charge","method":"evm","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"},{"amount":"3000","currency":"0x20c000000000000000000000b9537d11c60e8b50","description":"Follow a URL's redirect chain (301/302/303/307/308) to its final destination and return every hop with its status and Location. Unwraps link shorteners and cloaked/tracking links so an agent can see where a link really goes before following it. Each hop is SSRF-validated and the chain is capped.","intent":"charge","method":"tempo","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}]}}},"/v1/robots":{"post":{"summary":"Check robots.txt crawl rules","description":"Fetch a site's robots.txt and evaluate crawl permissions: given a URL (plus optional extra paths) and a user-agent, return whether each path is allowed or disallowed, the rule that matched, the user-agent group, the crawl-delay and any declared sitemaps. Implements the Robots Exclusion Protocol (RFC 9309) with longest-match-wins, Allow-over-Disallow tie-breaking and * / $ wildcards. Paid endpoint (x402 + MPP). Price: $0.006000 USDC per successful payment.","tags":["robots.txt parser","robots txt checker","is url crawlable","crawl permission api","user-agent allow disallow","crawler compliance api"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri","maxLength":2048,"description":"Public http(s) URL to check. Its origin's /robots.txt is fetched and its path is the first path evaluated."},"userAgent":{"type":"string","minLength":1,"maxLength":200,"description":"User-agent token to evaluate rules for, e.g. \"Googlebot\". Defaults to \"*\"."},"paths":{"type":"array","items":{"type":"string","minLength":1,"maxLength":2048},"maxItems":50,"description":"Optional extra paths (or same-origin URLs) to check in the same call, e.g. [\"/admin\", \"/search?q=x\"]. Up to 50."}},"required":["url"],"additionalProperties":false}}}},"responses":{"200":{"description":"The `robotsUrl`, `fetched`, `status`, evaluated `userAgent`, matched `groupUserAgent`, `crawlDelay`, `sitemaps`, and `results` ([{ path, allowed, matchedRule, directive }]).","content":{"application/json":{"schema":{"type":"object","description":"The `robotsUrl`, `fetched`, `status`, evaluated `userAgent`, matched `groupUserAgent`, `crawlDelay`, `sitemaps`, and `results` ([{ path, allowed, matchedRule, directive }])."}}}},"400":{"description":"Invalid request; no payment is attempted"},"402":{"description":"Payment required; x402/MPP metadata returned in headers"},"502":{"description":"Upstream provider error after payment verification"}},"x-payment-info":{"amount":"6000","currency":"0x20c000000000000000000000b9537d11c60e8b50","description":"Fetch a site's robots.txt and evaluate crawl permissions: given a URL (plus optional extra paths) and a user-agent, return whether each path is allowed or disallowed, the rule that matched, the user-agent group, the crawl-delay and any declared sitemaps. Implements the Robots Exclusion Protocol (RFC 9309) with longest-match-wins, Allow-over-Disallow tie-breaking and * / $ wildcards.","method":"tempo","preferredOffer":"mpp-tempo","price":{"mode":"fixed","currency":"USD","amount":"0.006000"},"protocols":[{"x402":{"scheme":"exact","network":"eip155:8453","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}},{"mpp":{"method":"evm","intent":"charge","network":"8453","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}},{"mpp":{"method":"tempo","intent":"charge","network":"4217","currency":"0x20c000000000000000000000b9537d11c60e8b50","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}}],"network":"4217","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A","offers":[{"amount":"6000","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","description":"Fetch a site's robots.txt and evaluate crawl permissions: given a URL (plus optional extra paths) and a user-agent, return whether each path is allowed or disallowed, the rule that matched, the user-agent group, the crawl-delay and any declared sitemaps. Implements the Robots Exclusion Protocol (RFC 9309) with longest-match-wins, Allow-over-Disallow tie-breaking and * / $ wildcards.","intent":"charge","method":"evm","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"},{"amount":"6000","currency":"0x20c000000000000000000000b9537d11c60e8b50","description":"Fetch a site's robots.txt and evaluate crawl permissions: given a URL (plus optional extra paths) and a user-agent, return whether each path is allowed or disallowed, the rule that matched, the user-agent group, the crawl-delay and any declared sitemaps. Implements the Robots Exclusion Protocol (RFC 9309) with longest-match-wins, Allow-over-Disallow tie-breaking and * / $ wildcards.","intent":"charge","method":"tempo","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}]}}},"/v1/links":{"post":{"summary":"Extract and classify page links","description":"Fetch a URL and extract every hyperlink on the page, each resolved to an absolute URL and classified as internal vs external (by registrable host), with its anchor text, rel attributes (nofollow, sponsored, ugc) and whether it opens in a new tab. Returns internal/external/nofollow counts. For SEO link audits, internal-linking analysis and outbound-link/nofollow compliance checks. Paid endpoint (x402 + MPP). Price: $0.006000 USDC per successful payment.","tags":["extract links api","page links api","internal external links","nofollow link checker","outbound links api","link audit api"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri","maxLength":2048,"description":"Public http(s) URL to fetch. Private/loopback/link-local addresses are rejected."}},"required":["url"],"additionalProperties":false}}}},"responses":{"200":{"description":"The `url`, `host`, `total`, `internalCount`, `externalCount`, `nofollowCount`, `truncated` and `links` ([{ url, anchor, rel, internal, nofollow, sponsored, ugc, newTab }]).","content":{"application/json":{"schema":{"type":"object","description":"The `url`, `host`, `total`, `internalCount`, `externalCount`, `nofollowCount`, `truncated` and `links` ([{ url, anchor, rel, internal, nofollow, sponsored, ugc, newTab }])."}}}},"400":{"description":"Invalid request; no payment is attempted"},"402":{"description":"Payment required; x402/MPP metadata returned in headers"},"502":{"description":"Upstream provider error after payment verification"}},"x-payment-info":{"amount":"6000","currency":"0x20c000000000000000000000b9537d11c60e8b50","description":"Fetch a URL and extract every hyperlink on the page, each resolved to an absolute URL and classified as internal vs external (by registrable host), with its anchor text, rel attributes (nofollow, sponsored, ugc) and whether it opens in a new tab. Returns internal/external/nofollow counts. For SEO link audits, internal-linking analysis and outbound-link/nofollow compliance checks.","method":"tempo","preferredOffer":"mpp-tempo","price":{"mode":"fixed","currency":"USD","amount":"0.006000"},"protocols":[{"x402":{"scheme":"exact","network":"eip155:8453","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}},{"mpp":{"method":"evm","intent":"charge","network":"8453","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}},{"mpp":{"method":"tempo","intent":"charge","network":"4217","currency":"0x20c000000000000000000000b9537d11c60e8b50","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}}],"network":"4217","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A","offers":[{"amount":"6000","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","description":"Fetch a URL and extract every hyperlink on the page, each resolved to an absolute URL and classified as internal vs external (by registrable host), with its anchor text, rel attributes (nofollow, sponsored, ugc) and whether it opens in a new tab. Returns internal/external/nofollow counts. For SEO link audits, internal-linking analysis and outbound-link/nofollow compliance checks.","intent":"charge","method":"evm","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"},{"amount":"6000","currency":"0x20c000000000000000000000b9537d11c60e8b50","description":"Fetch a URL and extract every hyperlink on the page, each resolved to an absolute URL and classified as internal vs external (by registrable host), with its anchor text, rel attributes (nofollow, sponsored, ugc) and whether it opens in a new tab. Returns internal/external/nofollow counts. For SEO link audits, internal-linking analysis and outbound-link/nofollow compliance checks.","intent":"charge","method":"tempo","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}]}}},"/v1/seo-audit":{"post":{"summary":"On-page SEO audit","description":"Fetch a public page and grade its on-page SEO: title and meta-description length, H1 and heading outline, canonical, meta-robots indexability, viewport/lang/charset, hreflang, Open Graph and Twitter Card completeness, image alt coverage and word count — plus optional focus-keyword placement and density. Returns a pass/warn/fail verdict per check and an overall 0–100 score. Paid endpoint (x402 + MPP). Price: $0.006000 USDC per successful payment.","tags":["on page seo audit","seo audit api","website audit","meta tag checker","on-page optimization","page seo analyzer"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri","maxLength":2048,"description":"Public http(s) URL to audit. Private/loopback/link-local addresses are rejected."},"keyword":{"type":"string","minLength":1,"maxLength":100,"description":"Optional focus keyword to check placement (title, H1, URL, meta description) and density for."}},"required":["url"],"additionalProperties":false}}}},"responses":{"200":{"description":"The final `url`, `title` {text,length,ok}, `metaDescription` {text,length,ok}, `headings` {h1,h1Count,outline}, `canonical`, `metaRobots` {index,follow,raw}, `openGraph` {present,missing}, `twitterCard`, `hreflang`, `images` {total,withAlt,altCoverage}, `lang`, `viewport`, `charset`, `wordCount`, optional `keyword` placement, the per-rule `checks` ([{id,status,detail}]) and an overall `score` (0–100).","content":{"application/json":{"schema":{"type":"object","description":"The final `url`, `title` {text,length,ok}, `metaDescription` {text,length,ok}, `headings` {h1,h1Count,outline}, `canonical`, `metaRobots` {index,follow,raw}, `openGraph` {present,missing}, `twitterCard`, `hreflang`, `images` {total,withAlt,altCoverage}, `lang`, `viewport`, `charset`, `wordCount`, optional `keyword` placement, the per-rule `checks` ([{id,status,detail}]) and an overall `score` (0–100)."}}}},"400":{"description":"Invalid request; no payment is attempted"},"402":{"description":"Payment required; x402/MPP metadata returned in headers"},"502":{"description":"Upstream provider error after payment verification"}},"x-payment-info":{"amount":"6000","currency":"0x20c000000000000000000000b9537d11c60e8b50","description":"Fetch a public page and grade its on-page SEO: title and meta-description length, H1 and heading outline, canonical, meta-robots indexability, viewport/lang/charset, hreflang, Open Graph and Twitter Card completeness, image alt coverage and word count — plus optional focus-keyword placement and density. Returns a pass/warn/fail verdict per check and an overall 0–100 score.","method":"tempo","preferredOffer":"mpp-tempo","price":{"mode":"fixed","currency":"USD","amount":"0.006000"},"protocols":[{"x402":{"scheme":"exact","network":"eip155:8453","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}},{"mpp":{"method":"evm","intent":"charge","network":"8453","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}},{"mpp":{"method":"tempo","intent":"charge","network":"4217","currency":"0x20c000000000000000000000b9537d11c60e8b50","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}}],"network":"4217","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A","offers":[{"amount":"6000","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","description":"Fetch a public page and grade its on-page SEO: title and meta-description length, H1 and heading outline, canonical, meta-robots indexability, viewport/lang/charset, hreflang, Open Graph and Twitter Card completeness, image alt coverage and word count — plus optional focus-keyword placement and density. Returns a pass/warn/fail verdict per check and an overall 0–100 score.","intent":"charge","method":"evm","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"},{"amount":"6000","currency":"0x20c000000000000000000000b9537d11c60e8b50","description":"Fetch a public page and grade its on-page SEO: title and meta-description length, H1 and heading outline, canonical, meta-robots indexability, viewport/lang/charset, hreflang, Open Graph and Twitter Card completeness, image alt coverage and word count — plus optional focus-keyword placement and density. Returns a pass/warn/fail verdict per check and an overall 0–100 score.","intent":"charge","method":"tempo","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}]}}}},"x-service-info":{"categories":["content"],"docs":{"homepage":"https://web.openverbs.com","apiReference":"https://web.openverbs.com/openapi.json"}}}