{"x402Version":2,"service":{"name":"cloudPulsePoint Agent API","description":"Pay-per-request website monitoring for AI agents. One-shot HTTP, SSL, DNS, domain-expiry, blacklist, performance, and combined site-health checks. No account, no API key — payment is the authorization.","provider":"cloudPulsePoint","homepage":"https://cloudpulsepoint.com","docs":"https://cloudpulsepoint.com/agents.html","contact":"support@cloudpulsepoint.com"},"protocol":"x402","scheme":"exact","network":"eip155:8453","asset":{"symbol":"USDC","address":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","decimals":6},"payTo":"0x05a877EF93E7818828D199E2Df0028bca3C75bf0","pricing":"https://x402.cloudpulsepoint.com/agent/pricing","endpoints":[{"resource":"https://x402.cloudpulsepoint.com/agent/check/http","method":"POST","price":{"usdc":"0.01","atomic":"10000"},"description":"Fetch a URL and report whether it is reachable, the HTTP status code, and the response time in milliseconds. A fast liveness/uptime probe — run it before relying on a site or as a cheap health signal.","tags":["monitoring","http","uptime","website"],"input":{"type":"object","required":["url"],"properties":{"url":{"type":"string","description":"Full http(s) URL of the site to check, e.g. \"https://example.com\". Must resolve to a public address — private, loopback, link-local, and cloud-metadata targets are rejected with HTTP 400 before any payment."}}},"outputSchema":{"type":"object","properties":{"check":{"const":"http","description":"Identifies which check produced this result."},"network":{"type":"string","description":"CAIP-2 id of the chain the payment settled on (e.g. eip155:8453 = Base)."},"result":{"type":"object","properties":{"url":{"type":"string","description":"The normalized URL that was checked."},"up":{"type":"boolean","description":"true if the site responded with a success/expected status, false otherwise."},"statusCode":{"type":["integer","null"],"description":"HTTP status code returned (e.g. 200, 404, 500); null if the request never completed."},"responseMs":{"type":["integer","null"],"description":"Time from request to response headers, in milliseconds."},"error":{"type":["string","null"],"description":"Human-readable failure reason, or null on success."}}}}},"outputExample":{"check":"http","network":"eip155:8453","result":{"url":"https://example.com/","up":true,"statusCode":200,"responseMs":177,"error":null}}},{"resource":"https://x402.cloudpulsepoint.com/agent/check/ssl","method":"POST","price":{"usdc":"0.01","atomic":"10000"},"description":"Inspect the site's TLS/SSL certificate: whether it is currently valid and how many days remain until it expires. Use to catch soon-to-expire or already-expired certificates before they break HTTPS for visitors.","tags":["monitoring","ssl","tls","certificate"],"input":{"type":"object","required":["url"],"properties":{"url":{"type":"string","description":"Full http(s) URL of the site to check, e.g. \"https://example.com\". Must resolve to a public address — private, loopback, link-local, and cloud-metadata targets are rejected with HTTP 400 before any payment."}}},"outputSchema":{"type":"object","properties":{"check":{"const":"ssl","description":"Identifies which check produced this result."},"network":{"type":"string","description":"CAIP-2 id of the chain the payment settled on (e.g. eip155:8453 = Base)."},"result":{"type":"object","properties":{"url":{"type":"string","description":"The normalized URL that was checked."},"status":{"type":"string","enum":["UP","WARN","DOWN"],"description":"UP = valid; WARN = valid but expiring soon; DOWN = expired, not yet valid, or the TLS handshake failed."},"validUntil":{"type":["string","null"],"format":"date-time","description":"ISO-8601 timestamp the certificate is valid until."},"daysUntilExpiry":{"type":["integer","null"],"description":"Whole days until the certificate expires (negative if already expired)."},"error":{"type":["string","null"],"description":"Human-readable failure reason, or null on success."},"warning":{"type":["string","null"],"description":"Human-readable warning when the check passed but a threshold was crossed, else null."}}}}},"outputExample":{"check":"ssl","network":"eip155:8453","result":{"url":"https://example.com/","status":"UP","validUntil":"2026-08-29T21:41:26.000Z","daysUntilExpiry":36,"error":null,"warning":null}}},{"resource":"https://x402.cloudpulsepoint.com/agent/check/dns","method":"POST","price":{"usdc":"0.01","atomic":"10000"},"description":"Resolve a DNS record (A by default) for the host and return the values. Use to confirm a domain resolves and to detect missing or misconfigured records.","tags":["monitoring","dns","domain","resolution"],"input":{"type":"object","required":["url"],"properties":{"url":{"type":"string","description":"Full http(s) URL of the site to check, e.g. \"https://example.com\". Must resolve to a public address — private, loopback, link-local, and cloud-metadata targets are rejected with HTTP 400 before any payment."},"recordType":{"type":"string","enum":["A","AAAA","CNAME","MX","TXT","NS"],"default":"A","description":"DNS record type to resolve. Defaults to A (IPv4)."}}},"outputSchema":{"type":"object","properties":{"check":{"const":"dns","description":"Identifies which check produced this result."},"network":{"type":"string","description":"CAIP-2 id of the chain the payment settled on (e.g. eip155:8453 = Base)."},"result":{"type":"object","properties":{"url":{"type":"string","description":"The normalized URL that was checked."},"recordType":{"type":"string","description":"The record type that was queried (uppercased)."},"status":{"type":"string","enum":["UP","WARN","DOWN"],"description":"UP = at least one record resolved; DOWN = no records / NXDOMAIN / resolution failed."},"records":{"type":["string","null"],"description":"Comma-separated list of resolved values, or null if none."},"error":{"type":["string","null"],"description":"Human-readable failure reason, or null on success."}}}}},"outputExample":{"check":"dns","network":"eip155:8453","result":{"url":"https://example.com/","recordType":"A","status":"UP","records":"104.20.23.154, 172.66.147.243","error":null}}},{"resource":"https://x402.cloudpulsepoint.com/agent/check/domain","method":"POST","price":{"usdc":"0.03","atomic":"30000"},"description":"Look up the domain's registration expiry via WHOIS and report the expiry date and days remaining. Use to catch domains about to lapse before they drop and take DNS/email/site down with them.","tags":["monitoring","domain","whois","expiry"],"input":{"type":"object","required":["url"],"properties":{"url":{"type":"string","description":"Full http(s) URL of the site to check, e.g. \"https://example.com\". Must resolve to a public address — private, loopback, link-local, and cloud-metadata targets are rejected with HTTP 400 before any payment."}}},"outputSchema":{"type":"object","properties":{"check":{"const":"domain","description":"Identifies which check produced this result."},"network":{"type":"string","description":"CAIP-2 id of the chain the payment settled on (e.g. eip155:8453 = Base)."},"result":{"type":"object","properties":{"url":{"type":"string","description":"The normalized URL that was checked."},"status":{"type":"string","enum":["UP","WARN","DOWN"],"description":"UP = registered with time to spare; WARN = expiring soon; DOWN = expired or WHOIS lookup failed."},"expiresAt":{"type":["string","null"],"format":"date-time","description":"ISO-8601 domain registration expiry timestamp."},"daysUntilExpiry":{"type":["integer","null"],"description":"Whole days until the domain registration expires (negative if already expired)."},"error":{"type":["string","null"],"description":"Human-readable failure reason, or null on success."},"warning":{"type":["string","null"],"description":"Human-readable warning when the check passed but a threshold was crossed, else null."}}}}},"outputExample":{"check":"domain","network":"eip155:8453","result":{"url":"https://example.com/","status":"UP","expiresAt":"2027-08-13T04:00:00.000Z","daysUntilExpiry":384,"error":null,"warning":null}}},{"resource":"https://x402.cloudpulsepoint.com/agent/check/blacklist","method":"POST","price":{"usdc":"0.03","atomic":"30000"},"description":"Resolve the site's IP and check it against 15 major DNSBL spam/abuse blacklists. Use before sending mail from, or trusting, a host. WARN = listed on 1–2 lists; DOWN = listed on 3 or more.","tags":["monitoring","blacklist","dnsbl","email","reputation"],"input":{"type":"object","required":["url"],"properties":{"url":{"type":"string","description":"Full http(s) URL of the site to check, e.g. \"https://example.com\". Must resolve to a public address — private, loopback, link-local, and cloud-metadata targets are rejected with HTTP 400 before any payment."}}},"outputSchema":{"type":"object","properties":{"check":{"const":"blacklist","description":"Identifies which check produced this result."},"network":{"type":"string","description":"CAIP-2 id of the chain the payment settled on (e.g. eip155:8453 = Base)."},"result":{"type":"object","properties":{"url":{"type":"string","description":"The normalized URL that was checked."},"status":{"type":"string","enum":["UP","WARN","DOWN"],"description":"UP = listed on 0 blacklists; WARN = listed on 1–2; DOWN = listed on 3 or more."},"listedCount":{"type":["integer","null"],"description":"Number of blacklists the IP was found on."},"listedTotal":{"type":["integer","null"],"description":"Total number of blacklists queried (15)."},"sources":{"type":["string","null"],"description":"Comma-separated names of the blacklists that listed the IP, or null if clean."},"error":{"type":["string","null"],"description":"Human-readable failure reason, or null on success."},"warning":{"type":["string","null"],"description":"Human-readable warning when the check passed but a threshold was crossed, else null."}}}}},"outputExample":{"check":"blacklist","network":"eip155:8453","result":{"url":"https://example.com/","status":"UP","listedCount":0,"listedTotal":15,"sources":null,"error":null,"warning":null}}},{"resource":"https://x402.cloudpulsepoint.com/agent/check/perf","method":"POST","price":{"usdc":"0.03","atomic":"30000"},"description":"Load the full page and measure time-to-first-byte, total load time, and downloaded size (capped at 5 MB). Use to gauge front-end performance before crawling, embedding, or depending on a page.","tags":["monitoring","performance","speed","ttfb"],"input":{"type":"object","required":["url"],"properties":{"url":{"type":"string","description":"Full http(s) URL of the site to check, e.g. \"https://example.com\". Must resolve to a public address — private, loopback, link-local, and cloud-metadata targets are rejected with HTTP 400 before any payment."}}},"outputSchema":{"type":"object","properties":{"check":{"const":"perf","description":"Identifies which check produced this result."},"network":{"type":"string","description":"CAIP-2 id of the chain the payment settled on (e.g. eip155:8453 = Base)."},"result":{"type":"object","properties":{"url":{"type":"string","description":"The normalized URL that was checked."},"status":{"type":"string","enum":["UP","WARN","DOWN"],"description":"UP = loaded within threshold; WARN = slow (over the load-time threshold); DOWN = failed or timed out."},"ttfbMs":{"type":["integer","null"],"description":"Time to first byte, in milliseconds."},"loadTimeMs":{"type":["integer","null"],"description":"Total time to download the page body (up to the 5 MB cap), in milliseconds."},"contentSize":{"type":["integer","null"],"description":"Bytes downloaded (capped at 5,242,880 = 5 MB)."},"error":{"type":["string","null"],"description":"Human-readable failure reason, or null on success."},"warning":{"type":["string","null"],"description":"Human-readable warning when the check passed but a threshold was crossed, else null."}}}}},"outputExample":{"check":"perf","network":"eip155:8453","result":{"url":"https://example.com/","status":"UP","ttfbMs":92,"loadTimeMs":318,"contentSize":51200,"error":null,"warning":null}}},{"resource":"https://x402.cloudpulsepoint.com/agent/check/site","method":"POST","price":{"usdc":"0.05","atomic":"50000"},"description":"Run HTTP + SSL + DNS + domain-expiry in one call and return a combined health snapshot. The single pre-flight check to run before crawling, deploying to, or depending on a site — cheaper and one round-trip instead of four.","tags":["monitoring","uptime","website","health","preflight"],"input":{"type":"object","required":["url"],"properties":{"url":{"type":"string","description":"Full http(s) URL of the site to check, e.g. \"https://example.com\". Must resolve to a public address — private, loopback, link-local, and cloud-metadata targets are rejected with HTTP 400 before any payment."}}},"outputSchema":{"type":"object","properties":{"check":{"const":"site","description":"Identifies which check produced this result."},"network":{"type":"string","description":"CAIP-2 id of the chain the payment settled on (e.g. eip155:8453 = Base)."},"result":{"type":"object","properties":{"url":{"type":"string","description":"The normalized URL that was checked."},"checkedAt":{"type":"string","format":"date-time","description":"ISO-8601 timestamp the snapshot was taken."},"http":{"type":"object","description":"HTTP sub-result: { up, statusCode, responseMs }."},"ssl":{"type":"object","description":"SSL sub-result: { status, daysUntilExpiry }."},"dns":{"type":"object","description":"DNS sub-result: { status, records }."},"domain":{"type":"object","description":"Domain-expiry sub-result: { status, daysUntilExpiry }."}}}}},"outputExample":{"check":"site","network":"eip155:8453","result":{"url":"https://example.com/","checkedAt":"2026-07-24T15:30:16.348Z","http":{"up":true,"statusCode":200,"responseMs":38},"ssl":{"status":"UP","daysUntilExpiry":36},"dns":{"status":"UP","records":"104.20.23.154"},"domain":{"status":"UP","daysUntilExpiry":384}}}}],"free":[{"resource":"https://x402.cloudpulsepoint.com/agent/pricing","method":"GET","description":"Free machine-readable price list and payment instructions."}],"notes":["x402 protocol version 2. Every paid route returns HTTP 402 with payment requirements (PAYMENT-REQUIRED header + JSON body) when called without a valid PAYMENT-SIGNATURE header. GET on a paid route also returns the 402 quote.","Targets resolving to private, loopback, link-local, or cloud-metadata addresses are rejected with HTTP 400 (SSRF protection), before any payment.","Rate limit: 60 requests/minute per payer address.","Payment is settled BEFORE the check runs. If a check errors after settlement (e.g. WHOIS timeout), the response is 200 with an `error` field and the fee is not refunded — validate inputs and prefer the retriable single checks.","Prices are quoted on every 402 response and may change; the /agent/pricing endpoint is authoritative."]}