{"uid":"cap_0QY57x2D7DARQRgj0Patx","slug":"aiskills402-x402-offer-check-d377fdea","name":"AISkills402: x402 Offer Check","description":"x402 Offer Check API: probes a public x402 storefront from the Cloudflare edge (GET, POST, OPTIONS) and reports what a buyer sees - payment-required header vs body, extra, bazaar, CORS, header size, 404 on the other method - as findings by severity. $0.01 USDC per check, a live measurement (a replayed payment header returns the receipt, not a new measurement). POST JSON {url, method?}; free example at https://api.aiskills402.com/v1/run/x402-offer-check/example","url":"https://api.aiskills402.com/v1/run/x402-offer-check?utm_source=zero.xyz","method":"POST","headers":{},"bodySchema":{"type":"object","properties":{"url":{"type":"string","maxLength":2048,"minLength":1,"description":"Public https address of the x402 resource to check (port 443, a DNS name; no IP addresses, no *.workers.dev)."},"method":{"enum":["auto","GET","POST"],"type":"string","default":"auto","description":"Which method to probe first; the other one is always probed too."}}},"responseSchema":{"type":"json","example":{"ok":true,"skill":"x402-offer-check","engine":"1.0.0","replay":false,"result":{"url":"https://api.aiskills402.com/v1/run/jsonl-repair","offer":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","extra":{"name":"USD Coin","version":"2"},"bazaar":"full","pay_to":"0x8e37022edcf0f21cf3c9f93fee9d4d32519f36f4","scheme":"exact","network":"eip155:8453","amount_usd":"0.003","amount_micro":"3000","resource_url":"https://api.aiskills402.com/v1/run/jsonl-repair","service_name":"AISkills402 API: JSONL Repair","x402_version":2,"max_timeout_seconds":60},"sizes":{"body_bytes":2351,"payment_required_chars":3136,"response_headers_bytes":3873},"findings":[],"final_url":"https://api.aiskills402.com/v1/run/jsonl-repair","reachable":true,"checked_at":"2026-10-16T17:05:07.800Z","paid_method":"POST","measured_from":"recorded","status_by_probe":{"GET":405,"POST":402,"OPTIONS":204},"payable_by_v2_client":true},"receipt":{"tx":"0x<settlement transaction>","settled":true},"refusal":null,"input_sha256":"<sha256 of the request>"}},"example":null,"exampleRequest":null,"tags":["x402"],"displayCostAmount":"0.01","displayCostAsset":"USDC","priceDynamic":false,"priceHint":null,"priceStatus":"priced","priceSource":"probe","requiresHandshake":false,"reviewCount":0,"rating":{"score":"0.00","successRate":"0.00","reviews":0,"stars":null,"state":"unrated"},"availabilityStatus":"unknown","priceObserved":null,"sessionDeposit":null,"pricing":{"kind":"static","summary":"$0.01/call","primary":{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.01","per":"call","confidence":"exact"},"accepted":[{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.01","per":"call","confidence":"exact"}]},"paymentMethods":[{"uid":"pm_GsEpsvnpQw0tp7_g1ba7i","protocol":"x402","methodType":"crypto","chain":"base","mode":"charge","costAmount":"0.01","costPer":"request","priority":0,"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","unit":"request","depositMicros":null,"planRef":null}],"brandName":null,"brandSlug":null,"brandBaseUrl":null,"brandDocsUrl":null,"whatItDoes":"Probes a public x402 payment-gated URL from the Cloudflare edge and reports what a buyer sees — payment headers, CORS behavior, 404s, and other findings by severity.","exampleAgentPrompt":"Can you probe my x402 endpoint at https://api.example.com/v1/my-resource using both GET and POST, and tell me what a buyer would see — payment headers, CORS, offer details, and any findings by severity?","exampleUseCases":[{"title":"Debug x402 endpoint misconfiguration","prompt":"My x402 storefront at https://api.myservice.com/v1/premium-data is returning a 404 on GET but I expected a 402 — can you probe it and tell me what's wrong and what a buyer would actually see?"},{"title":"Verify new x402 listing before publishing","prompt":"I just set up an x402 payment wall at https://api.example.com/v1/report — can you check if the payment-required headers are correct, whether CORS is set up properly, and if a v2 client could pay it?"},{"title":"Audit competitor x402 storefront offer","prompt":"Can you inspect what https://api.someservice.com/v1/data-feed advertises as its x402 offer — the asset, network, amount, pay-to address, and any issues — so I can compare it to my own setup?"}],"resultDescription":"A JSON object including: whether the URL is reachable, the full parsed x402 offer (asset, network, amount, pay-to address, scheme, service name), HTTP status codes for GET/POST/OPTIONS probes, response and header sizes in bytes, CORS findings, a list of findings categorized by severity, whether the endpoint is payable by a v2 client, the final URL after redirects, and a timestamp of when the check was performed.","failureModes":["URL is an IP address or *.workers.dev — rejected by policy","URL is not reachable from Cloudflare edge — reachable:false returned","x402 endpoint returns no payment-required header — reported as a finding","Replayed payment header returns cached receipt instead of fresh measurement","URL resolves to a non-HTTPS scheme — rejected","Response header size exceeds limits — flagged as a finding"],"whenToPreferThis":"Use this endpoint when you need to validate or debug an x402 payment-gated API from the perspective of a real buyer hitting it from the Cloudflare edge. It is especially useful for verifying offer metadata correctness, diagnosing CORS misconfigurations, checking method-specific behavior (GET vs POST), and confirming v2 client compatibility — all in one structured report with severity-ranked findings. Prefer it over manual curl-based checks when you need a machine-readable, edge-sourced audit of an x402 endpoint.","instructions":null,"reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":0,"lastUsedAt":null,"lastSuccessfullyRanAt":null,"lastHealthCheckAt":"2026-10-17T12:40:09.005Z","isFirstParty":false,"canonicalSlug":"aiskills402-x402-offer-check-d377fdea"}