{"openapi":"3.1.0","info":{"title":"Web Probe","version":"1.0.0","description":"Redirect trace, security headers, robots.txt, sitemap, TLS expiry, timing and meta tags for a URL you name. One call, one computed answer, no accounts or API keys. Machine-payable over x402.","x-guidance":"Web Probe: Redirect trace, security headers, robots.txt, sitemap, TLS expiry, timing and meta tags for a URL you name. Endpoints: /redirect-trace, /security-headers, /robots-txt, /sitemap-check, /tls-expiry, /http-timing, /meta-tags. Each paid GET returns a computed verdict with the reasons, the source and what was NOT checked. A verdict of UNVERIFIED means a lookup failed: treat it as unknown. No account or key: pay per call in USDC over x402."},"servers":[{"url":"https://web-probe.x402tookit.com"}],"paths":{"/http-timing":{"get":{"operationId":"http_timing","summary":"Time one GET to a URL: DNS, connect, TLS, first byte and total ms, plus status, content type and size read.","description":"Time one GET to a URL: DNS, connect, TLS, first byte and total ms, plus status, content type and size read.","tags":["performance","latency","http","diagnostics"],"parameters":[{"name":"url","in":"query","required":true,"description":"Full https URL, no credentials","schema":{"type":"string"}}],"responses":{"200":{"description":"The answer.","content":{"application/json":{"schema":{"type":"object","properties":{"verdict":{"type":["null","string"]},"summary":{"type":["null","string"]},"reasons":{"type":["array","null"],"items":{"type":"string"}},"url":{"type":["null","string"]},"httpStatus":{"type":["null","number"]},"contentType":{"type":["null","string"]},"contentLength":{},"bytesRead":{"type":["null","number"]},"truncated":{"type":["boolean","null"]},"server":{"type":["null","string"]},"httpVersion":{"type":["null","string"]},"location":{},"dnsMs":{"type":["null","number"]},"connectMs":{"type":["null","number"]},"tlsMs":{"type":["null","number"]},"ttfbMs":{"type":["null","number"]},"totalMs":{"type":["null","number"]},"degraded":{"type":["boolean","null"]},"notChecked":{"type":["array","null"],"items":{"type":"string"}},"source":{"type":["null","string"]},"asOf":{"type":["null","string"]},"disclaimer":{"type":["null","string"]}}},"example":{"verdict":"TTFB_FAST","summary":"https://example.com/: HTTP 200, first byte 63 ms, total 64 ms, 577 bytes read.","reasons":["Time to first byte 63 ms is fast (under 200 fast, under 600 ok, under 1500 slow).","This is one sample from one location: latency varies run to run and by region."],"url":"https://example.com/","httpStatus":200,"contentType":"text/html; charset=utf-8","contentLength":null,"bytesRead":577,"truncated":false,"server":"cloudflare","httpVersion":"1.1","location":null,"dnsMs":8,"connectMs":15.5,"tlsMs":20.3,"ttfbMs":63.2,"totalMs":64.1,"degraded":false,"notChecked":["more than one sample (no averaging)","other regions or networks","…2 more"],"source":"live timed GET from our server","asOf":"2026-10-21T00:40:40.045Z","disclaimer":"Screening signal computed from the named public source. Not financial, legal or investment advice; provided as is. Verify at the source before acting."}}}},"400":{"description":"A parameter was missing or out of range."},"402":{"description":"Payment Required"},"502":{"description":"The upstream source failed or timed out."}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.0200"},"protocols":[{"x402":{"network":"eip155:8453","scheme":"exact","currency":"USDC","endpoint":"https://web-probe.x402tookit.com/http-timing"}},{"x402":{"network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","scheme":"exact","currency":"USDC","endpoint":"https://web-probe.x402tookit.com/http-timing"}},{"x402":{"network":"eip155:137","scheme":"exact","currency":"USDC","endpoint":"https://web-probe.x402tookit.com/http-timing"}},{"x402":{"network":"eip155:42161","scheme":"exact","currency":"USDC","endpoint":"https://web-probe.x402tookit.com/http-timing"}}]}}},"/meta-tags":{"get":{"operationId":"meta_tags","summary":"Extract a page's title, description, canonical, og:/twitter: tags, lang, robots meta and h1 count (first 64 KB).","description":"Extract a page's title, description, canonical, og:/twitter: tags, lang, robots meta and h1 count (first 64 KB).","tags":["seo","meta-tags","opengraph","html"],"parameters":[{"name":"url","in":"query","required":true,"description":"Full https URL of the HTML page, no credentials","schema":{"type":"string"}}],"responses":{"200":{"description":"The answer.","content":{"application/json":{"schema":{"type":"object","properties":{"verdict":{"type":["null","string"]},"summary":{"type":["null","string"]},"reasons":{"type":["array","null"]},"url":{"type":["null","string"]},"httpStatus":{"type":["null","number"]},"contentType":{"type":["null","string"]},"truncated":{"type":["boolean","null"]},"title":{"type":["null","string"]},"titleLength":{"type":["null","number"]},"description":{"type":["null","string"]},"descriptionLength":{"type":["null","number"]},"canonical":{"type":["null","string"]},"lang":{"type":["null","string"]},"charset":{"type":["null","string"]},"robotsMeta":{},"viewport":{"type":["null","string"]},"h1Count":{"type":["null","number"]},"firstH1":{"type":["null","string"]},"openGraph":{"type":["null","object"],"properties":{"title":{"type":["null","string"]},"type":{"type":["null","string"]},"url":{"type":["null","string"]},"site_name":{"type":["null","string"]},"description":{"type":["null","string"]},"image":{"type":["null","string"]},"image:width":{"type":["null","string"]},"image:height":{"type":["null","string"]}}},"twitter":{"type":["null","object"],"properties":{}},"hreflangCount":{"type":["null","number"]},"degraded":{"type":["boolean","null"]},"notChecked":{"type":["array","null"],"items":{"type":"string"}},"source":{"type":["null","string"]},"asOf":{"type":["null","string"]},"disclaimer":{"type":["null","string"]}}},"example":{"verdict":"TAGS_FOUND","summary":"Title \"3.15.0 Documentation\", description 34 chars, 8 og tag(s), 1 h1.","reasons":[],"url":"https://docs.python.org/3/index.html","httpStatus":200,"contentType":"text/html","truncated":false,"title":"3.15.0 Documentation","titleLength":20,"description":"The official Python documentation.","descriptionLength":34,"canonical":"https://docs.python.org/3/index.html","lang":"en","charset":"utf-8","robotsMeta":null,"viewport":"width=device-width, initial-scale=1.0","h1Count":1,"firstH1":"Python 3.15.0 documentation","openGraph":{"title":"Python 3.15 documentation","type":"website","url":"https://docs.python.org/3/","site_name":"Python documentation","description":"The official Python documentation.","image":"https://docs.python.org/3/_static/og-image.png","image:width":"200","image:height":"200"},"twitter":{},"hreflangCount":0,"degraded":false,"notChecked":["tags added by JavaScript after the page loads","anything beyond the first 64 KB","…2 more"],"source":"live GET of the named page","asOf":"2026-10-21T00:40:40.420Z","disclaimer":"Screening signal computed from the named public source. Not financial, legal or investment advice; provided as is. Verify at the source before acting."}}}},"400":{"description":"A parameter was missing or out of range."},"402":{"description":"Payment Required"},"502":{"description":"The upstream source failed or timed out."}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.0200"},"protocols":[{"x402":{"network":"eip155:8453","scheme":"exact","currency":"USDC","endpoint":"https://web-probe.x402tookit.com/meta-tags"}},{"x402":{"network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","scheme":"exact","currency":"USDC","endpoint":"https://web-probe.x402tookit.com/meta-tags"}},{"x402":{"network":"eip155:137","scheme":"exact","currency":"USDC","endpoint":"https://web-probe.x402tookit.com/meta-tags"}},{"x402":{"network":"eip155:42161","scheme":"exact","currency":"USDC","endpoint":"https://web-probe.x402tookit.com/meta-tags"}}]}}},"/redirect-trace":{"get":{"operationId":"redirect_trace","summary":"Trace a URL's redirects hop by hop (up to 8): status and Location for each, final URL, loops and http downgrades.","description":"Trace a URL's redirects hop by hop (up to 8): status and Location for each, final URL, loops and http downgrades.","tags":["redirects","http","seo","diagnostics"],"parameters":[{"name":"url","in":"query","required":true,"description":"Full https URL to trace, no credentials","schema":{"type":"string"}}],"responses":{"200":{"description":"The answer.","content":{"application/json":{"schema":{"type":"object","properties":{"verdict":{"type":["null","string"]},"summary":{"type":["null","string"]},"reasons":{"type":["array","null"],"items":{"type":"string"}},"startUrl":{"type":["null","string"]},"hopCount":{"type":["null","number"]},"redirectCount":{"type":["null","number"]},"finalUrl":{"type":["null","string"]},"finalStatus":{"type":["null","number"]},"finalReached":{"type":["boolean","null"]},"hops":{"type":["array","null"],"items":{"type":"object","properties":{"url":{"type":["null","string"]},"status":{"type":["null","number"]},"location":{"type":["null","string"]},"contentType":{"type":["null","string"]}}}},"degraded":{"type":["boolean","null"]},"notChecked":{"type":["array","null"],"items":{"type":"string"}},"source":{"type":["null","string"]},"asOf":{"type":["null","string"]},"disclaimer":{"type":["null","string"]}}},"example":{"verdict":"REDIRECTS_TO_FINAL","summary":"1 redirect(s), final status 200 at https://docs.python.org/3/.","reasons":["1 redirect(s): 0 permanent (301/308), 1 temporary (302/303/307)."],"startUrl":"https://docs.python.org/","hopCount":2,"redirectCount":1,"finalUrl":"https://docs.python.org/3/","finalStatus":200,"finalReached":true,"hops":[{"url":"https://docs.python.org/","status":302,"location":"https://docs.python.org/3/","contentType":"text/html"},{"url":"https://docs.python.org/3/","status":200,"location":null,"contentType":"text/html"}],"degraded":false,"notChecked":["JavaScript or meta-refresh redirects","redirects that depend on cookies, language or location","…1 more"],"source":"live GET of each hop (redirects not auto-followed)","asOf":"2026-10-21T00:40:40.700Z","disclaimer":"Screening signal computed from the named public source. Not financial, legal or investment advice; provided as is. Verify at the source before acting."}}}},"400":{"description":"A parameter was missing or out of range."},"402":{"description":"Payment Required"},"502":{"description":"The upstream source failed or timed out."}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.0200"},"protocols":[{"x402":{"network":"eip155:8453","scheme":"exact","currency":"USDC","endpoint":"https://web-probe.x402tookit.com/redirect-trace"}},{"x402":{"network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","scheme":"exact","currency":"USDC","endpoint":"https://web-probe.x402tookit.com/redirect-trace"}},{"x402":{"network":"eip155:137","scheme":"exact","currency":"USDC","endpoint":"https://web-probe.x402tookit.com/redirect-trace"}},{"x402":{"network":"eip155:42161","scheme":"exact","currency":"USDC","endpoint":"https://web-probe.x402tookit.com/redirect-trace"}}]}}},"/robots-txt":{"get":{"operationId":"robots_txt","summary":"Parse a site's robots.txt (RFC 9309): groups, sitemaps, crawl-delay, and is path P allowed for agent A (longest match).","description":"Parse a site's robots.txt (RFC 9309): groups, sitemaps, crawl-delay, and is path P allowed for agent A (longest match).","tags":["robots","seo","crawling","rfc9309"],"parameters":[{"name":"url","in":"query","required":true,"description":"Any https URL on the site; its /robots.txt is fetched","schema":{"type":"string"}},{"name":"agent","in":"query","required":false,"description":"Crawler product token such as Googlebot, default *","schema":{"type":"string"}},{"name":"path","in":"query","required":false,"description":"Path (with query) to test, starting with /, default /","schema":{"type":"string"}}],"responses":{"200":{"description":"The answer.","content":{"application/json":{"schema":{"type":"object","properties":{"verdict":{"type":["null","string"]},"summary":{"type":["null","string"]},"reasons":{"type":["array","null"],"items":{"type":"string"}},"robotsUrl":{"type":["null","string"]},"httpStatus":{"type":["null","number"]},"agent":{"type":["null","string"]},"path":{"type":["null","string"]},"allowed":{"type":["boolean","null"]},"rule":{"type":["null","string"]},"matchedGroup":{"type":["null","string"]},"crawlDelay":{},"groupCount":{"type":["null","number"]},"ruleCount":{"type":["null","number"]},"groups":{"type":["array","null"],"items":{"type":"object","properties":{"agents":{"type":["array","null"],"items":{"type":"string"}},"rules":{"type":["array","null"],"items":{"type":"string"}},"crawlDelay":{}}}},"sitemaps":{"type":["array","null"]},"truncated":{"type":["boolean","null"]},"degraded":{"type":["boolean","null"]},"notChecked":{"type":["array","null"],"items":{"type":"string"}},"source":{"type":["null","string"]},"sourceUrl":{"type":["null","string"]},"asOf":{"type":["null","string"]},"disclaimer":{"type":["null","string"]}}},"example":{"verdict":"DISALLOWED","summary":"HTTrack may not fetch /downloads/ on https://www.python.org (Disallow: /).","reasons":["Longest matching rule (1 characters) is disallow."],"robotsUrl":"https://www.python.org/robots.txt","httpStatus":200,"agent":"HTTrack","path":"/downloads/","allowed":false,"rule":"Disallow: /","matchedGroup":"httrack","crawlDelay":null,"groupCount":4,"ruleCount":7,"groups":[{"agents":["httrack","puf","…1 more"],"rules":["Disallow: /"],"crawlDelay":null},{"agents":["krugle"],"rules":["Allow: /","Disallow: /~guido/orlijn/","…1 more"],"crawlDelay":null}],"sitemaps":[],"truncated":false,"degraded":false,"notChecked":["whether the crawler you use really obeys robots.txt","meta robots tags and X-Robots-Tag headers","…2 more"],"source":"live GET of the site's /robots.txt","sourceUrl":"https://www.rfc-editor.org/rfc/rfc9309","asOf":"2026-10-21T00:40:41.043Z","disclaimer":"Screening signal computed from the named public source. Not financial, legal or investment advice; provided as is. Verify at the source before acting."}}}},"400":{"description":"A parameter was missing or out of range."},"402":{"description":"Payment Required"},"502":{"description":"The upstream source failed or timed out."}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.0200"},"protocols":[{"x402":{"network":"eip155:8453","scheme":"exact","currency":"USDC","endpoint":"https://web-probe.x402tookit.com/robots-txt"}},{"x402":{"network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","scheme":"exact","currency":"USDC","endpoint":"https://web-probe.x402tookit.com/robots-txt"}},{"x402":{"network":"eip155:137","scheme":"exact","currency":"USDC","endpoint":"https://web-probe.x402tookit.com/robots-txt"}},{"x402":{"network":"eip155:42161","scheme":"exact","currency":"USDC","endpoint":"https://web-probe.x402tookit.com/robots-txt"}}]}}},"/security-headers":{"get":{"operationId":"security_headers","summary":"Grade a URL's browser security headers (HSTS, CSP, framing, nosniff, referrer, permissions) A to F and list missing ones.","description":"Grade a URL's browser security headers (HSTS, CSP, framing, nosniff, referrer, permissions) A to F and list missing ones.","tags":["security","headers","hsts","csp"],"parameters":[{"name":"url","in":"query","required":true,"description":"Full https URL to check, no credentials","schema":{"type":"string"}}],"responses":{"200":{"description":"The answer.","content":{"application/json":{"schema":{"type":"object","properties":{"verdict":{"type":["null","string"]},"summary":{"type":["null","string"]},"reasons":{"type":["array","null"],"items":{"type":"string"}},"url":{"type":["null","string"]},"httpStatus":{"type":["null","number"]},"score":{"type":["null","number"]},"grade":{"type":["null","string"]},"missing":{"type":["array","null"],"items":{"type":"string"}},"weak":{"type":["array","null"]},"checks":{"type":["null","object"],"properties":{"strict-transport-security":{"type":["null","object"],"properties":{"status":{"type":["null","string"]},"points":{"type":["null","number"]},"max":{"type":["null","number"]},"note":{"type":["null","string"]},"maxAge":{"type":["null","number"]},"includeSubDomains":{"type":["boolean","null"]},"preload":{"type":["boolean","null"]}}},"content-security-policy":{"type":["null","object"],"properties":{"status":{"type":["null","string"]},"points":{"type":["null","number"]},"max":{"type":["null","number"]},"note":{"type":["null","string"]}}},"x-frame-options":{"type":["null","object"],"properties":{"status":{"type":["null","string"]},"points":{"type":["null","number"]},"max":{"type":["null","number"]},"note":{"type":["null","string"]}}},"x-content-type-options":{"type":["null","object"],"properties":{"status":{"type":["null","string"]},"points":{"type":["null","number"]},"max":{"type":["null","number"]},"note":{"type":["null","string"]}}},"referrer-policy":{"type":["null","object"],"properties":{"status":{"type":["null","string"]},"points":{"type":["null","number"]},"max":{"type":["null","number"]},"note":{"type":["null","string"]}}},"permissions-policy":{"type":["null","object"],"properties":{"status":{"type":["null","string"]},"points":{"type":["null","number"]},"max":{"type":["null","number"]},"note":{"type":["null","string"]}}}}},"degraded":{"type":["boolean","null"]},"notChecked":{"type":["array","null"],"items":{"type":"string"}},"source":{"type":["null","string"]},"asOf":{"type":["null","string"]},"disclaimer":{"type":["null","string"]}}},"example":{"verdict":"GRADE_F","summary":"https://www.python.org/ scores 35/100 (grade F); missing: content-security-policy, x-content-type-options, referrer-policy, permissions-policy.","reasons":["content-security-policy: MISSING. No Content-Security-Policy: no browser-enforced limit on scripts or framing.","x-content-type-options: MISSING. No X-Content-Type-Options: browsers may guess content types.","…3 more"],"url":"https://www.python.org/","httpStatus":200,"score":35,"grade":"F","missing":["content-security-policy","x-content-type-options","…2 more"],"weak":[],"checks":{"strict-transport-security":{"status":"PASS","points":20,"max":20,"note":"max-age 63072000s, includeSubDomains, preload.","maxAge":63072000,"includeSubDomains":true,"preload":true},"content-security-policy":{"status":"MISSING","points":0,"max":30,"note":"No Content-Security-Policy: no browser-enforced limit on scripts or framing."},"x-frame-options":{"status":"PASS","points":15,"max":15,"note":"X-Frame-Options SAMEORIGIN."},"x-content-type-options":{"status":"MISSING","points":0,"max":15,"note":"No X-Content-Type-Options: browsers may guess content types."},"referrer-policy":{"status":"MISSING","points":0,"max":10,"note":"No Referrer-Policy: the browser default applies (strict-origin-when-cross-origin in modern browsers)."},"permissions-policy":{"status":"MISSING","points":0,"max":10,"note":"No Permissions-Policy: powerful features (camera, geolocation) are not explicitly restricted."}},"degraded":false,"notChecked":["cookie flags (Secure, HttpOnly, SameSite)","CORS, COOP, COEP and CORP headers","…3 more"],"source":"live GET of the named URL (response headers)","asOf":"2026-10-21T00:40:41.321Z","disclaimer":"Screening signal computed from the named public source. Not financial, legal or investment advice; provided as is. Verify at the source before acting."}}}},"400":{"description":"A parameter was missing or out of range."},"402":{"description":"Payment Required"},"502":{"description":"The upstream source failed or timed out."}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.0200"},"protocols":[{"x402":{"network":"eip155:8453","scheme":"exact","currency":"USDC","endpoint":"https://web-probe.x402tookit.com/security-headers"}},{"x402":{"network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","scheme":"exact","currency":"USDC","endpoint":"https://web-probe.x402tookit.com/security-headers"}},{"x402":{"network":"eip155:137","scheme":"exact","currency":"USDC","endpoint":"https://web-probe.x402tookit.com/security-headers"}},{"x402":{"network":"eip155:42161","scheme":"exact","currency":"USDC","endpoint":"https://web-probe.x402tookit.com/security-headers"}}]}}},"/sitemap-check":{"get":{"operationId":"sitemap_check","summary":"Fetch a sitemap.xml: urlset or index, URL count, lastmod range, sample URLs, host mismatches. Body capped at 1.5 MB.","description":"Fetch a sitemap.xml: urlset or index, URL count, lastmod range, sample URLs, host mismatches. Body capped at 1.5 MB.","tags":["sitemap","seo","crawling","xml"],"parameters":[{"name":"url","in":"query","required":true,"description":"Sitemap URL, or a site root (then /sitemap.xml is fetched)","schema":{"type":"string"}}],"responses":{"200":{"description":"The answer.","content":{"application/json":{"schema":{"type":"object","properties":{"verdict":{"type":["null","string"]},"summary":{"type":["null","string"]},"reasons":{"type":["array","null"]},"sitemapUrl":{"type":["null","string"]},"httpStatus":{"type":["null","number"]},"kind":{"type":["null","string"]},"entryCount":{"type":["null","number"]},"withLastmod":{"type":["null","number"]},"oldestLastmod":{"type":["null","string"]},"newestLastmod":{"type":["null","string"]},"invalidLastmod":{"type":["null","number"]},"hostMismatch":{"type":["null","number"]},"duplicateLocs":{"type":["null","number"]},"sample":{"type":["array","null"],"items":{"type":"string"}},"truncated":{"type":["boolean","null"]},"bytesRead":{"type":["null","number"]},"degraded":{"type":["boolean","null"]},"notChecked":{"type":["array","null"],"items":{"type":"string"}},"source":{"type":["null","string"]},"sourceUrl":{"type":["null","string"]},"asOf":{"type":["null","string"]},"disclaimer":{"type":["null","string"]}}},"example":{"verdict":"URLSET","summary":"urlset with 84 URLs, lastmod 2016-11-21 to 2022-12-15.","reasons":[],"sitemapUrl":"https://www.sitemaps.org/sitemap.xml","httpStatus":200,"kind":"urlset","entryCount":84,"withLastmod":84,"oldestLastmod":"2016-11-21","newestLastmod":"2022-12-15","invalidLastmod":0,"hostMismatch":0,"duplicateLocs":0,"sample":["https://www.sitemaps.org/","https://www.sitemaps.org/protocol.html","…3 more"],"truncated":false,"bytesRead":8622,"degraded":false,"notChecked":["every URL inside the sitemap (none are fetched)","child sitemaps of an index","…2 more"],"source":"live GET of the named sitemap","sourceUrl":"https://www.sitemaps.org/protocol.html","asOf":"2026-10-21T00:40:42.042Z","disclaimer":"Screening signal computed from the named public source. Not financial, legal or investment advice; provided as is. Verify at the source before acting."}}}},"400":{"description":"A parameter was missing or out of range."},"402":{"description":"Payment Required"},"502":{"description":"The upstream source failed or timed out."}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.0200"},"protocols":[{"x402":{"network":"eip155:8453","scheme":"exact","currency":"USDC","endpoint":"https://web-probe.x402tookit.com/sitemap-check"}},{"x402":{"network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","scheme":"exact","currency":"USDC","endpoint":"https://web-probe.x402tookit.com/sitemap-check"}},{"x402":{"network":"eip155:137","scheme":"exact","currency":"USDC","endpoint":"https://web-probe.x402tookit.com/sitemap-check"}},{"x402":{"network":"eip155:42161","scheme":"exact","currency":"USDC","endpoint":"https://web-probe.x402tookit.com/sitemap-check"}}]}}},"/tls-expiry":{"get":{"operationId":"tls_expiry","summary":"Read a host's live TLS certificate: issuer, subject, valid dates, days left, names (SANs), chain trust, protocol.","description":"Read a host's live TLS certificate: issuer, subject, valid dates, days left, names (SANs), chain trust, protocol.","tags":["tls","certificate","expiry","security"],"parameters":[{"name":"host","in":"query","required":true,"description":"Domain name such as example.com (port 443 only, no IP addresses)","schema":{"type":"string"}}],"responses":{"200":{"description":"The answer.","content":{"application/json":{"schema":{"type":"object","properties":{"verdict":{"type":["null","string"]},"summary":{"type":["null","string"]},"reasons":{"type":["array","null"]},"host":{"type":["null","string"]},"subjectCommonName":{"type":["null","string"]},"issuerCommonName":{"type":["null","string"]},"issuerOrganization":{"type":["null","string"]},"notBefore":{"type":["null","string"]},"notAfter":{"type":["null","string"]},"daysLeft":{"type":["null","number"]},"lifetimeDays":{"type":["null","number"]},"namesDns":{"type":["array","null"],"items":{"type":"string"}},"nameCount":{"type":["null","number"]},"wildcard":{"type":["boolean","null"]},"chainTrusted":{"type":["boolean","null"]},"trustError":{},"hostnameMatches":{"type":["boolean","null"]},"tlsProtocol":{"type":["null","string"]},"alpn":{"type":["null","string"]},"keyBits":{"type":["null","number"]},"serialNumber":{"type":["null","string"]},"fingerprintSha256":{"type":["null","string"]},"chain":{"type":["array","null"],"items":{"type":"object","properties":{"subject":{"type":["null","string"]},"issuer":{"type":["null","string"]},"validTo":{"type":["null","string"]}}}},"degraded":{"type":["boolean","null"]},"notChecked":{"type":["array","null"],"items":{"type":"string"}},"source":{"type":["null","string"]},"asOf":{"type":["null","string"]},"disclaimer":{"type":["null","string"]}}},"example":{"verdict":"VALID_DATES","summary":"example.com: certificate valid, 65 day(s) left (until 2026-12-25), issued by Cloudflare TLS Issuing ECC CA 3.","reasons":[],"host":"example.com","subjectCommonName":"example.com","issuerCommonName":"Cloudflare TLS Issuing ECC CA 3","issuerOrganization":"SSL Corporation","notBefore":"2026-09-26T22:49:11.000Z","notAfter":"2026-12-25T22:56:35.000Z","daysLeft":65,"lifetimeDays":90,"namesDns":["example.com","*.example.com"],"nameCount":2,"wildcard":true,"chainTrusted":true,"trustError":null,"hostnameMatches":true,"tlsProtocol":"TLSv1.3","alpn":"h2","keyBits":256,"serialNumber":"01EEE6AABB521D5E14FC315FD9985690","fingerprintSha256":"85:CA:6A:B0:68:E9:BC:CE:88:B6:C4:AA:3C:47:F7:D1:72:28:13:4A:45:7F:87:0D:38:00:E6:22:3A:0D:F0:7A","chain":[{"subject":"example.com","issuer":"Cloudflare TLS Issuing ECC CA 3","validTo":"Dec 25 22:56:35 2026 GMT"},{"subject":"Cloudflare TLS Issuing ECC CA 3","issuer":"SSL.com TLS Transit ECC CA R2","validTo":"May 27 19:49:44 2035 GMT"}],"degraded":false,"notChecked":["certificates on other ports or for other names on the same IP","revocation (OCSP/CRL)","…2 more"],"source":"live TLS handshake with the named host","asOf":"2026-10-21T00:40:42.328Z","disclaimer":"Screening signal computed from the named public source. Not financial, legal or investment advice; provided as is. Verify at the source before acting."}}}},"400":{"description":"A parameter was missing or out of range."},"402":{"description":"Payment Required"},"502":{"description":"The upstream source failed or timed out."}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.0200"},"protocols":[{"x402":{"network":"eip155:8453","scheme":"exact","currency":"USDC","endpoint":"https://web-probe.x402tookit.com/tls-expiry"}},{"x402":{"network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","scheme":"exact","currency":"USDC","endpoint":"https://web-probe.x402tookit.com/tls-expiry"}},{"x402":{"network":"eip155:137","scheme":"exact","currency":"USDC","endpoint":"https://web-probe.x402tookit.com/tls-expiry"}},{"x402":{"network":"eip155:42161","scheme":"exact","currency":"USDC","endpoint":"https://web-probe.x402tookit.com/tls-expiry"}}]}}}}}