{"openapi":"3.1.0","info":{"title":"x402 Vending Machine","version":"0.1.0"},"servers":[{"url":"https://vending-machine-seven.vercel.app"}],"paths":{"/api/v/email-validate":{"get":{"summary":"Email validation","description":"Validate email format, disposable-domain heuristics, and live DNS MX records via DoH for outreach and lead-gen agents","parameters":[{"name":"email","in":"query","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Paid JSON payload"},"402":{"description":"Payment required (x402)"}},"x-x402-price":"$0.004"}},"/api/v/ip-lookup":{"get":{"summary":"IP geolocation","description":"Live IP geolocation: country, city, org, and ASN for fraud and routing agents","parameters":[{"name":"ip","in":"query","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Paid JSON payload"},"402":{"description":"Payment required (x402)"}},"x-x402-price":"$0.003"}},"/api/v/weather":{"get":{"summary":"Weather snapshot","description":"Current temperature and wind for a city from Open-Meteo (live forecast data)","parameters":[{"name":"city","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Paid JSON payload"},"402":{"description":"Payment required (x402)"}},"x-x402-price":"$0.003"}},"/api/v/crypto-prices":{"get":{"summary":"Crypto spot prices","description":"Live USD spot prices for crypto assets via CoinGecko simple price API","parameters":[{"name":"ids","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Paid JSON payload"},"402":{"description":"Payment required (x402)"}},"x-x402-price":"$0.005"}},"/api/v/qr-code":{"get":{"summary":"QR code","description":"Generate a PNG QR code URL for payment and onboarding payloads (upstream probed live)","parameters":[{"name":"data","in":"query","required":true,"schema":{"type":"string"}},{"name":"size","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Paid JSON payload"},"402":{"description":"Payment required (x402)"}},"x-x402-price":"$0.002"}},"/api/v/dns-resolve":{"get":{"summary":"DNS resolve","description":"Resolve A and AAAA records for a public hostname via DNS-over-HTTPS (60s cache)","parameters":[{"name":"host","in":"query","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Paid JSON payload"},"402":{"description":"Payment required (x402)"}},"x-x402-price":"$0.003"}},"/api/v/http-head":{"get":{"summary":"HTTP HEAD probe","description":"Public URL status, latency, and response header subset for uptime and health agents","parameters":[{"name":"url","in":"query","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Paid JSON payload"},"402":{"description":"Payment required (x402)"}},"x-x402-price":"$0.002"}},"/api/v/bundle-infra":{"get":{"summary":"Infra bundle (DNS + HEAD + TLS)","description":"Single payment bundle: DNS A/AAAA, HTTP HEAD probe, and TLS certificate peek for agent infra workflows","parameters":[{"name":"host","in":"query","required":false,"schema":{"type":"string"}},{"name":"url","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Paid JSON payload"},"402":{"description":"Payment required (x402)"}},"x-x402-price":"$0.01"}},"/api/v/tls-cert":{"get":{"summary":"TLS certificate peek","description":"TLS peer certificate subject, issuer, expiry, and authorization status for a public host","parameters":[{"name":"host","in":"query","required":true,"schema":{"type":"string"}},{"name":"port","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Paid JSON payload"},"402":{"description":"Payment required (x402)"}},"x-x402-price":"$0.004"}},"/api/v/whois-lite":{"get":{"summary":"WHOIS / RDAP lite","description":"Domain registration status, registrar, dates, and nameservers via RDAP (lite fields only)","parameters":[{"name":"domain","in":"query","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Paid JSON payload"},"402":{"description":"Payment required (x402)"}},"x-x402-price":"$0.008"}},"/api/v/fx-rate":{"get":{"summary":"FX rates","description":"Live fiat FX rates (Frankfurter/ECB primary, open.er-api fallback) for cross-border agents","parameters":[{"name":"base","in":"query","required":false,"schema":{"type":"string"}},{"name":"symbols","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Paid JSON payload"},"402":{"description":"Payment required (x402)"}},"x-x402-price":"$0.003"}},"/api/v/redirect-trace":{"get":{"summary":"Redirect trace","description":"Follow a public redirect chain with per-hop HTTP status (SSRF-safe) for security agents","parameters":[{"name":"url","in":"query","required":true,"schema":{"type":"string"}},{"name":"max_hops","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Paid JSON payload"},"402":{"description":"Payment required (x402)"}},"x-x402-price":"$0.003"}},"/api/v/dns-records":{"get":{"summary":"DNS multi-record","description":"Resolve multiple DNS record types (A, AAAA, MX, TXT, NS, CNAME) in one call via DoH for deliverability and security agents","parameters":[{"name":"host","in":"query","required":true,"schema":{"type":"string"}},{"name":"types","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Paid JSON payload"},"402":{"description":"Payment required (x402)"}},"x-x402-price":"$0.004"}},"/api/v/http-get":{"get":{"summary":"HTTP GET (capped body)","description":"SSRF-safe public GET with status, headers, and size-capped JSON/text body for agent tool use","parameters":[{"name":"url","in":"query","required":true,"schema":{"type":"string"}},{"name":"max_bytes","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Paid JSON payload"},"402":{"description":"Payment required (x402)"}},"x-x402-price":"$0.004"}},"/api/v/fetch-text":{"get":{"summary":"Fetch page text","description":"Fetch a public page and return plain text (HTML stripped) for research, RAG, and summarization agents","parameters":[{"name":"url","in":"query","required":true,"schema":{"type":"string"}},{"name":"max_chars","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Paid JSON payload"},"402":{"description":"Payment required (x402)"}},"x-x402-price":"$0.005"}},"/api/v/base-balance":{"get":{"summary":"Base wallet balances","description":"Live Base mainnet ETH and USDC balances for an address — treasury and agent wallet checks","parameters":[{"name":"address","in":"query","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Paid JSON payload"},"402":{"description":"Payment required (x402)"}},"x-x402-price":"$0.003"}},"/api/v/domain-intel":{"get":{"summary":"Domain intel pack","description":"One payment: DNS + TLS cert + RDAP WHOIS + HTTP HEAD for brand protection and security agents","parameters":[{"name":"host","in":"query","required":false,"schema":{"type":"string"}},{"name":"url","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Paid JSON payload"},"402":{"description":"Payment required (x402)"}},"x-x402-price":"$0.015"}}}}