{"service":"fetchx402","tools":[{"scheme":"exact","path":"/v1/tools/ping","description":"Payment smoke-test endpoint","parameters":[{"in":"query","name":"probe","type":"string","description":"Ignored. Payment smoke test takes no input.","required":false,"example":"ok"}],"errors":[{"code":"payment_required","message":"Missing or invalid PAYMENT-SIGNATURE; decode the PAYMENT-REQUIRED header","status":402},{"code":"payment_in_progress","message":"The same authorization nonce is already being settled; retry shortly","status":409},{"code":"rate_limited","message":"Too many requests from this client","status":429},{"code":"settlement_uncertain","message":"Settlement is unconfirmed; retry with the same PAYMENT-SIGNATURE","status":503},{"code":"facilitator_unavailable","message":"Payment facilitator unavailable","status":503},{"code":"facilitator_misconfigured","message":"Payment facilitator is not configured","status":503},{"code":"facilitator_unauthorized","message":"Payment facilitator rejected credentials","status":503},{"code":"ledger_unavailable","message":"Payment ledger unavailable","status":503},{"code":"payment_unavailable","message":"Payment processing unavailable","status":503}],"amount":"1000","method":"GET","display_price":"$0.001","network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","example_url":"https://api.fetchx402.com/v1/tools/ping","example_response":{"ok":true,"service":"fetchx402"},"response_fields":[{"name":"ok","type":"boolean","description":"Always true after a successful settle"},{"name":"service","type":"string","description":"Product name"}],"docs_url":"https://api.fetchx402.com/docs/tools/ping","x402Version":2},{"scheme":"exact","path":"/v1/tools/dns","description":"Resolve public DNS records (A, AAAA, MX, TXT, CNAME, NS, SOA) for a domain. Use when you need live DNS data and must not guess from memory or training data.","parameters":[{"in":"query","name":"domain","type":"string","description":"Public fully-qualified domain name to resolve, such as example.com. IPs, localhost, and internal/mDNS names are rejected.","required":true,"example":"example.com"},{"default":"A","in":"query","name":"type","type":"string","enum":["A","AAAA","MX","TXT","CNAME","NS","SOA"],"description":"DNS record type. A = IPv4 addresses, AAAA = IPv6, MX = mail exchangers, TXT = text (SPF/DKIM), CNAME = alias, NS = nameservers, SOA = start of authority. Defaults to A if omitted.","required":false,"example":"A"}],"errors":[{"code":"invalid_domain","message":"Domain is missing, malformed, an IP address, or a blocked/internal name","status":400},{"code":"invalid_type","message":"type must be one of A, AAAA, MX, TXT, CNAME, NS, SOA","status":400},{"code":"payment_required","message":"Missing or invalid PAYMENT-SIGNATURE; decode the PAYMENT-REQUIRED header","status":402},{"code":"nxdomain","message":"The domain name does not exist","status":404},{"code":"overloaded","message":"Tool concurrency cap reached; retry shortly","status":503},{"code":"upstream_unavailable","message":"Public DNS resolvers were unreachable","status":503},{"code":"dns_timeout","message":"DNS resolution timed out","status":504},{"code":"payment_in_progress","message":"The same authorization nonce is already being settled; retry shortly","status":409},{"code":"rate_limited","message":"Too many requests from this client","status":429},{"code":"settlement_uncertain","message":"Settlement is unconfirmed; retry with the same PAYMENT-SIGNATURE","status":503},{"code":"facilitator_unavailable","message":"Payment facilitator unavailable","status":503},{"code":"facilitator_misconfigured","message":"Payment facilitator is not configured","status":503},{"code":"facilitator_unauthorized","message":"Payment facilitator rejected credentials","status":503},{"code":"ledger_unavailable","message":"Payment ledger unavailable","status":503},{"code":"payment_unavailable","message":"Payment processing unavailable","status":503}],"amount":"5000","method":"GET","display_price":"$0.005","network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","example_url":"https://api.fetchx402.com/v1/tools/dns?domain=example.com&type=A","example_response":{"domain":"example.com","rcode":"NOERROR","records":[{"address":"104.20.23.154"}],"resolver":"1.1.1.1","ttl":20,"type":"A"},"response_fields":[{"name":"domain","type":"string","description":"Normalized FQDN that was queried"},{"name":"type","type":"string","description":"DNS record type that was queried"},{"name":"rcode","type":"string","description":"Resolver response code, such as NOERROR"},{"name":"resolver","type":"string","description":"Public recursive resolver that answered"},{"name":"ttl","type":"integer | null","description":"Lowest TTL among answers, in seconds"},{"name":"records","type":"array","description":"Answer records. Object shape depends on type (see record shapes)"}],"docs_url":"https://api.fetchx402.com/docs/dns","x402Version":2},{"scheme":"exact","path":"/v1/tools/ssl-check","description":"SSL check (pay per request): inspect the leaf TLS certificate for a public hostname (validity, issuer, SANs, fingerprint, expiry). Use when you need live cert facts and must not guess. Expired or hostname-mismatched certs still return JSON flags.","parameters":[{"in":"query","name":"domain","type":"string","description":"Public fully-qualified domain name to inspect, such as example.com. IPs, localhost, and internal/mDNS names are rejected.","required":true,"example":"example.com"},{"default":443,"in":"query","name":"port","type":"integer","enum":[443],"description":"TLS port. v1 accepts 443 only. Defaults to 443 if omitted.","required":false,"example":443}],"errors":[{"code":"invalid_domain","message":"Domain is missing, malformed, an IP address, or a blocked/internal name","status":400},{"code":"invalid_port","message":"port must be 443","status":400},{"code":"blocked_address","message":"The domain resolved to a private, loopback, or metadata address","status":400},{"code":"payment_required","message":"Missing or invalid PAYMENT-SIGNATURE; decode the PAYMENT-REQUIRED header","status":402},{"code":"nxdomain","message":"The domain name does not exist","status":404},{"code":"connect_failed","message":"TCP connection to the host failed","status":502},{"code":"handshake_failed","message":"TLS handshake failed (no leaf certificate)","status":502},{"code":"overloaded","message":"Tool concurrency cap reached; retry shortly","status":503},{"code":"ssl_timeout","message":"TLS handshake timed out","status":504},{"code":"payment_in_progress","message":"The same authorization nonce is already being settled; retry shortly","status":409},{"code":"rate_limited","message":"Too many requests from this client","status":429},{"code":"settlement_uncertain","message":"Settlement is unconfirmed; retry with the same PAYMENT-SIGNATURE","status":503},{"code":"facilitator_unavailable","message":"Payment facilitator unavailable","status":503},{"code":"facilitator_misconfigured","message":"Payment facilitator is not configured","status":503},{"code":"facilitator_unauthorized","message":"Payment facilitator rejected credentials","status":503},{"code":"ledger_unavailable","message":"Payment ledger unavailable","status":503},{"code":"payment_unavailable","message":"Payment processing unavailable","status":503}],"amount":"5000","method":"GET","display_price":"$0.005","network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","example_url":"https://api.fetchx402.com/v1/tools/ssl-check?domain=example.com","example_response":{"cipher":"aes_256_gcm_sha384","domain":"example.com","expired":false,"fingerprint_sha256":"0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef","hostname_match":true,"issuer":"CN=DigiCert Global G3 TLS ECC SHA384 2020 CA1, O=DigiCert Inc, C=US","not_after":"2027-01-15T23:59:59Z","not_before":"2026-01-15T00:00:00Z","not_yet_valid":false,"peer_ip":"23.215.0.138","port":443,"sans":["www.example.org","example.com","example.net","example.org"],"serial":"0f1a2b3c4d5e6f708192a3b4c5d6e7f8","signature_algorithm":"ecdsa-with-SHA384","sni":"example.com","subject":"CN=www.example.org, O=Internet Corporation for Assigned Names and Numbers, C=US","tls_version":"tlsv1.3"},"response_fields":[{"name":"domain","type":"string","description":"Normalized FQDN that was inspected"},{"name":"port","type":"integer","description":"TLS port (v1 is 443 only)"},{"name":"sni","type":"string","description":"SNI hostname sent during the handshake"},{"name":"peer_ip","type":"string","description":"Connected peer IP after ConnectGuard"},{"name":"tls_version","type":"string | null","description":"Negotiated TLS protocol"},{"name":"cipher","type":"string | null","description":"Negotiated cipher suite"},{"name":"subject","type":"string","description":"Leaf certificate subject DN"},{"name":"issuer","type":"string","description":"Leaf certificate issuer DN"},{"name":"serial","type":"string","description":"Leaf serial number as lowercase hex"},{"name":"not_before","type":"string","description":"Validity start (ISO-8601 UTC)"},{"name":"not_after","type":"string","description":"Validity end (ISO-8601 UTC)"},{"name":"expired","type":"boolean","description":"True when now is after not_after. Still HTTP 200"},{"name":"not_yet_valid","type":"boolean","description":"True when now is before not_before. Still HTTP 200"},{"name":"hostname_match","type":"boolean","description":"True when the leaf matches the requested hostname. Still HTTP 200 on mismatch"},{"name":"sans","type":"array","description":"DNS names from the subjectAltName extension"},{"name":"fingerprint_sha256","type":"string","description":"SHA-256 of the leaf DER, hex"},{"name":"signature_algorithm","type":"string","description":"Leaf signature algorithm name"}],"docs_url":"https://api.fetchx402.com/docs/ssl","x402Version":2},{"scheme":"exact","path":"/v1/tools/whois","description":"WHOIS lookup via RDAP (registrar, status, dates, nameservers, DNSSEC). Use when you need live registry data and must not guess. Unregistered names return not_found.","parameters":[{"in":"query","name":"domain","type":"string","description":"Public fully-qualified domain name to look up, such as example.com. IPs, localhost, and internal/mDNS names are rejected.","required":true,"example":"example.com"}],"errors":[{"code":"invalid_domain","message":"Domain is missing, malformed, an IP address, or a blocked/internal name","status":400},{"code":"payment_required","message":"Missing or invalid PAYMENT-SIGNATURE; decode the PAYMENT-REQUIRED header","status":402},{"code":"rdap_unavailable","message":"This TLD has no RDAP server in the IANA bootstrap","status":404},{"code":"not_found","message":"RDAP has no registration object for this domain","status":404},{"code":"rdap_upstream","message":"RDAP server returned an unusable response","status":502},{"code":"bootstrap_unavailable","message":"IANA RDAP bootstrap could not be loaded","status":503},{"code":"overloaded","message":"Tool concurrency cap reached; retry shortly","status":503},{"code":"whois_timeout","message":"RDAP lookup timed out","status":504},{"code":"payment_in_progress","message":"The same authorization nonce is already being settled; retry shortly","status":409},{"code":"rate_limited","message":"Too many requests from this client","status":429},{"code":"settlement_uncertain","message":"Settlement is unconfirmed; retry with the same PAYMENT-SIGNATURE","status":503},{"code":"facilitator_unavailable","message":"Payment facilitator unavailable","status":503},{"code":"facilitator_misconfigured","message":"Payment facilitator is not configured","status":503},{"code":"facilitator_unauthorized","message":"Payment facilitator rejected credentials","status":503},{"code":"ledger_unavailable","message":"Payment ledger unavailable","status":503},{"code":"payment_unavailable","message":"Payment processing unavailable","status":503}],"amount":"5000","method":"GET","display_price":"$0.005","network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","example_url":"https://api.fetchx402.com/v1/tools/whois?domain=example.com","example_response":{"created_at":"1995-08-14T04:00:00Z","dnssec":true,"domain":"example.com","expires_at":"2025-08-13T04:00:00Z","handle":"2336799_DOMAIN_COM-VRSN","nameservers":["a.iana-servers.net","b.iana-servers.net"],"rdap_server":"https://rdap.verisign.com/com/v1/","registrar":{"iana_id":"376","name":"RESERVED-Internet Assigned Numbers Authority"},"source":"rdap","status":["client delete prohibited","client transfer prohibited","client update prohibited"],"updated_at":"2024-08-14T07:01:39Z"},"response_fields":[{"name":"domain","type":"string","description":"Normalized FQDN that was queried"},{"name":"source","type":"string","description":"Always rdap in v1"},{"name":"rdap_server","type":"string","description":"RDAP base URL selected from the IANA bootstrap"},{"name":"handle","type":"string | null","description":"Registry object handle, if published"},{"name":"status","type":"array","description":"Registry status strings as published"},{"name":"registrar","type":"object | null","description":"Registrar name and IANA ID when present; null if RDAP omitted them"},{"name":"created_at","type":"string | null","description":"Registration event (ISO-8601 UTC)"},{"name":"updated_at","type":"string | null","description":"Last-changed event (ISO-8601 UTC)"},{"name":"expires_at","type":"string | null","description":"Expiration event (ISO-8601 UTC)"},{"name":"nameservers","type":"array","description":"LDH nameserver hostnames, lowercase, no trailing dot"},{"name":"dnssec","type":"boolean","description":"True when secureDNS.delegationSigned is true"}],"docs_url":"https://api.fetchx402.com/docs/whois","x402Version":2},{"scheme":"exact","path":"/v1/tools/headers","description":"Read allowlisted HTTPS response headers for a hostname (HSTS, CSP, server, CORS). Use when you need live origin headers and must not guess. HEAD of https://{domain}/ on :443; GET if HEAD is 405/501. Redirects are not followed.","parameters":[{"in":"query","name":"domain","type":"string","description":"Public fully-qualified domain name to fetch, such as example.com. We HEAD https://{domain}/ on :443 (GET if HEAD is 405/501). IPs, localhost, and internal/mDNS names are rejected. Redirects are not followed.","required":true,"example":"example.com"}],"errors":[{"code":"invalid_domain","message":"Domain is missing, malformed, an IP address, or a blocked/internal name","status":400},{"code":"blocked_address","message":"The domain resolved to a private, loopback, or metadata address","status":400},{"code":"payment_required","message":"Missing or invalid PAYMENT-SIGNATURE; decode the PAYMENT-REQUIRED header","status":402},{"code":"nxdomain","message":"The domain name does not exist","status":404},{"code":"connect_failed","message":"TCP connection to the host failed","status":502},{"code":"handshake_failed","message":"TLS handshake failed","status":502},{"code":"http_failed","message":"HTTPS request failed after connect","status":502},{"code":"overloaded","message":"Tool concurrency cap reached; retry shortly","status":503},{"code":"headers_timeout","message":"HTTPS header fetch timed out","status":504},{"code":"payment_in_progress","message":"The same authorization nonce is already being settled; retry shortly","status":409},{"code":"rate_limited","message":"Too many requests from this client","status":429},{"code":"settlement_uncertain","message":"Settlement is unconfirmed; retry with the same PAYMENT-SIGNATURE","status":503},{"code":"facilitator_unavailable","message":"Payment facilitator unavailable","status":503},{"code":"facilitator_misconfigured","message":"Payment facilitator is not configured","status":503},{"code":"facilitator_unauthorized","message":"Payment facilitator rejected credentials","status":503},{"code":"ledger_unavailable","message":"Payment ledger unavailable","status":503},{"code":"payment_unavailable","message":"Payment processing unavailable","status":503}],"amount":"5000","method":"GET","display_price":"$0.005","network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","example_url":"https://api.fetchx402.com/v1/tools/headers?domain=example.com","example_response":{"domain":"example.com","headers":{"access-control-allow-origin":null,"cache-control":"max-age=604800","content-security-policy":null,"content-security-policy-report-only":null,"content-type":"text/html","cross-origin-opener-policy":null,"cross-origin-resource-policy":null,"location":null,"permissions-policy":null,"referrer-policy":null,"server":"ECS (nyb/1D2A)","strict-transport-security":"max-age=31536000","www-authenticate":null,"x-content-type-options":null,"x-frame-options":null,"x-powered-by":null},"method":"HEAD","peer_ip":"23.215.0.138","status":200,"url":"https://example.com/"},"response_fields":[{"name":"domain","type":"string","description":"Normalized FQDN that was fetched"},{"name":"url","type":"string","description":"HTTPS origin we requested (always / in v1)"},{"name":"method","type":"string","description":"HTTP method that produced the headers (HEAD or GET)"},{"name":"status","type":"integer","description":"HTTP status from the origin. 3xx still HTTP 200 from us"},{"name":"peer_ip","type":"string","description":"Connected peer IP after ConnectGuard"},{"name":"headers","type":"object","description":"Allowlisted response headers (lowercase names). Absent headers are null. Cookies and hop-by-hop headers are omitted."}],"docs_url":"https://api.fetchx402.com/docs/tools/headers","x402Version":2},{"scheme":"exact","path":"/v1/tools/resolve-redirect","description":"Trace HTTPS redirects for a hostname. Use when you need live hop facts and must not guess. HEAD of https://{domain}/ on :443 (GET if 405/501); follow Location up to 5 hops. HTTPS :443 only after ConnectGuard. Bodies are omitted.","parameters":[{"in":"query","name":"domain","type":"string","description":"Public fully-qualified domain name to start from, such as example.com. We HEAD https://{domain}/ on :443 (GET if HEAD is 405/501), then follow Location up to 5 hops. IPs, localhost, and internal/mDNS names are rejected. Only HTTPS :443 after ConnectGuard. Response bodies are not returned.","required":true,"example":"example.com"}],"errors":[{"code":"invalid_domain","message":"Domain is missing, malformed, an IP address, or a blocked/internal name","status":400},{"code":"blocked_address","message":"The domain resolved to a private, loopback, or metadata address","status":400},{"code":"payment_required","message":"Missing or invalid PAYMENT-SIGNATURE; decode the PAYMENT-REQUIRED header","status":402},{"code":"nxdomain","message":"The domain name does not exist","status":404},{"code":"connect_failed","message":"TCP connection to the host failed","status":502},{"code":"handshake_failed","message":"TLS handshake failed","status":502},{"code":"http_failed","message":"HTTPS request failed after connect","status":502},{"code":"overloaded","message":"Tool concurrency cap reached; retry shortly","status":503},{"code":"redirect_timeout","message":"HTTPS redirect trace timed out","status":504},{"code":"payment_in_progress","message":"The same authorization nonce is already being settled; retry shortly","status":409},{"code":"rate_limited","message":"Too many requests from this client","status":429},{"code":"settlement_uncertain","message":"Settlement is unconfirmed; retry with the same PAYMENT-SIGNATURE","status":503},{"code":"facilitator_unavailable","message":"Payment facilitator unavailable","status":503},{"code":"facilitator_misconfigured","message":"Payment facilitator is not configured","status":503},{"code":"facilitator_unauthorized","message":"Payment facilitator rejected credentials","status":503},{"code":"ledger_unavailable","message":"Payment ledger unavailable","status":503},{"code":"payment_unavailable","message":"Payment processing unavailable","status":503}],"amount":"5000","method":"GET","display_price":"$0.005","network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","example_url":"https://api.fetchx402.com/v1/tools/resolve-redirect?domain=example.com","example_response":{"domain":"example.com","final_url":"https://example.com/","hop_count":1,"hops":[{"index":1,"location":null,"method":"HEAD","peer_ip":"23.215.0.138","status":200,"url":"https://example.com/"}],"start_url":"https://example.com/","stop_reason":null,"truncated":false},"response_fields":[{"name":"domain","type":"string","description":"Normalized FQDN that started the trace"},{"name":"start_url","type":"string","description":"HTTPS origin we requested first (always / in v1)"},{"name":"final_url","type":"string","description":"Last URL we successfully fetched"},{"name":"hop_count","type":"integer","description":"Number of HTTPS requests completed"},{"name":"truncated","type":"boolean","description":"True when the hop cap stopped a still-redirecting chain"},{"name":"stop_reason","type":"string","description":"Why the trace ended besides a non-redirect status. null, max_hops, loop, missing_location, invalid_location, insecure_redirect, blocked_host, blocked_port, blocked_address, nxdomain, connect_failed, handshake_failed, or http_failed"},{"name":"hops","type":"array","description":"Per-hop facts: index, url, method, status, peer_ip, location. Bodies and cookies are omitted."}],"docs_url":"https://api.fetchx402.com/docs/tools/resolve-redirect","x402Version":2},{"scheme":"exact","path":"/v1/bundles/host-intel","description":"host intel: DNS, leaf TLS, and WHOIS/RDAP for one hostname in a single settle. Use when you need live host facts together and must not guess. Child errors stay in-field; we do not invent data.","parameters":[{"in":"query","name":"domain","type":"string","description":"Public fully-qualified domain name. Same Domain guards as the child tools. IPs, localhost, and internal/mDNS names are rejected.","required":true,"example":"example.com"},{"default":"A","in":"query","name":"dns_type","type":"string","enum":["A","AAAA","MX","TXT","CNAME","NS","SOA"],"description":"DNS record type passed through to DNS Explorer. Defaults to A if omitted. Does not change TLS or RDAP.","required":false,"example":"A"}],"errors":[{"code":"invalid_domain","message":"Domain is missing, malformed, an IP address, or a blocked/internal name","status":400},{"code":"invalid_type","message":"dns_type must be one of A, AAAA, MX, TXT, CNAME, NS, SOA","status":400},{"code":"payment_required","message":"Missing or invalid PAYMENT-SIGNATURE; decode the PAYMENT-REQUIRED header","status":402},{"code":"overloaded","message":"Tool concurrency cap reached; retry shortly","status":503},{"code":"host_intel_timeout","message":"Host intelligence bundle timed out","status":504},{"code":"payment_in_progress","message":"The same authorization nonce is already being settled; retry shortly","status":409},{"code":"rate_limited","message":"Too many requests from this client","status":429},{"code":"settlement_uncertain","message":"Settlement is unconfirmed; retry with the same PAYMENT-SIGNATURE","status":503},{"code":"facilitator_unavailable","message":"Payment facilitator unavailable","status":503},{"code":"facilitator_misconfigured","message":"Payment facilitator is not configured","status":503},{"code":"facilitator_unauthorized","message":"Payment facilitator rejected credentials","status":503},{"code":"ledger_unavailable","message":"Payment ledger unavailable","status":503},{"code":"payment_unavailable","message":"Payment processing unavailable","status":503}],"amount":"15000","method":"GET","display_price":"$0.015","network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","example_url":"https://api.fetchx402.com/v1/bundles/host-intel?domain=example.com","example_response":{"dns":{"domain":"example.com","rcode":"NOERROR","records":[{"address":"104.20.23.154"}],"resolver":"1.1.1.1","ttl":20,"type":"A"},"domain":"example.com","ssl":{"cipher":"aes_256_gcm_sha384","domain":"example.com","expired":false,"fingerprint_sha256":"0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef","hostname_match":true,"issuer":"CN=DigiCert Global G3 TLS ECC SHA384 2020 CA1, O=DigiCert Inc, C=US","not_after":"2027-01-15T23:59:59Z","not_before":"2026-01-15T00:00:00Z","not_yet_valid":false,"peer_ip":"23.215.0.138","port":443,"sans":["www.example.org","example.com","example.net","example.org"],"serial":"0f1a2b3c4d5e6f708192a3b4c5d6e7f8","signature_algorithm":"ecdsa-with-SHA384","sni":"example.com","subject":"CN=www.example.org, O=Internet Corporation for Assigned Names and Numbers, C=US","tls_version":"tlsv1.3"},"whois":{"created_at":"1995-08-14T04:00:00Z","dnssec":true,"domain":"example.com","expires_at":"2025-08-13T04:00:00Z","handle":"2336799_DOMAIN_COM-VRSN","nameservers":["a.iana-servers.net","b.iana-servers.net"],"rdap_server":"https://rdap.verisign.com/com/v1/","registrar":{"iana_id":"376","name":"RESERVED-Internet Assigned Numbers Authority"},"source":"rdap","status":["client delete prohibited","client transfer prohibited","client update prohibited"],"updated_at":"2024-08-14T07:01:39Z"}},"response_fields":[{"name":"domain","type":"string","description":"Normalized FQDN that was queried"},{"name":"dns","type":"object","description":"DNS Explorer JSON, or {error: {code, message}} if that child failed"},{"name":"ssl","type":"object","description":"SSL Inspector JSON, or {error: {code, message}} if that child failed"},{"name":"whois","type":"object","description":"WHOIS Intelligence JSON, or {error: {code, message}} if that child failed"}],"docs_url":"https://api.fetchx402.com/docs/host-intel","x402Version":2},{"scheme":"exact","path":"/v1/bundles/uptime-check","description":"One-shot reachability: DNS, leaf TLS, and origin headers for one hostname in a single settle. Use when you need live up/degraded/down and must not guess. Child errors stay in-field; we do not invent data.","parameters":[{"in":"query","name":"domain","type":"string","description":"Public fully-qualified domain name. Same Domain guards as the child tools. IPs, localhost, and internal/mDNS names are rejected. v1 always probes https://{domain}/ on :443.","required":true,"example":"example.com"}],"errors":[{"code":"invalid_domain","message":"Domain is missing, malformed, an IP address, or a blocked/internal name","status":400},{"code":"payment_required","message":"Missing or invalid PAYMENT-SIGNATURE; decode the PAYMENT-REQUIRED header","status":402},{"code":"overloaded","message":"Tool concurrency cap reached; retry shortly","status":503},{"code":"uptime_check_timeout","message":"Uptime check bundle timed out","status":504},{"code":"payment_in_progress","message":"The same authorization nonce is already being settled; retry shortly","status":409},{"code":"rate_limited","message":"Too many requests from this client","status":429},{"code":"settlement_uncertain","message":"Settlement is unconfirmed; retry with the same PAYMENT-SIGNATURE","status":503},{"code":"facilitator_unavailable","message":"Payment facilitator unavailable","status":503},{"code":"facilitator_misconfigured","message":"Payment facilitator is not configured","status":503},{"code":"facilitator_unauthorized","message":"Payment facilitator rejected credentials","status":503},{"code":"ledger_unavailable","message":"Payment ledger unavailable","status":503},{"code":"payment_unavailable","message":"Payment processing unavailable","status":503}],"amount":"15000","method":"GET","display_price":"$0.015","network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","example_url":"https://api.fetchx402.com/v1/bundles/uptime-check?domain=example.com","example_response":{"dns":{"domain":"example.com","rcode":"NOERROR","records":[{"address":"104.20.23.154"}],"resolver":"1.1.1.1","ttl":20,"type":"A"},"domain":"example.com","headers":{"domain":"example.com","headers":{"access-control-allow-origin":null,"cache-control":"max-age=604800","content-security-policy":null,"content-security-policy-report-only":null,"content-type":"text/html","cross-origin-opener-policy":null,"cross-origin-resource-policy":null,"location":null,"permissions-policy":null,"referrer-policy":null,"server":"ECS (nyb/1D2A)","strict-transport-security":"max-age=31536000","www-authenticate":null,"x-content-type-options":null,"x-frame-options":null,"x-powered-by":null},"method":"HEAD","peer_ip":"23.215.0.138","status":200,"url":"https://example.com/"},"ssl":{"cipher":"aes_256_gcm_sha384","domain":"example.com","expired":false,"fingerprint_sha256":"0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef","hostname_match":true,"issuer":"CN=DigiCert Global G3 TLS ECC SHA384 2020 CA1, O=DigiCert Inc, C=US","not_after":"2027-01-15T23:59:59Z","not_before":"2026-01-15T00:00:00Z","not_yet_valid":false,"peer_ip":"23.215.0.138","port":443,"sans":["www.example.org","example.com","example.net","example.org"],"serial":"0f1a2b3c4d5e6f708192a3b4c5d6e7f8","signature_algorithm":"ecdsa-with-SHA384","sni":"example.com","subject":"CN=www.example.org, O=Internet Corporation for Assigned Names and Numbers, C=US","tls_version":"tlsv1.3"},"verdict":"up"},"response_fields":[{"name":"domain","type":"string","description":"Normalized FQDN that was queried"},{"name":"verdict","type":"string","description":"up when DNS, TLS, and HTTPS succeed with a currently valid matching cert and HTTP status < 500; degraded when the origin answers but TLS is expired, not yet valid, or hostname-mismatched, or HTTP status is >= 500; down when any child is an error object"},{"name":"dns","type":"object","description":"DNS Explorer JSON, or {error: {code, message}} if that child failed"},{"name":"ssl","type":"object","description":"SSL Inspector JSON, or {error: {code, message}} if that child failed"},{"name":"headers","type":"object","description":"HTTP Headers JSON, or {error: {code, message}} if that child failed"}],"docs_url":"https://api.fetchx402.com/docs/tools/uptime-check","x402Version":2}],"base_url":"https://api.fetchx402.com","playbooks":[{"name":"Host intelligence","description":"What is true of this hostname? Call DNS, then SSL, then WHOIS — or the composite for one settle.","slug":"host-intel","bundle_path":"/v1/bundles/host-intel","bundle_url":"https://api.fetchx402.com/v1/bundles/host-intel?domain=example.com","docs_url":"https://api.fetchx402.com/docs/host-intel","sequence":[{"path":"/v1/tools/dns","method":"GET","example_url":"https://api.fetchx402.com/v1/tools/dns?domain=example.com&type=A"},{"path":"/v1/tools/ssl-check","method":"GET","example_url":"https://api.fetchx402.com/v1/tools/ssl-check?domain=example.com"},{"path":"/v1/tools/whois","method":"GET","example_url":"https://api.fetchx402.com/v1/tools/whois?domain=example.com"}]},{"name":"Uptime check","description":"Is this origin resolvable, TLS-valid, and answering? Call DNS, then SSL, then headers — or the composite for one settle.","slug":"uptime-check","bundle_path":"/v1/bundles/uptime-check","bundle_url":"https://api.fetchx402.com/v1/bundles/uptime-check?domain=example.com","docs_url":"https://api.fetchx402.com/docs/tools/uptime-check","sequence":[{"path":"/v1/tools/dns","method":"GET","example_url":"https://api.fetchx402.com/v1/tools/dns?domain=example.com&type=A"},{"path":"/v1/tools/ssl-check","method":"GET","example_url":"https://api.fetchx402.com/v1/tools/ssl-check?domain=example.com"},{"path":"/v1/tools/headers","method":"GET","example_url":"https://api.fetchx402.com/v1/tools/headers?domain=example.com"}]}],"docs_url":"https://api.fetchx402.com/docs","x402Version":2}