{"schema":"https://github.com/x402-foundation/x402/tree/main/specs","version":1,"service":"Munchausen Lab Analytics","network":"base","networkCaip2":"eip155:8453","asset":"USDC","payTo":"0x6BEd284f036B194cCfD1d035CadDAF164035e51d","endpoints":{"https://munchausen-x402.munlab.workers.dev/api/quote":{"scheme":"exact","maxAmountRequired":"10000","description":"Real-time market quote (BTC/ETH/SOL) via Coinbase (Binance/CoinCap/CoinGecko fallbacks)","method":"GET","resource":"https://munchausen-x402.munlab.workers.dev/api/quote","tier":"quote","unit_price":{"usd":"0.01","amount_micro_usdc":"10000","asset":"USDC"},"unit":"one request","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","price_expires_at":null,"price_validity":"static until this worker is redeployed","input_schema":{"type":"object","properties":{"symbol":{"type":"string","default":"btc,eth,sol","pattern":"^(?:[A-Za-z0-9]+)(?:\\s*,\\s*[A-Za-z0-9]+)*$"}},"required":[]},"output_schema":{"type":"object"},"payer_policy_id":"munlab.pay-per-request.v1","idempotency":{"version":1,"idempotency_key_header":null,"idempotency_key_accepted":false,"duplicate_request":"charged again and served again","safe_to_retry_paid_call":false,"note":"No idempotency key is accepted on the paid routes. The paid routes do not write a receipt or order record; checkout.ts's order idempotency is a separate, non-x402 flow."},"receipt_schema":{"version":1,"settlement_response_header":null,"settlement_response_note":"No settlement receipt is returned. Payment is verified before the handler runs; the 200 body IS the deliverable.","delivery":"HTTP 200 with the resource's JSON body, as described by output_schema","correlation_header":"X-Request-ID (echoed from the request when supplied, generated otherwise)","correlation_is_stored":false,"retrievable_later":false,"idempotent":false},"retry_policy":{"version":1,"retry_after_payment":"charges again -- the paid routes accept no idempotency key","recommended_max_attempts":1,"on_429":{"cause":"rate limit of 10 requests/min per IP","wait_seconds":60,"retry_after_header":null,"safe_to_retry_without_repayment":true},"on_402":{"cause":"no or invalid X-Payment header","action":"obtain a fresh 402 challenge and re-sign; do not replay a stale signature","safe_to_retry_without_repayment":true},"on_5xx":{"cause":"handler or upstream failure after verification","safe_to_retry_without_repayment":false,"note":"the payment was already verified for the failed attempt"}},"openapi":"https://munchausen-x402.munlab.workers.dev/openapi.json"},"https://munchausen-x402.munlab.workers.dev/api/analyze":{"scheme":"exact","maxAmountRequired":"50000","description":"LLM-powered market analysis via OpenRouter","method":"GET","resource":"https://munchausen-x402.munlab.workers.dev/api/analyze","tier":"analyze","unit_price":{"usd":"0.05","amount_micro_usdc":"50000","asset":"USDC"},"unit":"one request","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","price_expires_at":null,"price_validity":"static until this worker is redeployed","input_schema":{"type":"object","properties":{},"required":[]},"output_schema":{"type":"object"},"payer_policy_id":"munlab.pay-per-request.v1","idempotency":{"version":1,"idempotency_key_header":null,"idempotency_key_accepted":false,"duplicate_request":"charged again and served again","safe_to_retry_paid_call":false,"note":"No idempotency key is accepted on the paid routes. The paid routes do not write a receipt or order record; checkout.ts's order idempotency is a separate, non-x402 flow."},"receipt_schema":{"version":1,"settlement_response_header":null,"settlement_response_note":"No settlement receipt is returned. Payment is verified before the handler runs; the 200 body IS the deliverable.","delivery":"HTTP 200 with the resource's JSON body, as described by output_schema","correlation_header":"X-Request-ID (echoed from the request when supplied, generated otherwise)","correlation_is_stored":false,"retrievable_later":false,"idempotent":false},"retry_policy":{"version":1,"retry_after_payment":"charges again -- the paid routes accept no idempotency key","recommended_max_attempts":1,"on_429":{"cause":"rate limit of 10 requests/min per IP","wait_seconds":60,"retry_after_header":null,"safe_to_retry_without_repayment":true},"on_402":{"cause":"no or invalid X-Payment header","action":"obtain a fresh 402 challenge and re-sign; do not replay a stale signature","safe_to_retry_without_repayment":true},"on_5xx":{"cause":"handler or upstream failure after verification","safe_to_retry_without_repayment":false,"note":"the payment was already verified for the failed attempt"}},"openapi":"https://munchausen-x402.munlab.workers.dev/openapi.json"},"https://munchausen-x402.munlab.workers.dev/api/report":{"scheme":"exact","maxAmountRequired":"250000","description":"Full LLM research report via OpenRouter","method":"GET","resource":"https://munchausen-x402.munlab.workers.dev/api/report","tier":"report","unit_price":{"usd":"0.25","amount_micro_usdc":"250000","asset":"USDC"},"unit":"one request","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","price_expires_at":null,"price_validity":"static until this worker is redeployed","input_schema":{"type":"object","properties":{},"required":[]},"output_schema":{"type":"object"},"payer_policy_id":"munlab.pay-per-request.v1","idempotency":{"version":1,"idempotency_key_header":null,"idempotency_key_accepted":false,"duplicate_request":"charged again and served again","safe_to_retry_paid_call":false,"note":"No idempotency key is accepted on the paid routes. The paid routes do not write a receipt or order record; checkout.ts's order idempotency is a separate, non-x402 flow."},"receipt_schema":{"version":1,"settlement_response_header":null,"settlement_response_note":"No settlement receipt is returned. Payment is verified before the handler runs; the 200 body IS the deliverable.","delivery":"HTTP 200 with the resource's JSON body, as described by output_schema","correlation_header":"X-Request-ID (echoed from the request when supplied, generated otherwise)","correlation_is_stored":false,"retrievable_later":false,"idempotent":false},"retry_policy":{"version":1,"retry_after_payment":"charges again -- the paid routes accept no idempotency key","recommended_max_attempts":1,"on_429":{"cause":"rate limit of 10 requests/min per IP","wait_seconds":60,"retry_after_header":null,"safe_to_retry_without_repayment":true},"on_402":{"cause":"no or invalid X-Payment header","action":"obtain a fresh 402 challenge and re-sign; do not replay a stale signature","safe_to_retry_without_repayment":true},"on_5xx":{"cause":"handler or upstream failure after verification","safe_to_retry_without_repayment":false,"note":"the payment was already verified for the failed attempt"}},"openapi":"https://munchausen-x402.munlab.workers.dev/openapi.json"},"https://munchausen-x402.munlab.workers.dev/api/scrape":{"scheme":"exact","maxAmountRequired":"5000","description":"URL to clean extracted text for AI agents","method":"POST","resource":"https://munchausen-x402.munlab.workers.dev/api/scrape","tier":"scrape","unit_price":{"usd":"0.005","amount_micro_usdc":"5000","asset":"USDC"},"unit":"one request","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","price_expires_at":null,"price_validity":"static until this worker is redeployed","input_schema":{"type":"object","properties":{"url":{"type":"string","pattern":"^[hH][tT][tT][pP][sS]?://","description":"HTTP(S) URL prefix, case-insensitive"}},"required":["url"]},"output_schema":{"type":"object"},"payer_policy_id":"munlab.pay-per-request.v1","idempotency":{"version":1,"idempotency_key_header":null,"idempotency_key_accepted":false,"duplicate_request":"charged again and served again","safe_to_retry_paid_call":false,"note":"No idempotency key is accepted on the paid routes. The paid routes do not write a receipt or order record; checkout.ts's order idempotency is a separate, non-x402 flow."},"receipt_schema":{"version":1,"settlement_response_header":null,"settlement_response_note":"No settlement receipt is returned. Payment is verified before the handler runs; the 200 body IS the deliverable.","delivery":"HTTP 200 with the resource's JSON body, as described by output_schema","correlation_header":"X-Request-ID (echoed from the request when supplied, generated otherwise)","correlation_is_stored":false,"retrievable_later":false,"idempotent":false},"retry_policy":{"version":1,"retry_after_payment":"charges again -- the paid routes accept no idempotency key","recommended_max_attempts":1,"on_429":{"cause":"rate limit of 10 requests/min per IP","wait_seconds":60,"retry_after_header":null,"safe_to_retry_without_repayment":true},"on_402":{"cause":"no or invalid X-Payment header","action":"obtain a fresh 402 challenge and re-sign; do not replay a stale signature","safe_to_retry_without_repayment":true},"on_5xx":{"cause":"handler or upstream failure after verification","safe_to_retry_without_repayment":false,"note":"the payment was already verified for the failed attempt"}},"openapi":"https://munchausen-x402.munlab.workers.dev/openapi.json"},"https://munchausen-x402.munlab.workers.dev/api/fact-check":{"scheme":"exact","maxAmountRequired":"20000","description":"Claim verification with LLM verdict and confidence","method":"POST","resource":"https://munchausen-x402.munlab.workers.dev/api/fact-check","tier":"factcheck","unit_price":{"usd":"0.02","amount_micro_usdc":"20000","asset":"USDC"},"unit":"one request","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","price_expires_at":null,"price_validity":"static until this worker is redeployed","input_schema":{"type":"object","properties":{"claim":{"type":"string","minLength":8,"description":"At least 8 characters; runtime counts UTF-16 code units and does not trim whitespace."}},"required":["claim"]},"output_schema":{"type":"object"},"payer_policy_id":"munlab.pay-per-request.v1","idempotency":{"version":1,"idempotency_key_header":null,"idempotency_key_accepted":false,"duplicate_request":"charged again and served again","safe_to_retry_paid_call":false,"note":"No idempotency key is accepted on the paid routes. The paid routes do not write a receipt or order record; checkout.ts's order idempotency is a separate, non-x402 flow."},"receipt_schema":{"version":1,"settlement_response_header":null,"settlement_response_note":"No settlement receipt is returned. Payment is verified before the handler runs; the 200 body IS the deliverable.","delivery":"HTTP 200 with the resource's JSON body, as described by output_schema","correlation_header":"X-Request-ID (echoed from the request when supplied, generated otherwise)","correlation_is_stored":false,"retrievable_later":false,"idempotent":false},"retry_policy":{"version":1,"retry_after_payment":"charges again -- the paid routes accept no idempotency key","recommended_max_attempts":1,"on_429":{"cause":"rate limit of 10 requests/min per IP","wait_seconds":60,"retry_after_header":null,"safe_to_retry_without_repayment":true},"on_402":{"cause":"no or invalid X-Payment header","action":"obtain a fresh 402 challenge and re-sign; do not replay a stale signature","safe_to_retry_without_repayment":true},"on_5xx":{"cause":"handler or upstream failure after verification","safe_to_retry_without_repayment":false,"note":"the payment was already verified for the failed attempt"}},"openapi":"https://munchausen-x402.munlab.workers.dev/openapi.json"},"https://munchausen-x402.munlab.workers.dev/api/token-safety":{"scheme":"exact","maxAmountRequired":"10000","description":"EVM token rug-pull risk score from DEX data","method":"POST","resource":"https://munchausen-x402.munlab.workers.dev/api/token-safety","tier":"tokensafety","unit_price":{"usd":"0.01","amount_micro_usdc":"10000","asset":"USDC"},"unit":"one request","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","price_expires_at":null,"price_validity":"static until this worker is redeployed","input_schema":{"type":"object","properties":{"address":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"Canonical EVM token contract address"},"token":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"Legacy alias"}},"anyOf":[{"required":["address"]},{"required":["token"]}]},"output_schema":{"type":"object"},"payer_policy_id":"munlab.pay-per-request.v1","idempotency":{"version":1,"idempotency_key_header":null,"idempotency_key_accepted":false,"duplicate_request":"charged again and served again","safe_to_retry_paid_call":false,"note":"No idempotency key is accepted on the paid routes. The paid routes do not write a receipt or order record; checkout.ts's order idempotency is a separate, non-x402 flow."},"receipt_schema":{"version":1,"settlement_response_header":null,"settlement_response_note":"No settlement receipt is returned. Payment is verified before the handler runs; the 200 body IS the deliverable.","delivery":"HTTP 200 with the resource's JSON body, as described by output_schema","correlation_header":"X-Request-ID (echoed from the request when supplied, generated otherwise)","correlation_is_stored":false,"retrievable_later":false,"idempotent":false},"retry_policy":{"version":1,"retry_after_payment":"charges again -- the paid routes accept no idempotency key","recommended_max_attempts":1,"on_429":{"cause":"rate limit of 10 requests/min per IP","wait_seconds":60,"retry_after_header":null,"safe_to_retry_without_repayment":true},"on_402":{"cause":"no or invalid X-Payment header","action":"obtain a fresh 402 challenge and re-sign; do not replay a stale signature","safe_to_retry_without_repayment":true},"on_5xx":{"cause":"handler or upstream failure after verification","safe_to_retry_without_repayment":false,"note":"the payment was already verified for the failed attempt"}},"openapi":"https://munchausen-x402.munlab.workers.dev/openapi.json"}},"payer_policies":{"munlab.pay-per-request.v1":{"id":"munlab.pay-per-request.v1","scope":"one request to one resource","authorization_model":"per-request","non_transferable":true,"charged_once_per_verified_header":true,"expires_in_seconds":120,"settlement":{"asset":"USDC","network_caip2":"eip155:8453","recipient_env_var":"RECEIVE_ADDRESS","verification":"facilitator /verify (CDP by default, see FACILITATOR_DESTINATIONS)"},"revocation":"none -- an x402 authorization is not revocable once signed","refund":"none -- this worker holds no funds and never calls /settle","settlement_recipient":"0x6BEd284f036B194cCfD1d035CadDAF164035e51d","settlement_asset":"USDC","network":"base","network_caip2":"eip155:8453"}},"payment_authority":{"unit":"one request/response per endpoint","unit_price_usd":"per request, as published in endpoints[].unit_price","payer_policy_id":"munlab.pay-per-request.v1","payer_policies_ref":"payer_policies","settlement_recipient":"0x6BEd284f036B194cCfD1d035CadDAF164035e51d","settlement_asset":"USDC","verified_by":"facilitator /verify (CDP by default, see FACILITATOR_DESTINATIONS)","price_expires_at":null,"price_validity":"static until this worker is redeployed","price_expiry":null,"price_expiry_note":"Prices are constants in PRICING; they change only when the worker is redeployed. A 402 challenge carries maxTimeoutSeconds=120 as the payment deadline, not a price TTL.","idempotency":{"version":1,"idempotency_key_header":null,"idempotency_key_accepted":false,"duplicate_request":"charged again and served again","safe_to_retry_paid_call":false,"note":"No idempotency key is accepted on the paid routes. The paid routes do not write a receipt or order record; checkout.ts's order idempotency is a separate, non-x402 flow."},"receipt_schema":{"version":1,"settlement_response_header":null,"settlement_response_note":"No settlement receipt is returned. Payment is verified before the handler runs; the 200 body IS the deliverable.","delivery":"HTTP 200 with the resource's JSON body, as described by output_schema","correlation_header":"X-Request-ID (echoed from the request when supplied, generated otherwise)","correlation_is_stored":false,"retrievable_later":false,"idempotent":false},"retry_policy":{"version":1,"retry_after_payment":"charges again -- the paid routes accept no idempotency key","recommended_max_attempts":1,"on_429":{"cause":"rate limit of 10 requests/min per IP","wait_seconds":60,"retry_after_header":null,"safe_to_retry_without_repayment":true},"on_402":{"cause":"no or invalid X-Payment header","action":"obtain a fresh 402 challenge and re-sign; do not replay a stale signature","safe_to_retry_without_repayment":true},"on_5xx":{"cause":"handler or upstream failure after verification","safe_to_retry_without_repayment":false,"note":"the payment was already verified for the failed attempt"}},"error_schema":{"402":{"error":"string","message":"string","reason":"string (optional)"},"429":{"error":"rate_limit","message":"string"}}},"capabilities":["x402","hono","cloudflare-workers"],"_links":{"self":"https://munchausen-x402.munlab.workers.dev/.well-known/x402","docs":"https://munchausen-x402.munlab.workers.dev/docs","openapi":"https://munchausen-x402.munlab.workers.dev/openapi.json"}}