{
  "schema": "voidly-pay-fetch-info/v1",
  "name": "Voidly Pay Fetch",
  "tagline": "Pay 5¢, fetch any URL from a specific country with cryptographic origin attestation.",
  "description": "Country-pinned HTTP fetch with origin attestation. Voidly operates 37+ probes across the world (US, EU, APAC, plus IR/RU/CN/BY/MM if you need them). Pass `from=<ISO-3166>`; we route the fetch through a probe in that country and return the response body + an Ed25519 receipt binding (URL, body SHA-256, country, ASN, probe-DID, timestamp). Anyone with our facilitator pubkey verifies it without trusting the agent. Use cases: ad verification, geo-pricing checks, content localization tests, regional availability monitoring, market research, AI-agent fact-checking from a specific vantage point, residential-proxy alternatives priced per-call.",
  "endpoint": "https://api.voidly.ai/v1/pay/fetch",
  "methods": [
    "GET",
    "POST"
  ],
  "input_query_or_json": {
    "url": "Required. Absolute https:// URL to fetch.",
    "from": "Optional. ISO-3166 alpha-2 country (e.g. IR, RU, CN, US). If omitted: cheapest probe wins.",
    "method": "Optional. GET, HEAD, or OPTIONS. Default GET.",
    "require_country": "Optional. 1 = fail with 503 if no probe in country. 0 (default) = fall back to Cloudflare-edge fetch with via=cloudflare-edge in receipt.",
    "quote_id": "Optional. Returned by 402 challenge; pass back to settle."
  },
  "pricing": {
    "amount_micro": 50000,
    "amount_usdc": 0.05,
    "currency": "voidly-credit",
    "recipient_did": "did:voidly:PBcsB2avN4ZfDC5yvEwBBT"
  },
  "caps": {
    "max_response_bytes": 262144,
    "upstream_timeout_ms": 15000,
    "job_ttl_ms": 600000,
    "fallback_after_ms": 5000,
    "allowed_methods": [
      "GET",
      "HEAD",
      "OPTIONS"
    ]
  },
  "flow": [
    "POST /v1/pay/fetch?url=<...>&from=IR → HTTP 402 + signed quote",
    "Pay the quote via /v1/pay/transfer",
    "Retry with X-Payment header → 200 + signed receipt (via=probe), OR 202 + job_id (poll /v1/pay/fetch/{job_id})",
    "If no probe in country claims within 5s, fall back to Cloudflare-edge fetch unless require_country=1"
  ],
  "sample_use_cases": [
    "Ad verification: prove a creative did/didn't render to in-country users",
    "Geo-pricing: confirm what your competitor's site shows users in market X",
    "Content localization QA: see the page exactly as a user in DE sees it",
    "Regional uptime: country-aware availability monitoring",
    "AI agent fact-checking from a specific vantage point",
    "Residential-proxy alternative priced per-call (no $500/mo minimum)"
  ],
  "probe_network": {
    "nodes_total": "37+",
    "countries_supported_includes": [
      "US",
      "GB",
      "DE",
      "FR",
      "JP",
      "SG",
      "AU",
      "BR",
      "IN",
      "ZA",
      "MX",
      "KR",
      "CA",
      "ES",
      "NL",
      "IR",
      "RU",
      "CN",
      "BY",
      "MM",
      "PK",
      "TR",
      "VN",
      "AE",
      "SA",
      "EG"
    ],
    "attestation_format": "Receipt schema voidly-pay-fetch/v1, signed by facilitator (ed25519). Probe also signs upstream attestation."
  },
  "facilitator_key_url": "https://api.voidly.ai/v1/pay/x402/facilitator-key",
  "$why_unique": "The signed (URL, body-SHA-256, country, ASN, probe-DID, timestamp) tuple is the product. Stripe / Coinbase x402 / ATXP don't have a country-attested probe network. Bright Data has IPs but no signed attestation, no x402, $500/mo minimum.",
  "vs": {
    "bright-data": "$8/GB residential, no x402, no signed attestation, $500/mo minimum",
    "scrapingbee": "$50/mo, no country guarantee, no signature",
    "coinbase-x402": "no probe network, can't attest country",
    "voidly-pay-scrape": "1¢ from CF edge, no country (this endpoint is the country-aware version)"
  }
}