{"openapi":"3.1.0","info":{"title":"agentsvc.io","version":"2.0.0","summary":"Pay-per-call web services for AI agents (x402, USDC on Base)","description":"27 services paid per request with USDC on Base mainnet via the x402 protocol. No account, no API key. Every service has a free trial endpoint. Machine-readable guide: https://agentsvc.io/llms.txt","contact":{"name":"agentsvc.io","url":"https://agentsvc.io"},"x-payment":{"protocol":"x402","x402_versions_accepted":[1,2],"scheme":"exact","network":"eip155:8453","network_v1":"base","chain_id":8453,"asset":"USDC","asset_contract":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","asset_decimals":6,"eip712_domain":{"name":"USD Coin","version":"2","chainId":8453,"verifyingContract":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"pay_to":"0x622efA6Ceb83a5b6EdBC931332f4db68B7f74F27","facilitator":"https://facilitator.payai.network","request_header_v2":"PAYMENT-SIGNATURE","request_header_v1":"X-PAYMENT","requirements_v2":"base64 JSON in the PAYMENT-REQUIRED response header of the 402","requirements_v1":"JSON body of the 402 (accepts[0])","receipt_header":"PAYMENT-RESPONSE (and X-PAYMENT-RESPONSE): base64 JSON with transaction hash","accounts_required":false,"api_keys_required":false,"settlement":"per call, on-chain, after the service succeeded. Failed calls are never charged."}},"servers":[{"url":"https://agentsvc.io"}],"tags":[{"name":"catalog"},{"name":"trial"},{"name":"web"},{"name":"visual"},{"name":"text"},{"name":"data"},{"name":"utility"},{"name":"finance"}],"paths":{"/api/v1/proxy/screenshot":{"post":{"operationId":"screenshot","summary":"Screenshot API ($0.005 USDC per call)","description":"Capture any URL as a PNG screenshot. Returns image_base64 (base64 PNG — decode to get raw bytes). Full JS rendering via Playwright, works on SPAs and dynamic content. Params: url (required), width px (default 1280), height px (default 800), full_page boolean, wait_ms.\n\nPrice: $0.005 USDC per successful call, paid via x402 (USDC on Base mainnet). Without a payment header the response is HTTP 402 with the requirements. Free trial: POST https://agentsvc.io/api/v1/try/screenshot","tags":["visual"],"x-price-usdc":0.005,"x-x402":{"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x622efA6Ceb83a5b6EdBC931332f4db68B7f74F27","scheme":"exact","amount":"5000"},"parameters":[{"name":"PAYMENT-SIGNATURE","in":"header","required":false,"schema":{"type":"string"},"description":"x402 v2 payment payload (base64 JSON). Sent automatically by @x402/fetch or x402 python."},{"name":"X-PAYMENT","in":"header","required":false,"schema":{"type":"string"},"description":"x402 v1 payment payload (base64 JSON)."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["url"],"properties":{"url":{"type":"string","format":"uri","description":"The URL to capture"},"width":{"type":"integer","default":1280,"description":"Viewport width in pixels"},"height":{"type":"integer","default":800,"description":"Viewport height in pixels"},"full_page":{"type":"boolean","default":false,"description":"Capture full page height"},"wait_ms":{"type":"integer","default":1000,"description":"Wait time after page load in ms"}}},"example":{"url":"https://example.com","width":1280,"height":800}}}},"responses":{"200":{"description":"Success. Payment settled on-chain; receipt in PAYMENT-RESPONSE header.","headers":{"PAYMENT-RESPONSE":{"schema":{"type":"string"},"description":"base64 JSON {success, transaction, network, payer}"},"X-Latency-Ms":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["success","data"],"properties":{"success":{"type":"boolean","const":true},"data":{"type":"object","required":["image_base64","width","height","url","captured_at"],"properties":{"image_base64":{"type":"string","description":"Base64-encoded PNG image (decode to get raw bytes)"},"width":{"type":"integer","description":"Actual image width in pixels"},"height":{"type":"integer","description":"Actual image height in pixels"},"url":{"type":"string","description":"The URL that was captured"},"captured_at":{"type":"string","format":"date-time","description":"ISO 8601 timestamp of when screenshot was taken"}},"example":{"image_base64":"iVBORw0KGgoAAAANSUhEUgAABQAAAASwCAYAAACPT...","width":1280,"height":800,"url":"https://example.com","captured_at":"2026-04-07T12:00:00.000Z"}},"payment":{"type":"object","properties":{"settled":{"type":"boolean"},"amount_usdc":{"type":"number"},"transaction":{"type":"string"},"network":{"type":"string"},"payer":{"type":"string"},"explorer":{"type":"string"}}}}},"example":{"success":true,"data":{"image_base64":"iVBORw0KGgoAAAANSUhEUgAABQAAAASwCAYAAACPT...","width":1280,"height":800,"url":"https://example.com","captured_at":"2026-04-07T12:00:00.000Z"},"payment":{"settled":true,"amount_usdc":0.005,"transaction":"0x…","network":"eip155:8453","payer":"0x…"}}}}},"400":{"description":"Invalid input. Not charged. Body includes example_input and input_schema.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment required or payment rejected. Body: x402 v1 PaymentRequired plus hint. Header PAYMENT-REQUIRED: x402 v2 PaymentRequired (base64 JSON).","headers":{"PAYMENT-REQUIRED":{"schema":{"type":"string"},"description":"base64 JSON x402 v2 PaymentRequired"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentRequired"}}}},"500":{"description":"Service error. Not charged.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Facilitator unavailable. Not charged. Retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/try/screenshot":{"post":{"operationId":"try_screenshot","summary":"Free trial: Screenshot API","description":"Same output as the paid endpoint, limited per IP and day. Send an empty body to use the example input.","tags":["trial"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","required":["url"],"properties":{"url":{"type":"string","format":"uri","description":"The URL to capture"},"width":{"type":"integer","default":1280,"description":"Viewport width in pixels"},"height":{"type":"integer","default":800,"description":"Viewport height in pixels"},"full_page":{"type":"boolean","default":false,"description":"Capture full page height"},"wait_ms":{"type":"integer","default":1000,"description":"Wait time after page load in ms"}}},"example":{"url":"https://example.com","width":1280,"height":800}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"type":"object","required":["image_base64","width","height","url","captured_at"],"properties":{"image_base64":{"type":"string","description":"Base64-encoded PNG image (decode to get raw bytes)"},"width":{"type":"integer","description":"Actual image width in pixels"},"height":{"type":"integer","description":"Actual image height in pixels"},"url":{"type":"string","description":"The URL that was captured"},"captured_at":{"type":"string","format":"date-time","description":"ISO 8601 timestamp of when screenshot was taken"}},"example":{"image_base64":"iVBORw0KGgoAAAANSUhEUgAABQAAAASwCAYAAACPT...","width":1280,"height":800,"url":"https://example.com","captured_at":"2026-04-07T12:00:00.000Z"}},"trial":{"type":"object"},"paid_endpoint":{"type":"string"},"price_usdc":{"type":"number"}}}}}},"429":{"description":"Trial limit reached for today","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/proxy/weather":{"post":{"operationId":"weather","summary":"Weather Data ($0.002 USDC per call)","description":"Real-time weather + 3-day forecast. Returns current (temp_c, feels_like_c, humidity_pct, wind_kph, weather_code) and forecast_3d array. Pass location as city name ('Berlin') or GPS string ('52.52,13.41'). WMO codes: 0=clear, 1-3=cloudy, 45-48=fog, 51-67=rain, 71-77=snow, 95-99=thunderstorm.\n\nPrice: $0.002 USDC per successful call, paid via x402 (USDC on Base mainnet). Without a payment header the response is HTTP 402 with the requirements. Free trial: POST https://agentsvc.io/api/v1/try/weather","tags":["data"],"x-price-usdc":0.002,"x-x402":{"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x622efA6Ceb83a5b6EdBC931332f4db68B7f74F27","scheme":"exact","amount":"2000"},"parameters":[{"name":"PAYMENT-SIGNATURE","in":"header","required":false,"schema":{"type":"string"},"description":"x402 v2 payment payload (base64 JSON). Sent automatically by @x402/fetch or x402 python."},{"name":"X-PAYMENT","in":"header","required":false,"schema":{"type":"string"},"description":"x402 v1 payment payload (base64 JSON)."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["location"],"properties":{"location":{"type":"string","description":"City name (e.g. 'Berlin'), or lat,lon string (e.g. '52.52,13.41'). Default: Berlin","default":"Berlin"}}},"example":{"location":"Berlin"}}}},"responses":{"200":{"description":"Success. Payment settled on-chain; receipt in PAYMENT-RESPONSE header.","headers":{"PAYMENT-RESPONSE":{"schema":{"type":"string"},"description":"base64 JSON {success, transaction, network, payer}"},"X-Latency-Ms":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["success","data"],"properties":{"success":{"type":"boolean","const":true},"data":{"type":"object","required":["location","current","forecast_3d"],"properties":{"location":{"type":"object","required":["name","lat","lon"],"properties":{"name":{"type":"string","description":"Location name as provided in input"},"lat":{"type":"number","description":"Resolved latitude"},"lon":{"type":"number","description":"Resolved longitude"}}},"current":{"type":"object","required":["temp_c","feels_like_c","humidity_pct","wind_kph","weather_code"],"properties":{"temp_c":{"type":"number","description":"Current temperature in Celsius"},"feels_like_c":{"type":"number","description":"Apparent temperature in Celsius"},"humidity_pct":{"type":"integer","description":"Relative humidity percentage (0-100)"},"wind_kph":{"type":"number","description":"Wind speed in km/h"},"weather_code":{"type":"integer","description":"WMO weather code (0=clear, 1-3=cloudy, 45-48=fog, 51-67=rain, 71-77=snow, 80-82=showers, 95-99=thunderstorm)"}}},"forecast_3d":{"type":"array","description":"3-day daily forecast","items":{"type":"object","required":["date","temp_max_c","temp_min_c","weather_code"],"properties":{"date":{"type":"string","format":"date","description":"ISO 8601 date (YYYY-MM-DD)"},"temp_max_c":{"type":"number","description":"Maximum temperature in Celsius for this day"},"temp_min_c":{"type":"number","description":"Minimum temperature in Celsius for this day"},"weather_code":{"type":"integer","description":"WMO weather code — same scale as current.weather_code"}}}}},"example":{"location":{"name":"Berlin","lat":52.52,"lon":13.41},"current":{"temp_c":12.5,"feels_like_c":10.2,"humidity_pct":71,"wind_kph":14.8,"weather_code":3},"forecast_3d":[{"date":"2026-04-07","temp_max_c":14,"temp_min_c":8.2,"weather_code":1},{"date":"2026-04-08","temp_max_c":16.5,"temp_min_c":9,"weather_code":2},{"date":"2026-04-09","temp_max_c":13,"temp_min_c":7.8,"weather_code":61}]}},"payment":{"type":"object","properties":{"settled":{"type":"boolean"},"amount_usdc":{"type":"number"},"transaction":{"type":"string"},"network":{"type":"string"},"payer":{"type":"string"},"explorer":{"type":"string"}}}}},"example":{"success":true,"data":{"location":{"name":"Berlin","lat":52.52,"lon":13.41},"current":{"temp_c":12.5,"feels_like_c":10.2,"humidity_pct":71,"wind_kph":14.8,"weather_code":3},"forecast_3d":[{"date":"2026-04-07","temp_max_c":14,"temp_min_c":8.2,"weather_code":1},{"date":"2026-04-08","temp_max_c":16.5,"temp_min_c":9,"weather_code":2},{"date":"2026-04-09","temp_max_c":13,"temp_min_c":7.8,"weather_code":61}]},"payment":{"settled":true,"amount_usdc":0.002,"transaction":"0x…","network":"eip155:8453","payer":"0x…"}}}}},"400":{"description":"Invalid input. Not charged. Body includes example_input and input_schema.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment required or payment rejected. Body: x402 v1 PaymentRequired plus hint. Header PAYMENT-REQUIRED: x402 v2 PaymentRequired (base64 JSON).","headers":{"PAYMENT-REQUIRED":{"schema":{"type":"string"},"description":"base64 JSON x402 v2 PaymentRequired"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentRequired"}}}},"500":{"description":"Service error. Not charged.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Facilitator unavailable. Not charged. Retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/try/weather":{"post":{"operationId":"try_weather","summary":"Free trial: Weather Data","description":"Same output as the paid endpoint, limited per IP and day. Send an empty body to use the example input.","tags":["trial"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","required":["location"],"properties":{"location":{"type":"string","description":"City name (e.g. 'Berlin'), or lat,lon string (e.g. '52.52,13.41'). Default: Berlin","default":"Berlin"}}},"example":{"location":"Berlin"}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"type":"object","required":["location","current","forecast_3d"],"properties":{"location":{"type":"object","required":["name","lat","lon"],"properties":{"name":{"type":"string","description":"Location name as provided in input"},"lat":{"type":"number","description":"Resolved latitude"},"lon":{"type":"number","description":"Resolved longitude"}}},"current":{"type":"object","required":["temp_c","feels_like_c","humidity_pct","wind_kph","weather_code"],"properties":{"temp_c":{"type":"number","description":"Current temperature in Celsius"},"feels_like_c":{"type":"number","description":"Apparent temperature in Celsius"},"humidity_pct":{"type":"integer","description":"Relative humidity percentage (0-100)"},"wind_kph":{"type":"number","description":"Wind speed in km/h"},"weather_code":{"type":"integer","description":"WMO weather code (0=clear, 1-3=cloudy, 45-48=fog, 51-67=rain, 71-77=snow, 80-82=showers, 95-99=thunderstorm)"}}},"forecast_3d":{"type":"array","description":"3-day daily forecast","items":{"type":"object","required":["date","temp_max_c","temp_min_c","weather_code"],"properties":{"date":{"type":"string","format":"date","description":"ISO 8601 date (YYYY-MM-DD)"},"temp_max_c":{"type":"number","description":"Maximum temperature in Celsius for this day"},"temp_min_c":{"type":"number","description":"Minimum temperature in Celsius for this day"},"weather_code":{"type":"integer","description":"WMO weather code — same scale as current.weather_code"}}}}},"example":{"location":{"name":"Berlin","lat":52.52,"lon":13.41},"current":{"temp_c":12.5,"feels_like_c":10.2,"humidity_pct":71,"wind_kph":14.8,"weather_code":3},"forecast_3d":[{"date":"2026-04-07","temp_max_c":14,"temp_min_c":8.2,"weather_code":1},{"date":"2026-04-08","temp_max_c":16.5,"temp_min_c":9,"weather_code":2},{"date":"2026-04-09","temp_max_c":13,"temp_min_c":7.8,"weather_code":61}]}},"trial":{"type":"object"},"paid_endpoint":{"type":"string"},"price_usdc":{"type":"number"}}}}}},"429":{"description":"Trial limit reached for today","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/proxy/exchange-rates":{"post":{"operationId":"exchange_rates","summary":"Currency Exchange Rates ($0.002 USDC per call)","description":"Live forex rates from European Central Bank (ECB), updated hourly. Returns rates object mapping currency codes to rates relative to base. Pass symbols array to filter (e.g. ['USD','CHF','GBP']). Empty symbols = all 30+ currencies. Use for currency conversion in invoices, pricing, or financial calculations.\n\nPrice: $0.002 USDC per successful call, paid via x402 (USDC on Base mainnet). Without a payment header the response is HTTP 402 with the requirements. Free trial: POST https://agentsvc.io/api/v1/try/exchange-rates","tags":["finance"],"x-price-usdc":0.002,"x-x402":{"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x622efA6Ceb83a5b6EdBC931332f4db68B7f74F27","scheme":"exact","amount":"2000"},"parameters":[{"name":"PAYMENT-SIGNATURE","in":"header","required":false,"schema":{"type":"string"},"description":"x402 v2 payment payload (base64 JSON). Sent automatically by @x402/fetch or x402 python."},{"name":"X-PAYMENT","in":"header","required":false,"schema":{"type":"string"},"description":"x402 v1 payment payload (base64 JSON)."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"base":{"type":"string","default":"EUR","description":"Base currency (e.g. USD, EUR, GBP)"},"symbols":{"type":"array","items":{"type":"string"},"description":"Target currencies to return. Empty = all."}}},"example":{"base":"EUR","symbols":["USD","CHF","GBP"]}}}},"responses":{"200":{"description":"Success. Payment settled on-chain; receipt in PAYMENT-RESPONSE header.","headers":{"PAYMENT-RESPONSE":{"schema":{"type":"string"},"description":"base64 JSON {success, transaction, network, payer}"},"X-Latency-Ms":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["success","data"],"properties":{"success":{"type":"boolean","const":true},"data":{"type":"object","required":["base","date","rates","source"],"properties":{"base":{"type":"string","description":"Base currency code (e.g. EUR)"},"date":{"type":"string","format":"date","description":"Date of the exchange rates"},"rates":{"type":"object","additionalProperties":{"type":"number"},"description":"Map of currency code → exchange rate relative to base"},"source":{"type":"string","description":"Data source attribution. Always: 'European Central Bank via frankfurter.dev'"}},"example":{"base":"EUR","date":"2026-04-07","rates":{"USD":1.0892,"CHF":0.9242,"GBP":0.8594,"JPY":161.32},"source":"European Central Bank via frankfurter.dev"}},"payment":{"type":"object","properties":{"settled":{"type":"boolean"},"amount_usdc":{"type":"number"},"transaction":{"type":"string"},"network":{"type":"string"},"payer":{"type":"string"},"explorer":{"type":"string"}}}}},"example":{"success":true,"data":{"base":"EUR","date":"2026-04-07","rates":{"USD":1.0892,"CHF":0.9242,"GBP":0.8594,"JPY":161.32},"source":"European Central Bank via frankfurter.dev"},"payment":{"settled":true,"amount_usdc":0.002,"transaction":"0x…","network":"eip155:8453","payer":"0x…"}}}}},"400":{"description":"Invalid input. Not charged. Body includes example_input and input_schema.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment required or payment rejected. Body: x402 v1 PaymentRequired plus hint. Header PAYMENT-REQUIRED: x402 v2 PaymentRequired (base64 JSON).","headers":{"PAYMENT-REQUIRED":{"schema":{"type":"string"},"description":"base64 JSON x402 v2 PaymentRequired"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentRequired"}}}},"500":{"description":"Service error. Not charged.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Facilitator unavailable. Not charged. Retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/try/exchange-rates":{"post":{"operationId":"try_exchange_rates","summary":"Free trial: Currency Exchange Rates","description":"Same output as the paid endpoint, limited per IP and day. Send an empty body to use the example input.","tags":["trial"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"base":{"type":"string","default":"EUR","description":"Base currency (e.g. USD, EUR, GBP)"},"symbols":{"type":"array","items":{"type":"string"},"description":"Target currencies to return. Empty = all."}}},"example":{"base":"EUR","symbols":["USD","CHF","GBP"]}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"type":"object","required":["base","date","rates","source"],"properties":{"base":{"type":"string","description":"Base currency code (e.g. EUR)"},"date":{"type":"string","format":"date","description":"Date of the exchange rates"},"rates":{"type":"object","additionalProperties":{"type":"number"},"description":"Map of currency code → exchange rate relative to base"},"source":{"type":"string","description":"Data source attribution. Always: 'European Central Bank via frankfurter.dev'"}},"example":{"base":"EUR","date":"2026-04-07","rates":{"USD":1.0892,"CHF":0.9242,"GBP":0.8594,"JPY":161.32},"source":"European Central Bank via frankfurter.dev"}},"trial":{"type":"object"},"paid_endpoint":{"type":"string"},"price_usdc":{"type":"number"}}}}}},"429":{"description":"Trial limit reached for today","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/proxy/html-to-pdf":{"post":{"operationId":"html_to_pdf","summary":"HTML to PDF ($0.008 USDC per call)","description":"Render a URL or raw HTML string to PDF. Returns pdf_base64 (base64 PDF — decode to get raw bytes) and page_count. Provide url OR html — never both. Supports format (A4/Letter/Legal), landscape boolean, and margin settings (top/bottom/left/right in CSS units). Use for invoices, reports, or printable document generation.\n\nPrice: $0.008 USDC per successful call, paid via x402 (USDC on Base mainnet). Without a payment header the response is HTTP 402 with the requirements. Free trial: POST https://agentsvc.io/api/v1/try/html-to-pdf","tags":["visual"],"x-price-usdc":0.008,"x-x402":{"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x622efA6Ceb83a5b6EdBC931332f4db68B7f74F27","scheme":"exact","amount":"8000"},"parameters":[{"name":"PAYMENT-SIGNATURE","in":"header","required":false,"schema":{"type":"string"},"description":"x402 v2 payment payload (base64 JSON). Sent automatically by @x402/fetch or x402 python."},{"name":"X-PAYMENT","in":"header","required":false,"schema":{"type":"string"},"description":"x402 v1 payment payload (base64 JSON)."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"description":"Provide either 'url' OR 'html' (not both). Common fields (format, landscape, margin) apply to both.","oneOf":[{"type":"object","required":["url"],"properties":{"url":{"type":"string","format":"uri","description":"URL to render as PDF (must be publicly accessible)"},"format":{"type":"string","enum":["A4","Letter","Legal"],"default":"A4","description":"Page format"},"landscape":{"type":"boolean","default":false,"description":"Landscape orientation"},"margin":{"type":"object","description":"Page margins (CSS units, e.g. '1cm', '10mm', '0.5in')","properties":{"top":{"type":"string","default":"1cm"},"bottom":{"type":"string","default":"1cm"},"left":{"type":"string","default":"1cm"},"right":{"type":"string","default":"1cm"}}}}},{"type":"object","required":["html"],"properties":{"html":{"type":"string","description":"Raw HTML string to render as PDF"},"format":{"type":"string","enum":["A4","Letter","Legal"],"default":"A4","description":"Page format"},"landscape":{"type":"boolean","default":false,"description":"Landscape orientation"},"margin":{"type":"object","description":"Page margins (CSS units, e.g. '1cm', '10mm', '0.5in')","properties":{"top":{"type":"string","default":"1cm"},"bottom":{"type":"string","default":"1cm"},"left":{"type":"string","default":"1cm"},"right":{"type":"string","default":"1cm"}}}}}]},"example":{"html":"<h1>Invoice #123</h1><p>Total: $42.00</p>"}}}},"responses":{"200":{"description":"Success. Payment settled on-chain; receipt in PAYMENT-RESPONSE header.","headers":{"PAYMENT-RESPONSE":{"schema":{"type":"string"},"description":"base64 JSON {success, transaction, network, payer}"},"X-Latency-Ms":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["success","data"],"properties":{"success":{"type":"boolean","const":true},"data":{"type":"object","required":["pdf_base64","page_count","file_size_bytes","generated_at"],"properties":{"pdf_base64":{"type":"string","description":"Base64-encoded PDF bytes (decode to get raw PDF file)"},"page_count":{"type":"integer","description":"Number of pages in the generated PDF"},"file_size_bytes":{"type":"integer","description":"Size of the PDF in bytes"},"generated_at":{"type":"string","format":"date-time","description":"ISO 8601 timestamp of generation"}},"example":{"pdf_base64":"JVBERi0xLjQKJeLjz9MKMyAwIG9iago8PC9...","page_count":2,"file_size_bytes":14867,"generated_at":"2026-04-07T12:00:00.000Z"}},"payment":{"type":"object","properties":{"settled":{"type":"boolean"},"amount_usdc":{"type":"number"},"transaction":{"type":"string"},"network":{"type":"string"},"payer":{"type":"string"},"explorer":{"type":"string"}}}}},"example":{"success":true,"data":{"pdf_base64":"JVBERi0xLjQKJeLjz9MKMyAwIG9iago8PC9...","page_count":2,"file_size_bytes":14867,"generated_at":"2026-04-07T12:00:00.000Z"},"payment":{"settled":true,"amount_usdc":0.008,"transaction":"0x…","network":"eip155:8453","payer":"0x…"}}}}},"400":{"description":"Invalid input. Not charged. Body includes example_input and input_schema.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment required or payment rejected. Body: x402 v1 PaymentRequired plus hint. Header PAYMENT-REQUIRED: x402 v2 PaymentRequired (base64 JSON).","headers":{"PAYMENT-REQUIRED":{"schema":{"type":"string"},"description":"base64 JSON x402 v2 PaymentRequired"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentRequired"}}}},"500":{"description":"Service error. Not charged.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Facilitator unavailable. Not charged. Retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/try/html-to-pdf":{"post":{"operationId":"try_html_to_pdf","summary":"Free trial: HTML to PDF","description":"Same output as the paid endpoint, limited per IP and day. Send an empty body to use the example input.","tags":["trial"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"description":"Provide either 'url' OR 'html' (not both). Common fields (format, landscape, margin) apply to both.","oneOf":[{"type":"object","required":["url"],"properties":{"url":{"type":"string","format":"uri","description":"URL to render as PDF (must be publicly accessible)"},"format":{"type":"string","enum":["A4","Letter","Legal"],"default":"A4","description":"Page format"},"landscape":{"type":"boolean","default":false,"description":"Landscape orientation"},"margin":{"type":"object","description":"Page margins (CSS units, e.g. '1cm', '10mm', '0.5in')","properties":{"top":{"type":"string","default":"1cm"},"bottom":{"type":"string","default":"1cm"},"left":{"type":"string","default":"1cm"},"right":{"type":"string","default":"1cm"}}}}},{"type":"object","required":["html"],"properties":{"html":{"type":"string","description":"Raw HTML string to render as PDF"},"format":{"type":"string","enum":["A4","Letter","Legal"],"default":"A4","description":"Page format"},"landscape":{"type":"boolean","default":false,"description":"Landscape orientation"},"margin":{"type":"object","description":"Page margins (CSS units, e.g. '1cm', '10mm', '0.5in')","properties":{"top":{"type":"string","default":"1cm"},"bottom":{"type":"string","default":"1cm"},"left":{"type":"string","default":"1cm"},"right":{"type":"string","default":"1cm"}}}}}]},"example":{"html":"<h1>Invoice #123</h1><p>Total: $42.00</p>"}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"type":"object","required":["pdf_base64","page_count","file_size_bytes","generated_at"],"properties":{"pdf_base64":{"type":"string","description":"Base64-encoded PDF bytes (decode to get raw PDF file)"},"page_count":{"type":"integer","description":"Number of pages in the generated PDF"},"file_size_bytes":{"type":"integer","description":"Size of the PDF in bytes"},"generated_at":{"type":"string","format":"date-time","description":"ISO 8601 timestamp of generation"}},"example":{"pdf_base64":"JVBERi0xLjQKJeLjz9MKMyAwIG9iago8PC9...","page_count":2,"file_size_bytes":14867,"generated_at":"2026-04-07T12:00:00.000Z"}},"trial":{"type":"object"},"paid_endpoint":{"type":"string"},"price_usdc":{"type":"number"}}}}}},"429":{"description":"Trial limit reached for today","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/proxy/ip-lookup":{"post":{"operationId":"ip_lookup","summary":"IP Geolocation ($0.002 USDC per call)","description":"Resolve any IPv4 or IPv6 address to location and network data. Returns country, country_code, city, region, postal, lat/lon, timezone, ISP, org, and ASN. Use for fraud detection, geolocation enrichment, or access log analysis.\n\nPrice: $0.002 USDC per successful call, paid via x402 (USDC on Base mainnet). Without a payment header the response is HTTP 402 with the requirements. Free trial: POST https://agentsvc.io/api/v1/try/ip-lookup","tags":["utility"],"x-price-usdc":0.002,"x-x402":{"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x622efA6Ceb83a5b6EdBC931332f4db68B7f74F27","scheme":"exact","amount":"2000"},"parameters":[{"name":"PAYMENT-SIGNATURE","in":"header","required":false,"schema":{"type":"string"},"description":"x402 v2 payment payload (base64 JSON). Sent automatically by @x402/fetch or x402 python."},{"name":"X-PAYMENT","in":"header","required":false,"schema":{"type":"string"},"description":"x402 v1 payment payload (base64 JSON)."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["ip"],"properties":{"ip":{"type":"string","description":"IPv4 or IPv6 address to look up (e.g. '8.8.8.8' or '2001:4860:4860::8888')"}}},"example":{"ip":"8.8.8.8"}}}},"responses":{"200":{"description":"Success. Payment settled on-chain; receipt in PAYMENT-RESPONSE header.","headers":{"PAYMENT-RESPONSE":{"schema":{"type":"string"},"description":"base64 JSON {success, transaction, network, payer}"},"X-Latency-Ms":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["success","data"],"properties":{"success":{"type":"boolean","const":true},"data":{"type":"object","required":["ip","country","country_code","city","lat","lon","timezone","isp"],"properties":{"ip":{"type":"string","description":"The queried IP address"},"country":{"type":"string","description":"Full country name"},"country_code":{"type":"string","description":"ISO 3166-1 alpha-2 country code"},"region":{"type":"string","description":"Region/state name"},"city":{"type":"string","description":"City name"},"postal":{"type":"string","description":"Postal/ZIP code"},"lat":{"type":"number","description":"Latitude"},"lon":{"type":"number","description":"Longitude"},"timezone":{"type":"string","description":"IANA timezone (e.g. America/New_York)"},"isp":{"type":"string","description":"Internet Service Provider name"},"org":{"type":"string","description":"Organization name"},"asn":{"type":"string","description":"Autonomous System Number (e.g. AS15169)"}},"example":{"ip":"8.8.8.8","country":"United States","country_code":"US","region":"Virginia","city":"Ashburn","postal":"20149","lat":39.0438,"lon":-77.4874,"timezone":"America/New_York","isp":"Google LLC","org":"Google Public DNS","asn":"AS15169"}},"payment":{"type":"object","properties":{"settled":{"type":"boolean"},"amount_usdc":{"type":"number"},"transaction":{"type":"string"},"network":{"type":"string"},"payer":{"type":"string"},"explorer":{"type":"string"}}}}},"example":{"success":true,"data":{"ip":"8.8.8.8","country":"United States","country_code":"US","region":"Virginia","city":"Ashburn","postal":"20149","lat":39.0438,"lon":-77.4874,"timezone":"America/New_York","isp":"Google LLC","org":"Google Public DNS","asn":"AS15169"},"payment":{"settled":true,"amount_usdc":0.002,"transaction":"0x…","network":"eip155:8453","payer":"0x…"}}}}},"400":{"description":"Invalid input. Not charged. Body includes example_input and input_schema.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment required or payment rejected. Body: x402 v1 PaymentRequired plus hint. Header PAYMENT-REQUIRED: x402 v2 PaymentRequired (base64 JSON).","headers":{"PAYMENT-REQUIRED":{"schema":{"type":"string"},"description":"base64 JSON x402 v2 PaymentRequired"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentRequired"}}}},"500":{"description":"Service error. Not charged.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Facilitator unavailable. Not charged. Retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/try/ip-lookup":{"post":{"operationId":"try_ip_lookup","summary":"Free trial: IP Geolocation","description":"Same output as the paid endpoint, limited per IP and day. Send an empty body to use the example input.","tags":["trial"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","required":["ip"],"properties":{"ip":{"type":"string","description":"IPv4 or IPv6 address to look up (e.g. '8.8.8.8' or '2001:4860:4860::8888')"}}},"example":{"ip":"8.8.8.8"}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"type":"object","required":["ip","country","country_code","city","lat","lon","timezone","isp"],"properties":{"ip":{"type":"string","description":"The queried IP address"},"country":{"type":"string","description":"Full country name"},"country_code":{"type":"string","description":"ISO 3166-1 alpha-2 country code"},"region":{"type":"string","description":"Region/state name"},"city":{"type":"string","description":"City name"},"postal":{"type":"string","description":"Postal/ZIP code"},"lat":{"type":"number","description":"Latitude"},"lon":{"type":"number","description":"Longitude"},"timezone":{"type":"string","description":"IANA timezone (e.g. America/New_York)"},"isp":{"type":"string","description":"Internet Service Provider name"},"org":{"type":"string","description":"Organization name"},"asn":{"type":"string","description":"Autonomous System Number (e.g. AS15169)"}},"example":{"ip":"8.8.8.8","country":"United States","country_code":"US","region":"Virginia","city":"Ashburn","postal":"20149","lat":39.0438,"lon":-77.4874,"timezone":"America/New_York","isp":"Google LLC","org":"Google Public DNS","asn":"AS15169"}},"trial":{"type":"object"},"paid_endpoint":{"type":"string"},"price_usdc":{"type":"number"}}}}}},"429":{"description":"Trial limit reached for today","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/proxy/webpage-reader":{"post":{"operationId":"webpage_reader","summary":"Webpage Reader ($0.006 USDC per call)","description":"Fetch and extract clean readable text from any URL. Full JS rendering via Playwright — works on SPAs and dynamic sites. Returns title, text (cleaned content, default max 8000 chars), description, word_count, and optional links array. Ideal for web research, content summarization, or feeding page content to an LLM.\n\nPrice: $0.006 USDC per successful call, paid via x402 (USDC on Base mainnet). Without a payment header the response is HTTP 402 with the requirements. Free trial: POST https://agentsvc.io/api/v1/try/webpage-reader","tags":["web"],"x-price-usdc":0.006,"x-x402":{"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x622efA6Ceb83a5b6EdBC931332f4db68B7f74F27","scheme":"exact","amount":"6000"},"parameters":[{"name":"PAYMENT-SIGNATURE","in":"header","required":false,"schema":{"type":"string"},"description":"x402 v2 payment payload (base64 JSON). Sent automatically by @x402/fetch or x402 python."},{"name":"X-PAYMENT","in":"header","required":false,"schema":{"type":"string"},"description":"x402 v1 payment payload (base64 JSON)."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["url"],"properties":{"url":{"type":"string","format":"uri","description":"The URL to read and extract content from"},"include_links":{"type":"boolean","default":false,"description":"If true, include up to 50 links found on the page"},"max_chars":{"type":"integer","default":8000,"description":"Maximum characters of text to return (truncated with …)"}}},"example":{"url":"https://example.com","max_chars":4000}}}},"responses":{"200":{"description":"Success. Payment settled on-chain; receipt in PAYMENT-RESPONSE header.","headers":{"PAYMENT-RESPONSE":{"schema":{"type":"string"},"description":"base64 JSON {success, transaction, network, payer}"},"X-Latency-Ms":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["success","data"],"properties":{"success":{"type":"boolean","const":true},"data":{"type":"object","required":["url","title","text","word_count","fetched_at"],"properties":{"url":{"type":"string","description":"Final URL after any redirects"},"title":{"type":"string","description":"Page title (from <title> tag)"},"description":{"type":"string","description":"Meta description or Open Graph description"},"text":{"type":"string","description":"Clean readable text extracted from the page body (scripts, styles, nav, footer removed)"},"word_count":{"type":"integer","description":"Approximate number of words in the extracted text"},"links":{"type":"array","description":"Links found on the page (only when include_links=true)","items":{"type":"object","properties":{"href":{"type":"string","description":"Absolute URL of the link"},"text":{"type":"string","description":"Visible link text"}}}},"fetched_at":{"type":"string","format":"date-time","description":"ISO 8601 timestamp of when the page was fetched"},"http_status":{"type":"integer","description":"HTTP status code of the page response"}},"example":{"url":"https://example.com","title":"Example Domain","description":"This domain is for use in illustrative examples in documents.","text":"Example Domain\n\nThis domain is for use in illustrative examples in documents. You may use this domain in literature without prior coordination or asking for permission.\n\nMore information...","word_count":34,"fetched_at":"2026-04-07T12:00:00.000Z","http_status":200}},"payment":{"type":"object","properties":{"settled":{"type":"boolean"},"amount_usdc":{"type":"number"},"transaction":{"type":"string"},"network":{"type":"string"},"payer":{"type":"string"},"explorer":{"type":"string"}}}}},"example":{"success":true,"data":{"url":"https://example.com","title":"Example Domain","description":"This domain is for use in illustrative examples in documents.","text":"Example Domain\n\nThis domain is for use in illustrative examples in documents. You may use this domain in literature without prior coordination or asking for permission.\n\nMore information...","word_count":34,"fetched_at":"2026-04-07T12:00:00.000Z","http_status":200},"payment":{"settled":true,"amount_usdc":0.006,"transaction":"0x…","network":"eip155:8453","payer":"0x…"}}}}},"400":{"description":"Invalid input. Not charged. Body includes example_input and input_schema.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment required or payment rejected. Body: x402 v1 PaymentRequired plus hint. Header PAYMENT-REQUIRED: x402 v2 PaymentRequired (base64 JSON).","headers":{"PAYMENT-REQUIRED":{"schema":{"type":"string"},"description":"base64 JSON x402 v2 PaymentRequired"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentRequired"}}}},"500":{"description":"Service error. Not charged.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Facilitator unavailable. Not charged. Retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/try/webpage-reader":{"post":{"operationId":"try_webpage_reader","summary":"Free trial: Webpage Reader","description":"Same output as the paid endpoint, limited per IP and day. Send an empty body to use the example input.","tags":["trial"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","required":["url"],"properties":{"url":{"type":"string","format":"uri","description":"The URL to read and extract content from"},"include_links":{"type":"boolean","default":false,"description":"If true, include up to 50 links found on the page"},"max_chars":{"type":"integer","default":8000,"description":"Maximum characters of text to return (truncated with …)"}}},"example":{"url":"https://example.com","max_chars":4000}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"type":"object","required":["url","title","text","word_count","fetched_at"],"properties":{"url":{"type":"string","description":"Final URL after any redirects"},"title":{"type":"string","description":"Page title (from <title> tag)"},"description":{"type":"string","description":"Meta description or Open Graph description"},"text":{"type":"string","description":"Clean readable text extracted from the page body (scripts, styles, nav, footer removed)"},"word_count":{"type":"integer","description":"Approximate number of words in the extracted text"},"links":{"type":"array","description":"Links found on the page (only when include_links=true)","items":{"type":"object","properties":{"href":{"type":"string","description":"Absolute URL of the link"},"text":{"type":"string","description":"Visible link text"}}}},"fetched_at":{"type":"string","format":"date-time","description":"ISO 8601 timestamp of when the page was fetched"},"http_status":{"type":"integer","description":"HTTP status code of the page response"}},"example":{"url":"https://example.com","title":"Example Domain","description":"This domain is for use in illustrative examples in documents.","text":"Example Domain\n\nThis domain is for use in illustrative examples in documents. You may use this domain in literature without prior coordination or asking for permission.\n\nMore information...","word_count":34,"fetched_at":"2026-04-07T12:00:00.000Z","http_status":200}},"trial":{"type":"object"},"paid_endpoint":{"type":"string"},"price_usdc":{"type":"number"}}}}}},"429":{"description":"Trial limit reached for today","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/proxy/dns-lookup":{"post":{"operationId":"dns_lookup","summary":"DNS Lookup ($0.002 USDC per call)","description":"Resolve DNS records for any domain. Supports A, AAAA, MX, TXT, CNAME, NS. Returns records object with array per type. Default: A records only. Use to verify mail server setup (MX), check domain ownership (TXT), or debug DNS propagation.\n\nPrice: $0.002 USDC per successful call, paid via x402 (USDC on Base mainnet). Without a payment header the response is HTTP 402 with the requirements. Free trial: POST https://agentsvc.io/api/v1/try/dns-lookup","tags":["utility"],"x-price-usdc":0.002,"x-x402":{"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x622efA6Ceb83a5b6EdBC931332f4db68B7f74F27","scheme":"exact","amount":"2000"},"parameters":[{"name":"PAYMENT-SIGNATURE","in":"header","required":false,"schema":{"type":"string"},"description":"x402 v2 payment payload (base64 JSON). Sent automatically by @x402/fetch or x402 python."},{"name":"X-PAYMENT","in":"header","required":false,"schema":{"type":"string"},"description":"x402 v1 payment payload (base64 JSON)."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["domain"],"properties":{"domain":{"type":"string","description":"Domain name to look up (e.g. 'example.com', 'mail.google.com')"},"types":{"type":"array","items":{"type":"string","enum":["A","AAAA","MX","TXT","CNAME","NS"]},"default":["A"],"description":"DNS record types to resolve. Default: [\"A\"]. Supported: A, AAAA, MX, TXT, CNAME, NS"}}},"example":{"domain":"github.com","types":["A","MX"]}}}},"responses":{"200":{"description":"Success. Payment settled on-chain; receipt in PAYMENT-RESPONSE header.","headers":{"PAYMENT-RESPONSE":{"schema":{"type":"string"},"description":"base64 JSON {success, transaction, network, payer}"},"X-Latency-Ms":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["success","data"],"properties":{"success":{"type":"boolean","const":true},"data":{"type":"object","required":["domain","records","resolved_at"],"properties":{"domain":{"type":"string","description":"The queried domain name"},"records":{"type":"object","description":"Map of DNS record type → array of records","properties":{"A":{"type":"array","items":{"type":"string"},"description":"IPv4 addresses"},"AAAA":{"type":"array","items":{"type":"string"},"description":"IPv6 addresses"},"MX":{"type":"array","items":{"type":"object","properties":{"priority":{"type":"integer"},"exchange":{"type":"string"}}},"description":"Mail exchange records"},"TXT":{"type":"array","items":{"type":"string"},"description":"TXT records (joined entries)"},"CNAME":{"type":"array","items":{"type":"string"},"description":"Canonical name records"},"NS":{"type":"array","items":{"type":"string"},"description":"Nameserver records"}}},"resolved_at":{"type":"string","format":"date-time","description":"ISO 8601 timestamp of the lookup"}},"example":{"domain":"example.com","records":{"A":["93.184.216.34"],"MX":[{"priority":10,"exchange":"mail.example.com"}]},"resolved_at":"2026-04-07T12:00:00.000Z"}},"payment":{"type":"object","properties":{"settled":{"type":"boolean"},"amount_usdc":{"type":"number"},"transaction":{"type":"string"},"network":{"type":"string"},"payer":{"type":"string"},"explorer":{"type":"string"}}}}},"example":{"success":true,"data":{"domain":"example.com","records":{"A":["93.184.216.34"],"MX":[{"priority":10,"exchange":"mail.example.com"}]},"resolved_at":"2026-04-07T12:00:00.000Z"},"payment":{"settled":true,"amount_usdc":0.002,"transaction":"0x…","network":"eip155:8453","payer":"0x…"}}}}},"400":{"description":"Invalid input. Not charged. Body includes example_input and input_schema.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment required or payment rejected. Body: x402 v1 PaymentRequired plus hint. Header PAYMENT-REQUIRED: x402 v2 PaymentRequired (base64 JSON).","headers":{"PAYMENT-REQUIRED":{"schema":{"type":"string"},"description":"base64 JSON x402 v2 PaymentRequired"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentRequired"}}}},"500":{"description":"Service error. Not charged.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Facilitator unavailable. Not charged. Retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/try/dns-lookup":{"post":{"operationId":"try_dns_lookup","summary":"Free trial: DNS Lookup","description":"Same output as the paid endpoint, limited per IP and day. Send an empty body to use the example input.","tags":["trial"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","required":["domain"],"properties":{"domain":{"type":"string","description":"Domain name to look up (e.g. 'example.com', 'mail.google.com')"},"types":{"type":"array","items":{"type":"string","enum":["A","AAAA","MX","TXT","CNAME","NS"]},"default":["A"],"description":"DNS record types to resolve. Default: [\"A\"]. Supported: A, AAAA, MX, TXT, CNAME, NS"}}},"example":{"domain":"github.com","types":["A","MX"]}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"type":"object","required":["domain","records","resolved_at"],"properties":{"domain":{"type":"string","description":"The queried domain name"},"records":{"type":"object","description":"Map of DNS record type → array of records","properties":{"A":{"type":"array","items":{"type":"string"},"description":"IPv4 addresses"},"AAAA":{"type":"array","items":{"type":"string"},"description":"IPv6 addresses"},"MX":{"type":"array","items":{"type":"object","properties":{"priority":{"type":"integer"},"exchange":{"type":"string"}}},"description":"Mail exchange records"},"TXT":{"type":"array","items":{"type":"string"},"description":"TXT records (joined entries)"},"CNAME":{"type":"array","items":{"type":"string"},"description":"Canonical name records"},"NS":{"type":"array","items":{"type":"string"},"description":"Nameserver records"}}},"resolved_at":{"type":"string","format":"date-time","description":"ISO 8601 timestamp of the lookup"}},"example":{"domain":"example.com","records":{"A":["93.184.216.34"],"MX":[{"priority":10,"exchange":"mail.example.com"}]},"resolved_at":"2026-04-07T12:00:00.000Z"}},"trial":{"type":"object"},"paid_endpoint":{"type":"string"},"price_usdc":{"type":"number"}}}}}},"429":{"description":"Trial limit reached for today","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/proxy/qr-code":{"post":{"operationId":"qr_code","summary":"QR Code Generator ($0.002 USDC per call)","description":"Generate a QR code for any text or URL. Returns image_base64 (base64 PNG — decode to get raw bytes). Params: text (required), size in px (64-1024, default 256), error_correction (L/M/Q/H, default M). H = highest redundancy, survives up to 30% damage.\n\nPrice: $0.002 USDC per successful call, paid via x402 (USDC on Base mainnet). Without a payment header the response is HTTP 402 with the requirements. Free trial: POST https://agentsvc.io/api/v1/try/qr-code","tags":["utility"],"x-price-usdc":0.002,"x-x402":{"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x622efA6Ceb83a5b6EdBC931332f4db68B7f74F27","scheme":"exact","amount":"2000"},"parameters":[{"name":"PAYMENT-SIGNATURE","in":"header","required":false,"schema":{"type":"string"},"description":"x402 v2 payment payload (base64 JSON). Sent automatically by @x402/fetch or x402 python."},{"name":"X-PAYMENT","in":"header","required":false,"schema":{"type":"string"},"description":"x402 v1 payment payload (base64 JSON)."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["text"],"properties":{"text":{"type":"string","description":"The text or URL to encode in the QR code"},"size":{"type":"integer","default":256,"description":"Output image size in pixels (width and height). Min: 64, Max: 1024."},"error_correction":{"type":"string","enum":["L","M","Q","H"],"default":"M","description":"Error correction level: L=7%, M=15%, Q=25%, H=30% data recovery. Higher = bigger QR code."}}},"example":{"text":"https://agentsvc.io","size":256}}}},"responses":{"200":{"description":"Success. Payment settled on-chain; receipt in PAYMENT-RESPONSE header.","headers":{"PAYMENT-RESPONSE":{"schema":{"type":"string"},"description":"base64 JSON {success, transaction, network, payer}"},"X-Latency-Ms":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["success","data"],"properties":{"success":{"type":"boolean","const":true},"data":{"type":"object","required":["image_base64","width","height","text"],"properties":{"image_base64":{"type":"string","description":"Base64-encoded PNG image of the QR code (decode to get raw bytes)"},"width":{"type":"integer","description":"Image width in pixels"},"height":{"type":"integer","description":"Image height in pixels"},"text":{"type":"string","description":"The text that was encoded"},"generated_at":{"type":"string","format":"date-time","description":"ISO 8601 timestamp of generation"}},"example":{"image_base64":"iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAYAAABccqhmAAAA...","width":256,"height":256,"text":"https://agentsvc.io","generated_at":"2026-04-07T12:00:00.000Z"}},"payment":{"type":"object","properties":{"settled":{"type":"boolean"},"amount_usdc":{"type":"number"},"transaction":{"type":"string"},"network":{"type":"string"},"payer":{"type":"string"},"explorer":{"type":"string"}}}}},"example":{"success":true,"data":{"image_base64":"iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAYAAABccqhmAAAA...","width":256,"height":256,"text":"https://agentsvc.io","generated_at":"2026-04-07T12:00:00.000Z"},"payment":{"settled":true,"amount_usdc":0.002,"transaction":"0x…","network":"eip155:8453","payer":"0x…"}}}}},"400":{"description":"Invalid input. Not charged. Body includes example_input and input_schema.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment required or payment rejected. Body: x402 v1 PaymentRequired plus hint. Header PAYMENT-REQUIRED: x402 v2 PaymentRequired (base64 JSON).","headers":{"PAYMENT-REQUIRED":{"schema":{"type":"string"},"description":"base64 JSON x402 v2 PaymentRequired"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentRequired"}}}},"500":{"description":"Service error. Not charged.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Facilitator unavailable. Not charged. Retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/try/qr-code":{"post":{"operationId":"try_qr_code","summary":"Free trial: QR Code Generator","description":"Same output as the paid endpoint, limited per IP and day. Send an empty body to use the example input.","tags":["trial"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","required":["text"],"properties":{"text":{"type":"string","description":"The text or URL to encode in the QR code"},"size":{"type":"integer","default":256,"description":"Output image size in pixels (width and height). Min: 64, Max: 1024."},"error_correction":{"type":"string","enum":["L","M","Q","H"],"default":"M","description":"Error correction level: L=7%, M=15%, Q=25%, H=30% data recovery. Higher = bigger QR code."}}},"example":{"text":"https://agentsvc.io","size":256}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"type":"object","required":["image_base64","width","height","text"],"properties":{"image_base64":{"type":"string","description":"Base64-encoded PNG image of the QR code (decode to get raw bytes)"},"width":{"type":"integer","description":"Image width in pixels"},"height":{"type":"integer","description":"Image height in pixels"},"text":{"type":"string","description":"The text that was encoded"},"generated_at":{"type":"string","format":"date-time","description":"ISO 8601 timestamp of generation"}},"example":{"image_base64":"iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAYAAABccqhmAAAA...","width":256,"height":256,"text":"https://agentsvc.io","generated_at":"2026-04-07T12:00:00.000Z"}},"trial":{"type":"object"},"paid_endpoint":{"type":"string"},"price_usdc":{"type":"number"}}}}}},"429":{"description":"Trial limit reached for today","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/proxy/web-search":{"post":{"operationId":"web_search","summary":"Web Search ($0.003 USDC per call)","description":"Search for factual information via DuckDuckGo + Wikipedia. Returns heading, abstract (plain-language summary), abstract_url, and results (list of relevant links). Best for: people, places, concepts, history, science. NOT for breaking news — use news-search instead.\n\nPrice: $0.003 USDC per successful call, paid via x402 (USDC on Base mainnet). Without a payment header the response is HTTP 402 with the requirements. Free trial: POST https://agentsvc.io/api/v1/try/web-search","tags":["web"],"x-price-usdc":0.003,"x-x402":{"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x622efA6Ceb83a5b6EdBC931332f4db68B7f74F27","scheme":"exact","amount":"3000"},"parameters":[{"name":"PAYMENT-SIGNATURE","in":"header","required":false,"schema":{"type":"string"},"description":"x402 v2 payment payload (base64 JSON). Sent automatically by @x402/fetch or x402 python."},{"name":"X-PAYMENT","in":"header","required":false,"schema":{"type":"string"},"description":"x402 v1 payment payload (base64 JSON)."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["query"],"properties":{"query":{"type":"string","description":"Search query string (e.g. 'current Bitcoin price', 'capital of France', 'Next.js 15 release date')"}}},"example":{"query":"x402 payment protocol"}}}},"responses":{"200":{"description":"Success. Payment settled on-chain; receipt in PAYMENT-RESPONSE header.","headers":{"PAYMENT-RESPONSE":{"schema":{"type":"string"},"description":"base64 JSON {success, transaction, network, payer}"},"X-Latency-Ms":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["success","data"],"properties":{"success":{"type":"boolean","const":true},"data":{"type":"object","required":["query","heading","abstract","results"],"properties":{"query":{"type":"string","description":"The original search query"},"heading":{"type":"string","description":"Topic heading from the search engine"},"abstract":{"type":"string","description":"Concise abstract/summary about the topic (from Wikipedia or similar source)"},"abstract_url":{"type":"string","description":"Source URL for the abstract"},"abstract_source":{"type":"string","description":"Name of the abstract source (e.g. 'Wikipedia')"},"results":{"type":"array","description":"Related search results with URLs","items":{"type":"object","properties":{"text":{"type":"string","description":"Result description or snippet"},"url":{"type":"string","description":"Result URL"}}}},"answer":{"type":"string","description":"Direct answer for calculation or fact queries (e.g. '42' for math, '23°C' for temperatures)"}},"example":{"query":"capital of France","heading":"Paris","abstract":"Paris is the capital and most populous city of France. With an official estimated population of 2,102,650 residents as of 1 January 2023 in an area of more than 105 km²...","abstract_url":"https://en.wikipedia.org/wiki/Paris","abstract_source":"Wikipedia","results":[{"text":"Paris — Wikipedia","url":"https://en.wikipedia.org/wiki/Paris"},{"text":"Visit Paris — Official Tourism Site","url":"https://www.parisinfo.com/"}],"answer":""}},"payment":{"type":"object","properties":{"settled":{"type":"boolean"},"amount_usdc":{"type":"number"},"transaction":{"type":"string"},"network":{"type":"string"},"payer":{"type":"string"},"explorer":{"type":"string"}}}}},"example":{"success":true,"data":{"query":"capital of France","heading":"Paris","abstract":"Paris is the capital and most populous city of France. With an official estimated population of 2,102,650 residents as of 1 January 2023 in an area of more than 105 km²...","abstract_url":"https://en.wikipedia.org/wiki/Paris","abstract_source":"Wikipedia","results":[{"text":"Paris — Wikipedia","url":"https://en.wikipedia.org/wiki/Paris"},{"text":"Visit Paris — Official Tourism Site","url":"https://www.parisinfo.com/"}],"answer":""},"payment":{"settled":true,"amount_usdc":0.003,"transaction":"0x…","network":"eip155:8453","payer":"0x…"}}}}},"400":{"description":"Invalid input. Not charged. Body includes example_input and input_schema.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment required or payment rejected. Body: x402 v1 PaymentRequired plus hint. Header PAYMENT-REQUIRED: x402 v2 PaymentRequired (base64 JSON).","headers":{"PAYMENT-REQUIRED":{"schema":{"type":"string"},"description":"base64 JSON x402 v2 PaymentRequired"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentRequired"}}}},"500":{"description":"Service error. Not charged.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Facilitator unavailable. Not charged. Retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/try/web-search":{"post":{"operationId":"try_web_search","summary":"Free trial: Web Search","description":"Same output as the paid endpoint, limited per IP and day. Send an empty body to use the example input.","tags":["trial"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","required":["query"],"properties":{"query":{"type":"string","description":"Search query string (e.g. 'current Bitcoin price', 'capital of France', 'Next.js 15 release date')"}}},"example":{"query":"x402 payment protocol"}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"type":"object","required":["query","heading","abstract","results"],"properties":{"query":{"type":"string","description":"The original search query"},"heading":{"type":"string","description":"Topic heading from the search engine"},"abstract":{"type":"string","description":"Concise abstract/summary about the topic (from Wikipedia or similar source)"},"abstract_url":{"type":"string","description":"Source URL for the abstract"},"abstract_source":{"type":"string","description":"Name of the abstract source (e.g. 'Wikipedia')"},"results":{"type":"array","description":"Related search results with URLs","items":{"type":"object","properties":{"text":{"type":"string","description":"Result description or snippet"},"url":{"type":"string","description":"Result URL"}}}},"answer":{"type":"string","description":"Direct answer for calculation or fact queries (e.g. '42' for math, '23°C' for temperatures)"}},"example":{"query":"capital of France","heading":"Paris","abstract":"Paris is the capital and most populous city of France. With an official estimated population of 2,102,650 residents as of 1 January 2023 in an area of more than 105 km²...","abstract_url":"https://en.wikipedia.org/wiki/Paris","abstract_source":"Wikipedia","results":[{"text":"Paris — Wikipedia","url":"https://en.wikipedia.org/wiki/Paris"},{"text":"Visit Paris — Official Tourism Site","url":"https://www.parisinfo.com/"}],"answer":""}},"trial":{"type":"object"},"paid_endpoint":{"type":"string"},"price_usdc":{"type":"number"}}}}}},"429":{"description":"Trial limit reached for today","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/proxy/translate":{"post":{"operationId":"translate","summary":"Text Translation ($0.002 USDC per call)","description":"Translate text between 100+ languages. Max 500 characters per call. Returns translated_text and confidence (0-1). Set target_lang to IETF code: 'de' (German), 'fr' (French), 'es' (Spanish), 'ja' (Japanese), 'zh-CN' (Chinese Simplified), 'ar' (Arabic), 'pt' (Portuguese), 'it' (Italian), 'nl' (Dutch). source_lang defaults to auto-detect.\n\nPrice: $0.002 USDC per successful call, paid via x402 (USDC on Base mainnet). Without a payment header the response is HTTP 402 with the requirements. Free trial: POST https://agentsvc.io/api/v1/try/translate","tags":["text"],"x-price-usdc":0.002,"x-x402":{"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x622efA6Ceb83a5b6EdBC931332f4db68B7f74F27","scheme":"exact","amount":"2000"},"parameters":[{"name":"PAYMENT-SIGNATURE","in":"header","required":false,"schema":{"type":"string"},"description":"x402 v2 payment payload (base64 JSON). Sent automatically by @x402/fetch or x402 python."},{"name":"X-PAYMENT","in":"header","required":false,"schema":{"type":"string"},"description":"x402 v1 payment payload (base64 JSON)."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["text","target_lang"],"properties":{"text":{"type":"string","description":"Text to translate (max 500 characters per call)"},"target_lang":{"type":"string","description":"Target language code (e.g. 'de' for German, 'fr' for French, 'es' for Spanish, 'ja' for Japanese, 'zh' for Chinese). Use ISO 639-1 codes."},"source_lang":{"type":"string","default":"auto","description":"Source language code. Default: 'auto' (auto-detect). Use ISO 639-1 codes."}}},"example":{"text":"Hello, how are you?","target_lang":"de"}}}},"responses":{"200":{"description":"Success. Payment settled on-chain; receipt in PAYMENT-RESPONSE header.","headers":{"PAYMENT-RESPONSE":{"schema":{"type":"string"},"description":"base64 JSON {success, transaction, network, payer}"},"X-Latency-Ms":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["success","data"],"properties":{"success":{"type":"boolean","const":true},"data":{"type":"object","required":["original_text","translated_text","source_lang","target_lang"],"properties":{"original_text":{"type":"string","description":"The original input text"},"translated_text":{"type":"string","description":"The translated text in the target language"},"source_lang":{"type":"string","description":"Detected or specified source language code"},"target_lang":{"type":"string","description":"Target language code as specified"},"confidence":{"type":"number","description":"Translation confidence score (0.0-1.0)"},"service":{"type":"string","description":"Translation service used. Always: 'MyMemory'"}},"example":{"original_text":"Hello, how are you?","translated_text":"Hallo, wie geht es Ihnen?","source_lang":"en","target_lang":"de","confidence":1,"service":"MyMemory"}},"payment":{"type":"object","properties":{"settled":{"type":"boolean"},"amount_usdc":{"type":"number"},"transaction":{"type":"string"},"network":{"type":"string"},"payer":{"type":"string"},"explorer":{"type":"string"}}}}},"example":{"success":true,"data":{"original_text":"Hello, how are you?","translated_text":"Hallo, wie geht es Ihnen?","source_lang":"en","target_lang":"de","confidence":1,"service":"MyMemory"},"payment":{"settled":true,"amount_usdc":0.002,"transaction":"0x…","network":"eip155:8453","payer":"0x…"}}}}},"400":{"description":"Invalid input. Not charged. Body includes example_input and input_schema.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment required or payment rejected. Body: x402 v1 PaymentRequired plus hint. Header PAYMENT-REQUIRED: x402 v2 PaymentRequired (base64 JSON).","headers":{"PAYMENT-REQUIRED":{"schema":{"type":"string"},"description":"base64 JSON x402 v2 PaymentRequired"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentRequired"}}}},"500":{"description":"Service error. Not charged.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Facilitator unavailable. Not charged. Retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/try/translate":{"post":{"operationId":"try_translate","summary":"Free trial: Text Translation","description":"Same output as the paid endpoint, limited per IP and day. Send an empty body to use the example input.","tags":["trial"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","required":["text","target_lang"],"properties":{"text":{"type":"string","description":"Text to translate (max 500 characters per call)"},"target_lang":{"type":"string","description":"Target language code (e.g. 'de' for German, 'fr' for French, 'es' for Spanish, 'ja' for Japanese, 'zh' for Chinese). Use ISO 639-1 codes."},"source_lang":{"type":"string","default":"auto","description":"Source language code. Default: 'auto' (auto-detect). Use ISO 639-1 codes."}}},"example":{"text":"Hello, how are you?","target_lang":"de"}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"type":"object","required":["original_text","translated_text","source_lang","target_lang"],"properties":{"original_text":{"type":"string","description":"The original input text"},"translated_text":{"type":"string","description":"The translated text in the target language"},"source_lang":{"type":"string","description":"Detected or specified source language code"},"target_lang":{"type":"string","description":"Target language code as specified"},"confidence":{"type":"number","description":"Translation confidence score (0.0-1.0)"},"service":{"type":"string","description":"Translation service used. Always: 'MyMemory'"}},"example":{"original_text":"Hello, how are you?","translated_text":"Hallo, wie geht es Ihnen?","source_lang":"en","target_lang":"de","confidence":1,"service":"MyMemory"}},"trial":{"type":"object"},"paid_endpoint":{"type":"string"},"price_usdc":{"type":"number"}}}}}},"429":{"description":"Trial limit reached for today","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/proxy/email-validate":{"post":{"operationId":"email_validate","summary":"Email Validation ($0.002 USDC per call)","description":"Validate an email address: RFC 5322 format check, domain MX record lookup, disposable provider detection, and role address detection (e.g. info@, admin@). Returns is_valid boolean and granular checks object. Use before storing or sending to email addresses to prevent bounces.\n\nPrice: $0.002 USDC per successful call, paid via x402 (USDC on Base mainnet). Without a payment header the response is HTTP 402 with the requirements. Free trial: POST https://agentsvc.io/api/v1/try/email-validate","tags":["utility"],"x-price-usdc":0.002,"x-x402":{"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x622efA6Ceb83a5b6EdBC931332f4db68B7f74F27","scheme":"exact","amount":"2000"},"parameters":[{"name":"PAYMENT-SIGNATURE","in":"header","required":false,"schema":{"type":"string"},"description":"x402 v2 payment payload (base64 JSON). Sent automatically by @x402/fetch or x402 python."},{"name":"X-PAYMENT","in":"header","required":false,"schema":{"type":"string"},"description":"x402 v1 payment payload (base64 JSON)."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["email"],"properties":{"email":{"type":"string","format":"email","description":"The email address to validate (e.g. 'user@example.com')"}}},"example":{"email":"support@github.com"}}}},"responses":{"200":{"description":"Success. Payment settled on-chain; receipt in PAYMENT-RESPONSE header.","headers":{"PAYMENT-RESPONSE":{"schema":{"type":"string"},"description":"base64 JSON {success, transaction, network, payer}"},"X-Latency-Ms":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["success","data"],"properties":{"success":{"type":"boolean","const":true},"data":{"type":"object","required":["email","is_valid","checks"],"properties":{"email":{"type":"string","description":"The validated email address (normalized to lowercase)"},"is_valid":{"type":"boolean","description":"true if the email passes all checks (format + deliverable domain)"},"local_part":{"type":"string","description":"The part before the @ symbol"},"domain":{"type":"string","description":"The domain part of the email address"},"checks":{"type":"object","description":"Individual check results","properties":{"format_valid":{"type":"boolean","description":"Email format passes RFC 5322 validation"},"domain_has_mx":{"type":"boolean","description":"Domain has valid MX records (can receive email)"},"is_disposable":{"type":"boolean","description":"Domain belongs to a known disposable email service (e.g. mailinator.com, tempmail.com)"},"is_role_address":{"type":"boolean","description":"Local part is a role address (e.g. admin@, info@, noreply@, support@)"}}},"mx_records":{"type":"array","items":{"type":"string"},"description":"MX record hostnames found for the domain"}},"example":{"email":"user@example.com","is_valid":true,"local_part":"user","domain":"example.com","checks":{"format_valid":true,"domain_has_mx":true,"is_disposable":false,"is_role_address":false},"mx_records":["mail.example.com"]}},"payment":{"type":"object","properties":{"settled":{"type":"boolean"},"amount_usdc":{"type":"number"},"transaction":{"type":"string"},"network":{"type":"string"},"payer":{"type":"string"},"explorer":{"type":"string"}}}}},"example":{"success":true,"data":{"email":"user@example.com","is_valid":true,"local_part":"user","domain":"example.com","checks":{"format_valid":true,"domain_has_mx":true,"is_disposable":false,"is_role_address":false},"mx_records":["mail.example.com"]},"payment":{"settled":true,"amount_usdc":0.002,"transaction":"0x…","network":"eip155:8453","payer":"0x…"}}}}},"400":{"description":"Invalid input. Not charged. Body includes example_input and input_schema.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment required or payment rejected. Body: x402 v1 PaymentRequired plus hint. Header PAYMENT-REQUIRED: x402 v2 PaymentRequired (base64 JSON).","headers":{"PAYMENT-REQUIRED":{"schema":{"type":"string"},"description":"base64 JSON x402 v2 PaymentRequired"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentRequired"}}}},"500":{"description":"Service error. Not charged.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Facilitator unavailable. Not charged. Retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/try/email-validate":{"post":{"operationId":"try_email_validate","summary":"Free trial: Email Validation","description":"Same output as the paid endpoint, limited per IP and day. Send an empty body to use the example input.","tags":["trial"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","required":["email"],"properties":{"email":{"type":"string","format":"email","description":"The email address to validate (e.g. 'user@example.com')"}}},"example":{"email":"support@github.com"}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"type":"object","required":["email","is_valid","checks"],"properties":{"email":{"type":"string","description":"The validated email address (normalized to lowercase)"},"is_valid":{"type":"boolean","description":"true if the email passes all checks (format + deliverable domain)"},"local_part":{"type":"string","description":"The part before the @ symbol"},"domain":{"type":"string","description":"The domain part of the email address"},"checks":{"type":"object","description":"Individual check results","properties":{"format_valid":{"type":"boolean","description":"Email format passes RFC 5322 validation"},"domain_has_mx":{"type":"boolean","description":"Domain has valid MX records (can receive email)"},"is_disposable":{"type":"boolean","description":"Domain belongs to a known disposable email service (e.g. mailinator.com, tempmail.com)"},"is_role_address":{"type":"boolean","description":"Local part is a role address (e.g. admin@, info@, noreply@, support@)"}}},"mx_records":{"type":"array","items":{"type":"string"},"description":"MX record hostnames found for the domain"}},"example":{"email":"user@example.com","is_valid":true,"local_part":"user","domain":"example.com","checks":{"format_valid":true,"domain_has_mx":true,"is_disposable":false,"is_role_address":false},"mx_records":["mail.example.com"]}},"trial":{"type":"object"},"paid_endpoint":{"type":"string"},"price_usdc":{"type":"number"}}}}}},"429":{"description":"Trial limit reached for today","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/proxy/ssl-check":{"post":{"operationId":"ssl_check","summary":"SSL Certificate Check ($0.002 USDC per call)","description":"Inspect SSL/TLS certificate for any domain. Returns valid boolean, days_remaining, issuer, valid_from, valid_to, subject_alt_names (SANs), fingerprint_sha256, and protocol version. Default port 443. Use for certificate expiry monitoring, security audits, or HTTPS verification.\n\nPrice: $0.002 USDC per successful call, paid via x402 (USDC on Base mainnet). Without a payment header the response is HTTP 402 with the requirements. Free trial: POST https://agentsvc.io/api/v1/try/ssl-check","tags":["utility"],"x-price-usdc":0.002,"x-x402":{"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x622efA6Ceb83a5b6EdBC931332f4db68B7f74F27","scheme":"exact","amount":"2000"},"parameters":[{"name":"PAYMENT-SIGNATURE","in":"header","required":false,"schema":{"type":"string"},"description":"x402 v2 payment payload (base64 JSON). Sent automatically by @x402/fetch or x402 python."},{"name":"X-PAYMENT","in":"header","required":false,"schema":{"type":"string"},"description":"x402 v1 payment payload (base64 JSON)."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["domain"],"properties":{"domain":{"type":"string","description":"Domain to check SSL for (e.g. 'github.com', 'api.example.com'). Do not include https://"},"port":{"type":"integer","default":443,"description":"Port to check (default: 443)"}}},"example":{"domain":"github.com"}}}},"responses":{"200":{"description":"Success. Payment settled on-chain; receipt in PAYMENT-RESPONSE header.","headers":{"PAYMENT-RESPONSE":{"schema":{"type":"string"},"description":"base64 JSON {success, transaction, network, payer}"},"X-Latency-Ms":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["success","data"],"properties":{"success":{"type":"boolean","const":true},"data":{"type":"object","required":["domain","port","valid","days_remaining"],"properties":{"domain":{"type":"string","description":"The checked domain"},"port":{"type":"integer","description":"The port that was checked"},"valid":{"type":"boolean","description":"true if certificate is currently valid and not expired"},"subject":{"type":"string","description":"Certificate subject (CN=...)"},"subject_alt_names":{"type":"array","items":{"type":"string"},"description":"Subject Alternative Names the cert is valid for"},"issuer":{"type":"string","description":"Certificate issuer organization"},"valid_from":{"type":"string","format":"date-time","description":"Certificate valid-from date (ISO 8601)"},"valid_to":{"type":"string","format":"date-time","description":"Certificate expiry date (ISO 8601)"},"days_remaining":{"type":"integer","description":"Number of days until certificate expires (negative = already expired)"},"serial_number":{"type":"string","description":"Certificate serial number (hex)"},"fingerprint_sha256":{"type":"string","description":"SHA-256 fingerprint of the certificate"},"protocol":{"type":"string","description":"TLS protocol version in use (e.g. TLSv1.3)"}},"example":{"domain":"github.com","port":443,"valid":true,"subject":"CN=github.com","subject_alt_names":["github.com","www.github.com"],"issuer":"DigiCert Inc","valid_from":"2024-03-07T00:00:00.000Z","valid_to":"2025-03-07T23:59:59.000Z","days_remaining":156,"serial_number":"0a:bc:12:...","fingerprint_sha256":"AB:CD:EF:...","protocol":"TLSv1.3"}},"payment":{"type":"object","properties":{"settled":{"type":"boolean"},"amount_usdc":{"type":"number"},"transaction":{"type":"string"},"network":{"type":"string"},"payer":{"type":"string"},"explorer":{"type":"string"}}}}},"example":{"success":true,"data":{"domain":"github.com","port":443,"valid":true,"subject":"CN=github.com","subject_alt_names":["github.com","www.github.com"],"issuer":"DigiCert Inc","valid_from":"2024-03-07T00:00:00.000Z","valid_to":"2025-03-07T23:59:59.000Z","days_remaining":156,"serial_number":"0a:bc:12:...","fingerprint_sha256":"AB:CD:EF:...","protocol":"TLSv1.3"},"payment":{"settled":true,"amount_usdc":0.002,"transaction":"0x…","network":"eip155:8453","payer":"0x…"}}}}},"400":{"description":"Invalid input. Not charged. Body includes example_input and input_schema.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment required or payment rejected. Body: x402 v1 PaymentRequired plus hint. Header PAYMENT-REQUIRED: x402 v2 PaymentRequired (base64 JSON).","headers":{"PAYMENT-REQUIRED":{"schema":{"type":"string"},"description":"base64 JSON x402 v2 PaymentRequired"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentRequired"}}}},"500":{"description":"Service error. Not charged.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Facilitator unavailable. Not charged. Retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/try/ssl-check":{"post":{"operationId":"try_ssl_check","summary":"Free trial: SSL Certificate Check","description":"Same output as the paid endpoint, limited per IP and day. Send an empty body to use the example input.","tags":["trial"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","required":["domain"],"properties":{"domain":{"type":"string","description":"Domain to check SSL for (e.g. 'github.com', 'api.example.com'). Do not include https://"},"port":{"type":"integer","default":443,"description":"Port to check (default: 443)"}}},"example":{"domain":"github.com"}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"type":"object","required":["domain","port","valid","days_remaining"],"properties":{"domain":{"type":"string","description":"The checked domain"},"port":{"type":"integer","description":"The port that was checked"},"valid":{"type":"boolean","description":"true if certificate is currently valid and not expired"},"subject":{"type":"string","description":"Certificate subject (CN=...)"},"subject_alt_names":{"type":"array","items":{"type":"string"},"description":"Subject Alternative Names the cert is valid for"},"issuer":{"type":"string","description":"Certificate issuer organization"},"valid_from":{"type":"string","format":"date-time","description":"Certificate valid-from date (ISO 8601)"},"valid_to":{"type":"string","format":"date-time","description":"Certificate expiry date (ISO 8601)"},"days_remaining":{"type":"integer","description":"Number of days until certificate expires (negative = already expired)"},"serial_number":{"type":"string","description":"Certificate serial number (hex)"},"fingerprint_sha256":{"type":"string","description":"SHA-256 fingerprint of the certificate"},"protocol":{"type":"string","description":"TLS protocol version in use (e.g. TLSv1.3)"}},"example":{"domain":"github.com","port":443,"valid":true,"subject":"CN=github.com","subject_alt_names":["github.com","www.github.com"],"issuer":"DigiCert Inc","valid_from":"2024-03-07T00:00:00.000Z","valid_to":"2025-03-07T23:59:59.000Z","days_remaining":156,"serial_number":"0a:bc:12:...","fingerprint_sha256":"AB:CD:EF:...","protocol":"TLSv1.3"}},"trial":{"type":"object"},"paid_endpoint":{"type":"string"},"price_usdc":{"type":"number"}}}}}},"429":{"description":"Trial limit reached for today","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/proxy/whois":{"post":{"operationId":"whois","summary":"WHOIS Lookup ($0.002 USDC per call)","description":"Domain registration lookup via RDAP (modern WHOIS). Returns registrar, registrar_url, created_at, updated_at, expires_at, days_until_expiry, name_servers array, status array, and registrant_country. Clean JSON — no raw WHOIS text to parse. Covers all major TLDs.\n\nPrice: $0.002 USDC per successful call, paid via x402 (USDC on Base mainnet). Without a payment header the response is HTTP 402 with the requirements. Free trial: POST https://agentsvc.io/api/v1/try/whois","tags":["utility"],"x-price-usdc":0.002,"x-x402":{"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x622efA6Ceb83a5b6EdBC931332f4db68B7f74F27","scheme":"exact","amount":"2000"},"parameters":[{"name":"PAYMENT-SIGNATURE","in":"header","required":false,"schema":{"type":"string"},"description":"x402 v2 payment payload (base64 JSON). Sent automatically by @x402/fetch or x402 python."},{"name":"X-PAYMENT","in":"header","required":false,"schema":{"type":"string"},"description":"x402 v1 payment payload (base64 JSON)."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["domain"],"properties":{"domain":{"type":"string","description":"Domain to look up (e.g. 'github.com', 'openai.com'). Include TLD, exclude https://"}}},"example":{"domain":"github.com"}}}},"responses":{"200":{"description":"Success. Payment settled on-chain; receipt in PAYMENT-RESPONSE header.","headers":{"PAYMENT-RESPONSE":{"schema":{"type":"string"},"description":"base64 JSON {success, transaction, network, payer}"},"X-Latency-Ms":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["success","data"],"properties":{"success":{"type":"boolean","const":true},"data":{"type":"object","required":["domain","status","name_servers"],"properties":{"domain":{"type":"string","description":"The queried domain name"},"registrar":{"type":"string","description":"Domain registrar name"},"registrar_url":{"type":"string","description":"Registrar website URL"},"status":{"type":"array","items":{"type":"string"},"description":"Domain status codes (e.g. clientTransferProhibited)"},"created_at":{"type":"string","format":"date-time","description":"Domain registration date (ISO 8601)"},"updated_at":{"type":"string","format":"date-time","description":"Last updated date (ISO 8601)"},"expires_at":{"type":"string","format":"date-time","description":"Domain expiry date (ISO 8601)"},"days_until_expiry":{"type":"integer","description":"Days remaining until domain expires (negative = already expired)"},"name_servers":{"type":"array","items":{"type":"string"},"description":"Nameservers for the domain"},"dnssec":{"type":"string","description":"DNSSEC status (e.g. 'signedDelegation', 'unsigned')"},"registrant_country":{"type":"string","description":"Registrant country code (if publicly available)"}},"example":{"domain":"github.com","registrar":"MarkMonitor Inc.","registrar_url":"http://www.markmonitor.com","status":["clientDeleteProhibited","clientTransferProhibited","clientUpdateProhibited"],"created_at":"2007-10-09T18:20:50.000Z","updated_at":"2024-09-08T09:18:28.000Z","expires_at":"2026-10-09T18:20:50.000Z","days_until_expiry":548,"name_servers":["dns1.p08.nsone.net","dns2.p08.nsone.net","ns-1283.awsdns-32.org","ns-1707.awsdns-21.co.uk"],"dnssec":"unsigned","registrant_country":"US"}},"payment":{"type":"object","properties":{"settled":{"type":"boolean"},"amount_usdc":{"type":"number"},"transaction":{"type":"string"},"network":{"type":"string"},"payer":{"type":"string"},"explorer":{"type":"string"}}}}},"example":{"success":true,"data":{"domain":"github.com","registrar":"MarkMonitor Inc.","registrar_url":"http://www.markmonitor.com","status":["clientDeleteProhibited","clientTransferProhibited","clientUpdateProhibited"],"created_at":"2007-10-09T18:20:50.000Z","updated_at":"2024-09-08T09:18:28.000Z","expires_at":"2026-10-09T18:20:50.000Z","days_until_expiry":548,"name_servers":["dns1.p08.nsone.net","dns2.p08.nsone.net","ns-1283.awsdns-32.org","ns-1707.awsdns-21.co.uk"],"dnssec":"unsigned","registrant_country":"US"},"payment":{"settled":true,"amount_usdc":0.002,"transaction":"0x…","network":"eip155:8453","payer":"0x…"}}}}},"400":{"description":"Invalid input. Not charged. Body includes example_input and input_schema.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment required or payment rejected. Body: x402 v1 PaymentRequired plus hint. Header PAYMENT-REQUIRED: x402 v2 PaymentRequired (base64 JSON).","headers":{"PAYMENT-REQUIRED":{"schema":{"type":"string"},"description":"base64 JSON x402 v2 PaymentRequired"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentRequired"}}}},"500":{"description":"Service error. Not charged.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Facilitator unavailable. Not charged. Retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/try/whois":{"post":{"operationId":"try_whois","summary":"Free trial: WHOIS Lookup","description":"Same output as the paid endpoint, limited per IP and day. Send an empty body to use the example input.","tags":["trial"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","required":["domain"],"properties":{"domain":{"type":"string","description":"Domain to look up (e.g. 'github.com', 'openai.com'). Include TLD, exclude https://"}}},"example":{"domain":"github.com"}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"type":"object","required":["domain","status","name_servers"],"properties":{"domain":{"type":"string","description":"The queried domain name"},"registrar":{"type":"string","description":"Domain registrar name"},"registrar_url":{"type":"string","description":"Registrar website URL"},"status":{"type":"array","items":{"type":"string"},"description":"Domain status codes (e.g. clientTransferProhibited)"},"created_at":{"type":"string","format":"date-time","description":"Domain registration date (ISO 8601)"},"updated_at":{"type":"string","format":"date-time","description":"Last updated date (ISO 8601)"},"expires_at":{"type":"string","format":"date-time","description":"Domain expiry date (ISO 8601)"},"days_until_expiry":{"type":"integer","description":"Days remaining until domain expires (negative = already expired)"},"name_servers":{"type":"array","items":{"type":"string"},"description":"Nameservers for the domain"},"dnssec":{"type":"string","description":"DNSSEC status (e.g. 'signedDelegation', 'unsigned')"},"registrant_country":{"type":"string","description":"Registrant country code (if publicly available)"}},"example":{"domain":"github.com","registrar":"MarkMonitor Inc.","registrar_url":"http://www.markmonitor.com","status":["clientDeleteProhibited","clientTransferProhibited","clientUpdateProhibited"],"created_at":"2007-10-09T18:20:50.000Z","updated_at":"2024-09-08T09:18:28.000Z","expires_at":"2026-10-09T18:20:50.000Z","days_until_expiry":548,"name_servers":["dns1.p08.nsone.net","dns2.p08.nsone.net","ns-1283.awsdns-32.org","ns-1707.awsdns-21.co.uk"],"dnssec":"unsigned","registrant_country":"US"}},"trial":{"type":"object"},"paid_endpoint":{"type":"string"},"price_usdc":{"type":"number"}}}}}},"429":{"description":"Trial limit reached for today","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/proxy/crypto-prices":{"post":{"operationId":"crypto_prices","summary":"Crypto Price Lookup ($0.002 USDC per call)","description":"Real-time crypto prices, market caps, and 24h % changes via CoinGecko. Pass coins as CoinGecko IDs (['bitcoin','ethereum','solana']) or tickers. Max 25 coins per call. Returns usd, usd_24h_change, usd_market_cap per coin. Add currencies param for multi-currency output (['usd','eur','gbp']).\n\nPrice: $0.002 USDC per successful call, paid via x402 (USDC on Base mainnet). Without a payment header the response is HTTP 402 with the requirements. Free trial: POST https://agentsvc.io/api/v1/try/crypto-prices","tags":["finance"],"x-price-usdc":0.002,"x-x402":{"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x622efA6Ceb83a5b6EdBC931332f4db68B7f74F27","scheme":"exact","amount":"2000"},"parameters":[{"name":"PAYMENT-SIGNATURE","in":"header","required":false,"schema":{"type":"string"},"description":"x402 v2 payment payload (base64 JSON). Sent automatically by @x402/fetch or x402 python."},{"name":"X-PAYMENT","in":"header","required":false,"schema":{"type":"string"},"description":"x402 v1 payment payload (base64 JSON)."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["coins"],"properties":{"coins":{"type":"array","items":{"type":"string"},"description":"List of coin IDs or ticker symbols. Accepts CoinGecko IDs (e.g. 'bitcoin', 'ethereum') or common tickers (e.g. 'BTC', 'ETH', 'SOL'). Max 25 coins per call.","examples":[["bitcoin","ethereum"],["BTC","ETH","SOL"],["bitcoin","BNB","cardano"]]},"currencies":{"type":"array","items":{"type":"string"},"default":["usd"],"description":"Target fiat currencies. Default: ['usd']. Supported: usd, eur, gbp, jpy, chf, aud, cad, btc, eth."}}},"example":{"coins":["bitcoin","ethereum"],"currencies":["usd"]}}}},"responses":{"200":{"description":"Success. Payment settled on-chain; receipt in PAYMENT-RESPONSE header.","headers":{"PAYMENT-RESPONSE":{"schema":{"type":"string"},"description":"base64 JSON {success, transaction, network, payer}"},"X-Latency-Ms":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["success","data"],"properties":{"success":{"type":"boolean","const":true},"data":{"type":"object","required":["prices","fetched_at","source"],"properties":{"prices":{"type":"object","description":"Map of coin_id → price data. Each entry contains price(s) in requested currencies, 24h change, and market cap.","additionalProperties":{"type":"object","properties":{"name":{"type":"string","description":"Full coin name (e.g. 'Bitcoin')"},"symbol":{"type":"string","description":"Ticker symbol (e.g. 'BTC')"},"usd":{"type":"number","description":"Price in USD"},"usd_24h_change":{"type":"number","description":"24-hour price change in percent (e.g. 2.35 means +2.35%)"},"usd_market_cap":{"type":"number","description":"Market capitalization in USD"}}}},"fetched_at":{"type":"string","format":"date-time","description":"ISO 8601 timestamp of the data"},"source":{"type":"string","description":"Always: 'CoinGecko'"},"not_found":{"type":"array","items":{"type":"string"},"description":"Coin IDs or tickers that could not be resolved"}},"example":{"prices":{"bitcoin":{"name":"Bitcoin","symbol":"BTC","usd":71923,"usd_24h_change":1.42,"usd_market_cap":1419000000000},"ethereum":{"name":"Ethereum","symbol":"ETH","usd":2188,"usd_24h_change":0.41,"usd_market_cap":263000000000}},"fetched_at":"2026-04-10T14:00:00.000Z","source":"CoinGecko","not_found":[]}},"payment":{"type":"object","properties":{"settled":{"type":"boolean"},"amount_usdc":{"type":"number"},"transaction":{"type":"string"},"network":{"type":"string"},"payer":{"type":"string"},"explorer":{"type":"string"}}}}},"example":{"success":true,"data":{"prices":{"bitcoin":{"name":"Bitcoin","symbol":"BTC","usd":71923,"usd_24h_change":1.42,"usd_market_cap":1419000000000},"ethereum":{"name":"Ethereum","symbol":"ETH","usd":2188,"usd_24h_change":0.41,"usd_market_cap":263000000000}},"fetched_at":"2026-04-10T14:00:00.000Z","source":"CoinGecko","not_found":[]},"payment":{"settled":true,"amount_usdc":0.002,"transaction":"0x…","network":"eip155:8453","payer":"0x…"}}}}},"400":{"description":"Invalid input. Not charged. Body includes example_input and input_schema.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment required or payment rejected. Body: x402 v1 PaymentRequired plus hint. Header PAYMENT-REQUIRED: x402 v2 PaymentRequired (base64 JSON).","headers":{"PAYMENT-REQUIRED":{"schema":{"type":"string"},"description":"base64 JSON x402 v2 PaymentRequired"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentRequired"}}}},"500":{"description":"Service error. Not charged.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Facilitator unavailable. Not charged. Retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/try/crypto-prices":{"post":{"operationId":"try_crypto_prices","summary":"Free trial: Crypto Price Lookup","description":"Same output as the paid endpoint, limited per IP and day. Send an empty body to use the example input.","tags":["trial"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","required":["coins"],"properties":{"coins":{"type":"array","items":{"type":"string"},"description":"List of coin IDs or ticker symbols. Accepts CoinGecko IDs (e.g. 'bitcoin', 'ethereum') or common tickers (e.g. 'BTC', 'ETH', 'SOL'). Max 25 coins per call.","examples":[["bitcoin","ethereum"],["BTC","ETH","SOL"],["bitcoin","BNB","cardano"]]},"currencies":{"type":"array","items":{"type":"string"},"default":["usd"],"description":"Target fiat currencies. Default: ['usd']. Supported: usd, eur, gbp, jpy, chf, aud, cad, btc, eth."}}},"example":{"coins":["bitcoin","ethereum"],"currencies":["usd"]}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"type":"object","required":["prices","fetched_at","source"],"properties":{"prices":{"type":"object","description":"Map of coin_id → price data. Each entry contains price(s) in requested currencies, 24h change, and market cap.","additionalProperties":{"type":"object","properties":{"name":{"type":"string","description":"Full coin name (e.g. 'Bitcoin')"},"symbol":{"type":"string","description":"Ticker symbol (e.g. 'BTC')"},"usd":{"type":"number","description":"Price in USD"},"usd_24h_change":{"type":"number","description":"24-hour price change in percent (e.g. 2.35 means +2.35%)"},"usd_market_cap":{"type":"number","description":"Market capitalization in USD"}}}},"fetched_at":{"type":"string","format":"date-time","description":"ISO 8601 timestamp of the data"},"source":{"type":"string","description":"Always: 'CoinGecko'"},"not_found":{"type":"array","items":{"type":"string"},"description":"Coin IDs or tickers that could not be resolved"}},"example":{"prices":{"bitcoin":{"name":"Bitcoin","symbol":"BTC","usd":71923,"usd_24h_change":1.42,"usd_market_cap":1419000000000},"ethereum":{"name":"Ethereum","symbol":"ETH","usd":2188,"usd_24h_change":0.41,"usd_market_cap":263000000000}},"fetched_at":"2026-04-10T14:00:00.000Z","source":"CoinGecko","not_found":[]}},"trial":{"type":"object"},"paid_endpoint":{"type":"string"},"price_usdc":{"type":"number"}}}}}},"429":{"description":"Trial limit reached for today","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/proxy/pdf-extract":{"post":{"operationId":"pdf_extract","summary":"PDF Text Extraction ($0.004 USDC per call)","description":"Extract all text from a PDF. Send as pdf_base64 (base64-encoded PDF, max ~10 MB decoded). Returns text (full concatenated text), pages array (per-page text + char_count), page_count, and metadata (title, author, creator). Encode with: Buffer.from(pdfBytes).toString('base64'). Ideal for RAG pipelines, document QA, or LLM ingestion.\n\nPrice: $0.004 USDC per successful call, paid via x402 (USDC on Base mainnet). Without a payment header the response is HTTP 402 with the requirements. Free trial: POST https://agentsvc.io/api/v1/try/pdf-extract","tags":["text"],"x-price-usdc":0.004,"x-x402":{"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x622efA6Ceb83a5b6EdBC931332f4db68B7f74F27","scheme":"exact","amount":"4000"},"parameters":[{"name":"PAYMENT-SIGNATURE","in":"header","required":false,"schema":{"type":"string"},"description":"x402 v2 payment payload (base64 JSON). Sent automatically by @x402/fetch or x402 python."},{"name":"X-PAYMENT","in":"header","required":false,"schema":{"type":"string"},"description":"x402 v1 payment payload (base64 JSON)."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["pdf_base64"],"properties":{"pdf_base64":{"type":"string","description":"Base64-encoded PDF file content. Decode a PDF file to base64 and pass it here. Max ~10 MB (unencoded)."},"max_pages":{"type":"integer","default":50,"description":"Maximum number of pages to extract. Default: 50. Use to limit processing time for large PDFs."}}},"example":{"pdf_base64":"<base64 of a PDF>","max_pages":10}}}},"responses":{"200":{"description":"Success. Payment settled on-chain; receipt in PAYMENT-RESPONSE header.","headers":{"PAYMENT-RESPONSE":{"schema":{"type":"string"},"description":"base64 JSON {success, transaction, network, payer}"},"X-Latency-Ms":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["success","data"],"properties":{"success":{"type":"boolean","const":true},"data":{"type":"object","required":["text","page_count","extracted_at"],"properties":{"text":{"type":"string","description":"Full extracted text from all pages, joined with newlines. Preserves paragraph structure where possible."},"page_count":{"type":"integer","description":"Total number of pages in the PDF"},"pages":{"type":"array","description":"Per-page text content (first max_pages pages)","items":{"type":"object","properties":{"page":{"type":"integer","description":"Page number (1-based)"},"text":{"type":"string","description":"Extracted text for this page"},"char_count":{"type":"integer","description":"Number of characters on this page"}}}},"metadata":{"type":"object","description":"PDF document metadata (if available)","properties":{"title":{"type":"string"},"author":{"type":"string"},"subject":{"type":"string"},"creator":{"type":"string"},"producer":{"type":"string"},"creation_date":{"type":"string"}}},"file_size_bytes":{"type":"integer","description":"Size of the decoded PDF in bytes"},"extracted_at":{"type":"string","format":"date-time","description":"ISO 8601 timestamp of extraction"}},"example":{"text":"Quarterly Financial Report Q1 2026\n\nExecutive Summary\nTotal revenue increased by 23% year-over-year...","page_count":12,"pages":[{"page":1,"text":"Quarterly Financial Report Q1 2026\n\nExecutive Summary","char_count":54},{"page":2,"text":"Table of Contents\n1. Revenue Overview\n2. Cost Analysis","char_count":58}],"metadata":{"title":"Q1 2026 Financial Report","author":"Finance Department","creator":"Adobe Acrobat"},"file_size_bytes":245760,"extracted_at":"2026-04-10T14:00:00.000Z"}},"payment":{"type":"object","properties":{"settled":{"type":"boolean"},"amount_usdc":{"type":"number"},"transaction":{"type":"string"},"network":{"type":"string"},"payer":{"type":"string"},"explorer":{"type":"string"}}}}},"example":{"success":true,"data":{"text":"Quarterly Financial Report Q1 2026\n\nExecutive Summary\nTotal revenue increased by 23% year-over-year...","page_count":12,"pages":[{"page":1,"text":"Quarterly Financial Report Q1 2026\n\nExecutive Summary","char_count":54},{"page":2,"text":"Table of Contents\n1. Revenue Overview\n2. Cost Analysis","char_count":58}],"metadata":{"title":"Q1 2026 Financial Report","author":"Finance Department","creator":"Adobe Acrobat"},"file_size_bytes":245760,"extracted_at":"2026-04-10T14:00:00.000Z"},"payment":{"settled":true,"amount_usdc":0.004,"transaction":"0x…","network":"eip155:8453","payer":"0x…"}}}}},"400":{"description":"Invalid input. Not charged. Body includes example_input and input_schema.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment required or payment rejected. Body: x402 v1 PaymentRequired plus hint. Header PAYMENT-REQUIRED: x402 v2 PaymentRequired (base64 JSON).","headers":{"PAYMENT-REQUIRED":{"schema":{"type":"string"},"description":"base64 JSON x402 v2 PaymentRequired"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentRequired"}}}},"500":{"description":"Service error. Not charged.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Facilitator unavailable. Not charged. Retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/try/pdf-extract":{"post":{"operationId":"try_pdf_extract","summary":"Free trial: PDF Text Extraction","description":"Same output as the paid endpoint, limited per IP and day. Send an empty body to use the example input.","tags":["trial"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","required":["pdf_base64"],"properties":{"pdf_base64":{"type":"string","description":"Base64-encoded PDF file content. Decode a PDF file to base64 and pass it here. Max ~10 MB (unencoded)."},"max_pages":{"type":"integer","default":50,"description":"Maximum number of pages to extract. Default: 50. Use to limit processing time for large PDFs."}}},"example":{"pdf_base64":"<base64 of a PDF>","max_pages":10}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"type":"object","required":["text","page_count","extracted_at"],"properties":{"text":{"type":"string","description":"Full extracted text from all pages, joined with newlines. Preserves paragraph structure where possible."},"page_count":{"type":"integer","description":"Total number of pages in the PDF"},"pages":{"type":"array","description":"Per-page text content (first max_pages pages)","items":{"type":"object","properties":{"page":{"type":"integer","description":"Page number (1-based)"},"text":{"type":"string","description":"Extracted text for this page"},"char_count":{"type":"integer","description":"Number of characters on this page"}}}},"metadata":{"type":"object","description":"PDF document metadata (if available)","properties":{"title":{"type":"string"},"author":{"type":"string"},"subject":{"type":"string"},"creator":{"type":"string"},"producer":{"type":"string"},"creation_date":{"type":"string"}}},"file_size_bytes":{"type":"integer","description":"Size of the decoded PDF in bytes"},"extracted_at":{"type":"string","format":"date-time","description":"ISO 8601 timestamp of extraction"}},"example":{"text":"Quarterly Financial Report Q1 2026\n\nExecutive Summary\nTotal revenue increased by 23% year-over-year...","page_count":12,"pages":[{"page":1,"text":"Quarterly Financial Report Q1 2026\n\nExecutive Summary","char_count":54},{"page":2,"text":"Table of Contents\n1. Revenue Overview\n2. Cost Analysis","char_count":58}],"metadata":{"title":"Q1 2026 Financial Report","author":"Finance Department","creator":"Adobe Acrobat"},"file_size_bytes":245760,"extracted_at":"2026-04-10T14:00:00.000Z"}},"trial":{"type":"object"},"paid_endpoint":{"type":"string"},"price_usdc":{"type":"number"}}}}}},"429":{"description":"Trial limit reached for today","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/proxy/phone-validate":{"post":{"operationId":"phone_validate","summary":"Phone Number Validation ($0.002 USDC per call)","description":"Parse and validate any phone number worldwide using libphonenumber. Returns is_valid, e164 (canonical international format e.g. '+4917612345678'), national_format, country_code (ISO alpha-2), and line_type (MOBILE/FIXED_LINE/VOIP/TOLL_FREE). Provide country_code hint (e.g. 'DE') for local numbers without country prefix.\n\nPrice: $0.002 USDC per successful call, paid via x402 (USDC on Base mainnet). Without a payment header the response is HTTP 402 with the requirements. Free trial: POST https://agentsvc.io/api/v1/try/phone-validate","tags":["utility"],"x-price-usdc":0.002,"x-x402":{"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x622efA6Ceb83a5b6EdBC931332f4db68B7f74F27","scheme":"exact","amount":"2000"},"parameters":[{"name":"PAYMENT-SIGNATURE","in":"header","required":false,"schema":{"type":"string"},"description":"x402 v2 payment payload (base64 JSON). Sent automatically by @x402/fetch or x402 python."},{"name":"X-PAYMENT","in":"header","required":false,"schema":{"type":"string"},"description":"x402 v1 payment payload (base64 JSON)."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["phone"],"properties":{"phone":{"type":"string","description":"Phone number to validate. Can be in any format: E.164 ('+4915123456789'), national ('015123456789'), or international ('0049 151 23456789'). Include country code (+ prefix) for best results."},"country_code":{"type":"string","description":"ISO 3166-1 alpha-2 country code hint for parsing national numbers without country prefix (e.g. 'DE' for Germany, 'US' for United States). Optional if number includes country code (+...)."}}},"example":{"phone":"+41 44 668 18 00"}}}},"responses":{"200":{"description":"Success. Payment settled on-chain; receipt in PAYMENT-RESPONSE header.","headers":{"PAYMENT-RESPONSE":{"schema":{"type":"string"},"description":"base64 JSON {success, transaction, network, payer}"},"X-Latency-Ms":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["success","data"],"properties":{"success":{"type":"boolean","const":true},"data":{"type":"object","required":["phone","is_valid","checks"],"properties":{"phone":{"type":"string","description":"The input phone number as provided"},"is_valid":{"type":"boolean","description":"true if the number is a valid, dialable phone number"},"e164":{"type":"string","description":"E.164 formatted number (e.g. '+4915123456789'). International standard format."},"national_format":{"type":"string","description":"Nationally formatted number (e.g. '0151 23456789' for Germany)"},"international_format":{"type":"string","description":"Internationally formatted number (e.g. '+49 151 23456789')"},"country_code":{"type":"string","description":"ISO 3166-1 alpha-2 country code (e.g. 'DE', 'US', 'GB')"},"country_calling_code":{"type":"string","description":"International dialing code (e.g. '49' for Germany, '1' for US)"},"line_type":{"type":"string","description":"Type of phone line: 'MOBILE', 'FIXED_LINE', 'FIXED_LINE_OR_MOBILE', 'TOLL_FREE', 'PREMIUM_RATE', 'SHARED_COST', 'VOIP', 'PERSONAL_NUMBER', 'PAGER', 'UAN', 'VOICEMAIL', or 'UNKNOWN'"},"checks":{"type":"object","properties":{"is_possible":{"type":"boolean","description":"Number has a valid length for the country (faster check than full validation)"},"is_valid":{"type":"boolean","description":"Full validation — number is valid for the assigned country and region"}}}},"example":{"phone":"+49 151 23456789","is_valid":true,"e164":"+4915123456789","national_format":"0151 23456789","international_format":"+49 151 23456789","country_code":"DE","country_calling_code":"49","line_type":"MOBILE","checks":{"is_possible":true,"is_valid":true}}},"payment":{"type":"object","properties":{"settled":{"type":"boolean"},"amount_usdc":{"type":"number"},"transaction":{"type":"string"},"network":{"type":"string"},"payer":{"type":"string"},"explorer":{"type":"string"}}}}},"example":{"success":true,"data":{"phone":"+49 151 23456789","is_valid":true,"e164":"+4915123456789","national_format":"0151 23456789","international_format":"+49 151 23456789","country_code":"DE","country_calling_code":"49","line_type":"MOBILE","checks":{"is_possible":true,"is_valid":true}},"payment":{"settled":true,"amount_usdc":0.002,"transaction":"0x…","network":"eip155:8453","payer":"0x…"}}}}},"400":{"description":"Invalid input. Not charged. Body includes example_input and input_schema.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment required or payment rejected. Body: x402 v1 PaymentRequired plus hint. Header PAYMENT-REQUIRED: x402 v2 PaymentRequired (base64 JSON).","headers":{"PAYMENT-REQUIRED":{"schema":{"type":"string"},"description":"base64 JSON x402 v2 PaymentRequired"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentRequired"}}}},"500":{"description":"Service error. Not charged.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Facilitator unavailable. Not charged. Retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/try/phone-validate":{"post":{"operationId":"try_phone_validate","summary":"Free trial: Phone Number Validation","description":"Same output as the paid endpoint, limited per IP and day. Send an empty body to use the example input.","tags":["trial"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","required":["phone"],"properties":{"phone":{"type":"string","description":"Phone number to validate. Can be in any format: E.164 ('+4915123456789'), national ('015123456789'), or international ('0049 151 23456789'). Include country code (+ prefix) for best results."},"country_code":{"type":"string","description":"ISO 3166-1 alpha-2 country code hint for parsing national numbers without country prefix (e.g. 'DE' for Germany, 'US' for United States). Optional if number includes country code (+...)."}}},"example":{"phone":"+41 44 668 18 00"}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"type":"object","required":["phone","is_valid","checks"],"properties":{"phone":{"type":"string","description":"The input phone number as provided"},"is_valid":{"type":"boolean","description":"true if the number is a valid, dialable phone number"},"e164":{"type":"string","description":"E.164 formatted number (e.g. '+4915123456789'). International standard format."},"national_format":{"type":"string","description":"Nationally formatted number (e.g. '0151 23456789' for Germany)"},"international_format":{"type":"string","description":"Internationally formatted number (e.g. '+49 151 23456789')"},"country_code":{"type":"string","description":"ISO 3166-1 alpha-2 country code (e.g. 'DE', 'US', 'GB')"},"country_calling_code":{"type":"string","description":"International dialing code (e.g. '49' for Germany, '1' for US)"},"line_type":{"type":"string","description":"Type of phone line: 'MOBILE', 'FIXED_LINE', 'FIXED_LINE_OR_MOBILE', 'TOLL_FREE', 'PREMIUM_RATE', 'SHARED_COST', 'VOIP', 'PERSONAL_NUMBER', 'PAGER', 'UAN', 'VOICEMAIL', or 'UNKNOWN'"},"checks":{"type":"object","properties":{"is_possible":{"type":"boolean","description":"Number has a valid length for the country (faster check than full validation)"},"is_valid":{"type":"boolean","description":"Full validation — number is valid for the assigned country and region"}}}},"example":{"phone":"+49 151 23456789","is_valid":true,"e164":"+4915123456789","national_format":"0151 23456789","international_format":"+49 151 23456789","country_code":"DE","country_calling_code":"49","line_type":"MOBILE","checks":{"is_possible":true,"is_valid":true}}},"trial":{"type":"object"},"paid_endpoint":{"type":"string"},"price_usdc":{"type":"number"}}}}}},"429":{"description":"Trial limit reached for today","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/proxy/stock-prices":{"post":{"operationId":"stock_prices","summary":"Stock Price Lookup ($0.002 USDC per call)","description":"Real-time stock data via Yahoo Finance. Returns price, change, change_pct, previous_close, market_cap, pe_ratio, week_52_high, week_52_low, volume, and market_state. Max 10 symbols per call. Non-US exchange suffixes: 'SAP.DE' (Xetra), 'VOD.L' (London LSE), 'AIR.PA' (Paris Euronext), 'ASML.AS' (Amsterdam).\n\nPrice: $0.002 USDC per successful call, paid via x402 (USDC on Base mainnet). Without a payment header the response is HTTP 402 with the requirements. Free trial: POST https://agentsvc.io/api/v1/try/stock-prices","tags":["finance"],"x-price-usdc":0.002,"x-x402":{"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x622efA6Ceb83a5b6EdBC931332f4db68B7f74F27","scheme":"exact","amount":"2000"},"parameters":[{"name":"PAYMENT-SIGNATURE","in":"header","required":false,"schema":{"type":"string"},"description":"x402 v2 payment payload (base64 JSON). Sent automatically by @x402/fetch or x402 python."},{"name":"X-PAYMENT","in":"header","required":false,"schema":{"type":"string"},"description":"x402 v1 payment payload (base64 JSON)."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["symbols"],"properties":{"symbols":{"type":"array","items":{"type":"string"},"description":"List of stock ticker symbols. Max 10 per call. Examples: ['AAPL', 'MSFT', 'NVDA'] for US stocks, ['SAP.DE', 'BAYN.DE'] for German XETRA stocks, ['TSLA', 'GOOGL', 'AMZN']. Use the exchange suffix for non-US stocks (e.g. .DE, .L, .PA)."}}},"example":{"symbols":["AAPL","MSFT"]}}}},"responses":{"200":{"description":"Success. Payment settled on-chain; receipt in PAYMENT-RESPONSE header.","headers":{"PAYMENT-RESPONSE":{"schema":{"type":"string"},"description":"base64 JSON {success, transaction, network, payer}"},"X-Latency-Ms":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["success","data"],"properties":{"success":{"type":"boolean","const":true},"data":{"type":"object","required":["stocks","fetched_at"],"properties":{"stocks":{"type":"object","description":"Map of ticker symbol → stock data","additionalProperties":{"type":"object","properties":{"symbol":{"type":"string","description":"Ticker symbol as provided"},"name":{"type":"string","description":"Full company name (e.g. 'Apple Inc.')"},"exchange":{"type":"string","description":"Exchange name (e.g. 'NMS', 'NYQ', 'GER')"},"currency":{"type":"string","description":"Trading currency (e.g. 'USD', 'EUR', 'GBP')"},"price":{"type":"number","description":"Current market price"},"change":{"type":"number","description":"Price change vs previous close"},"change_pct":{"type":"number","description":"Price change in percent (e.g. 1.23 means +1.23%)"},"previous_close":{"type":"number","description":"Previous trading day closing price"},"open":{"type":"number","description":"Today's opening price"},"day_high":{"type":"number","description":"Today's intraday high"},"day_low":{"type":"number","description":"Today's intraday low"},"volume":{"type":"integer","description":"Today's trading volume (shares)"},"market_cap":{"type":"number","description":"Market capitalization in the stock's currency"},"pe_ratio":{"type":"number","description":"Trailing P/E ratio (price-to-earnings)"},"week_52_high":{"type":"number","description":"52-week price high"},"week_52_low":{"type":"number","description":"52-week price low"},"market_state":{"type":"string","description":"Market state: 'REGULAR', 'PRE', 'POST', 'CLOSED'"}}}},"not_found":{"type":"array","items":{"type":"string"},"description":"Symbols that could not be resolved"},"fetched_at":{"type":"string","format":"date-time","description":"ISO 8601 timestamp"},"source":{"type":"string","description":"Always: 'Yahoo Finance'"}},"example":{"stocks":{"AAPL":{"symbol":"AAPL","name":"Apple Inc.","exchange":"NMS","currency":"USD","price":260.49,"change":1.59,"change_pct":0.61,"previous_close":258.9,"open":259.5,"day_high":261.2,"day_low":258.75,"volume":48200000,"market_cap":3910000000000,"pe_ratio":32.4,"week_52_high":273.59,"week_52_low":169.21,"market_state":"REGULAR"},"MSFT":{"symbol":"MSFT","name":"Microsoft Corporation","exchange":"NMS","currency":"USD","price":373.07,"change":1.43,"change_pct":0.38,"previous_close":371.64,"market_state":"REGULAR"}},"not_found":[],"fetched_at":"2026-04-10T14:00:00.000Z","source":"Yahoo Finance"}},"payment":{"type":"object","properties":{"settled":{"type":"boolean"},"amount_usdc":{"type":"number"},"transaction":{"type":"string"},"network":{"type":"string"},"payer":{"type":"string"},"explorer":{"type":"string"}}}}},"example":{"success":true,"data":{"stocks":{"AAPL":{"symbol":"AAPL","name":"Apple Inc.","exchange":"NMS","currency":"USD","price":260.49,"change":1.59,"change_pct":0.61,"previous_close":258.9,"open":259.5,"day_high":261.2,"day_low":258.75,"volume":48200000,"market_cap":3910000000000,"pe_ratio":32.4,"week_52_high":273.59,"week_52_low":169.21,"market_state":"REGULAR"},"MSFT":{"symbol":"MSFT","name":"Microsoft Corporation","exchange":"NMS","currency":"USD","price":373.07,"change":1.43,"change_pct":0.38,"previous_close":371.64,"market_state":"REGULAR"}},"not_found":[],"fetched_at":"2026-04-10T14:00:00.000Z","source":"Yahoo Finance"},"payment":{"settled":true,"amount_usdc":0.002,"transaction":"0x…","network":"eip155:8453","payer":"0x…"}}}}},"400":{"description":"Invalid input. Not charged. Body includes example_input and input_schema.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment required or payment rejected. Body: x402 v1 PaymentRequired plus hint. Header PAYMENT-REQUIRED: x402 v2 PaymentRequired (base64 JSON).","headers":{"PAYMENT-REQUIRED":{"schema":{"type":"string"},"description":"base64 JSON x402 v2 PaymentRequired"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentRequired"}}}},"500":{"description":"Service error. Not charged.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Facilitator unavailable. Not charged. Retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/try/stock-prices":{"post":{"operationId":"try_stock_prices","summary":"Free trial: Stock Price Lookup","description":"Same output as the paid endpoint, limited per IP and day. Send an empty body to use the example input.","tags":["trial"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","required":["symbols"],"properties":{"symbols":{"type":"array","items":{"type":"string"},"description":"List of stock ticker symbols. Max 10 per call. Examples: ['AAPL', 'MSFT', 'NVDA'] for US stocks, ['SAP.DE', 'BAYN.DE'] for German XETRA stocks, ['TSLA', 'GOOGL', 'AMZN']. Use the exchange suffix for non-US stocks (e.g. .DE, .L, .PA)."}}},"example":{"symbols":["AAPL","MSFT"]}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"type":"object","required":["stocks","fetched_at"],"properties":{"stocks":{"type":"object","description":"Map of ticker symbol → stock data","additionalProperties":{"type":"object","properties":{"symbol":{"type":"string","description":"Ticker symbol as provided"},"name":{"type":"string","description":"Full company name (e.g. 'Apple Inc.')"},"exchange":{"type":"string","description":"Exchange name (e.g. 'NMS', 'NYQ', 'GER')"},"currency":{"type":"string","description":"Trading currency (e.g. 'USD', 'EUR', 'GBP')"},"price":{"type":"number","description":"Current market price"},"change":{"type":"number","description":"Price change vs previous close"},"change_pct":{"type":"number","description":"Price change in percent (e.g. 1.23 means +1.23%)"},"previous_close":{"type":"number","description":"Previous trading day closing price"},"open":{"type":"number","description":"Today's opening price"},"day_high":{"type":"number","description":"Today's intraday high"},"day_low":{"type":"number","description":"Today's intraday low"},"volume":{"type":"integer","description":"Today's trading volume (shares)"},"market_cap":{"type":"number","description":"Market capitalization in the stock's currency"},"pe_ratio":{"type":"number","description":"Trailing P/E ratio (price-to-earnings)"},"week_52_high":{"type":"number","description":"52-week price high"},"week_52_low":{"type":"number","description":"52-week price low"},"market_state":{"type":"string","description":"Market state: 'REGULAR', 'PRE', 'POST', 'CLOSED'"}}}},"not_found":{"type":"array","items":{"type":"string"},"description":"Symbols that could not be resolved"},"fetched_at":{"type":"string","format":"date-time","description":"ISO 8601 timestamp"},"source":{"type":"string","description":"Always: 'Yahoo Finance'"}},"example":{"stocks":{"AAPL":{"symbol":"AAPL","name":"Apple Inc.","exchange":"NMS","currency":"USD","price":260.49,"change":1.59,"change_pct":0.61,"previous_close":258.9,"open":259.5,"day_high":261.2,"day_low":258.75,"volume":48200000,"market_cap":3910000000000,"pe_ratio":32.4,"week_52_high":273.59,"week_52_low":169.21,"market_state":"REGULAR"},"MSFT":{"symbol":"MSFT","name":"Microsoft Corporation","exchange":"NMS","currency":"USD","price":373.07,"change":1.43,"change_pct":0.38,"previous_close":371.64,"market_state":"REGULAR"}},"not_found":[],"fetched_at":"2026-04-10T14:00:00.000Z","source":"Yahoo Finance"}},"trial":{"type":"object"},"paid_endpoint":{"type":"string"},"price_usdc":{"type":"number"}}}}}},"429":{"description":"Trial limit reached for today","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/proxy/geocode":{"post":{"operationId":"geocode","summary":"Geocoding ($0.002 USDC per call)","description":"Forward geocoding: address string → lat/lon. Reverse geocoding: lat/lon → human-readable address. Powered by OpenStreetMap Nominatim. Returns results array with display_name, lat, lon, type, and structured address object. Provide address (string) for forward, or lat + lon (numbers) for reverse.\n\nPrice: $0.002 USDC per successful call, paid via x402 (USDC on Base mainnet). Without a payment header the response is HTTP 402 with the requirements. Free trial: POST https://agentsvc.io/api/v1/try/geocode","tags":["utility"],"x-price-usdc":0.002,"x-x402":{"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x622efA6Ceb83a5b6EdBC931332f4db68B7f74F27","scheme":"exact","amount":"2000"},"parameters":[{"name":"PAYMENT-SIGNATURE","in":"header","required":false,"schema":{"type":"string"},"description":"x402 v2 payment payload (base64 JSON). Sent automatically by @x402/fetch or x402 python."},{"name":"X-PAYMENT","in":"header","required":false,"schema":{"type":"string"},"description":"x402 v1 payment payload (base64 JSON)."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"Provide either 'address' for forward geocoding, or both 'lat' + 'lon' for reverse geocoding.","oneOf":[{"required":["address"],"properties":{"address":{"type":"string","description":"Address string to geocode (e.g. 'Eiffel Tower, Paris', '1600 Pennsylvania Ave NW, Washington DC', 'Marienplatz 1, Munich')"},"limit":{"type":"integer","default":1,"description":"Max number of results to return (default: 1, max: 5)"}}},{"required":["lat","lon"],"properties":{"lat":{"type":"number","description":"Latitude for reverse geocoding (e.g. 48.8566)"},"lon":{"type":"number","description":"Longitude for reverse geocoding (e.g. 2.3522)"}}}]},"example":{"address":"Brandenburger Tor, Berlin"}}}},"responses":{"200":{"description":"Success. Payment settled on-chain; receipt in PAYMENT-RESPONSE header.","headers":{"PAYMENT-RESPONSE":{"schema":{"type":"string"},"description":"base64 JSON {success, transaction, network, payer}"},"X-Latency-Ms":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["success","data"],"properties":{"success":{"type":"boolean","const":true},"data":{"type":"object","required":["mode","results"],"properties":{"mode":{"type":"string","enum":["forward","reverse"],"description":"'forward' if address was geocoded, 'reverse' if coordinates were looked up"},"results":{"type":"array","items":{"type":"object","properties":{"display_name":{"type":"string","description":"Full formatted address string"},"lat":{"type":"number","description":"Latitude"},"lon":{"type":"number","description":"Longitude"},"type":{"type":"string","description":"OSM place type (e.g. 'city', 'house', 'tourism', 'highway')"},"address":{"type":"object","description":"Structured address components","properties":{"house_number":{"type":"string"},"road":{"type":"string"},"neighbourhood":{"type":"string"},"suburb":{"type":"string"},"city":{"type":"string"},"state":{"type":"string"},"postcode":{"type":"string"},"country":{"type":"string"},"country_code":{"type":"string","description":"ISO 3166-1 alpha-2 (e.g. 'de', 'us', 'fr')"}}},"osm_type":{"type":"string","description":"OSM element type: 'node', 'way', 'relation'"},"place_id":{"type":"integer","description":"OpenStreetMap place ID"}}}},"source":{"type":"string","description":"Always: 'OpenStreetMap Nominatim'"}},"example":{"mode":"forward","results":[{"display_name":"Eiffel Tower, 5, Avenue Anatole France, Quartier du Gros-Caillou, Paris, Île-de-France, France","lat":48.8583736,"lon":2.2922926,"type":"tourism","address":{"road":"Avenue Anatole France","city":"Paris","state":"Île-de-France","postcode":"75007","country":"France","country_code":"fr"},"osm_type":"way","place_id":158515771}],"source":"OpenStreetMap Nominatim"}},"payment":{"type":"object","properties":{"settled":{"type":"boolean"},"amount_usdc":{"type":"number"},"transaction":{"type":"string"},"network":{"type":"string"},"payer":{"type":"string"},"explorer":{"type":"string"}}}}},"example":{"success":true,"data":{"mode":"forward","results":[{"display_name":"Eiffel Tower, 5, Avenue Anatole France, Quartier du Gros-Caillou, Paris, Île-de-France, France","lat":48.8583736,"lon":2.2922926,"type":"tourism","address":{"road":"Avenue Anatole France","city":"Paris","state":"Île-de-France","postcode":"75007","country":"France","country_code":"fr"},"osm_type":"way","place_id":158515771}],"source":"OpenStreetMap Nominatim"},"payment":{"settled":true,"amount_usdc":0.002,"transaction":"0x…","network":"eip155:8453","payer":"0x…"}}}}},"400":{"description":"Invalid input. Not charged. Body includes example_input and input_schema.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment required or payment rejected. Body: x402 v1 PaymentRequired plus hint. Header PAYMENT-REQUIRED: x402 v2 PaymentRequired (base64 JSON).","headers":{"PAYMENT-REQUIRED":{"schema":{"type":"string"},"description":"base64 JSON x402 v2 PaymentRequired"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentRequired"}}}},"500":{"description":"Service error. Not charged.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Facilitator unavailable. Not charged. Retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/try/geocode":{"post":{"operationId":"try_geocode","summary":"Free trial: Geocoding","description":"Same output as the paid endpoint, limited per IP and day. Send an empty body to use the example input.","tags":["trial"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","description":"Provide either 'address' for forward geocoding, or both 'lat' + 'lon' for reverse geocoding.","oneOf":[{"required":["address"],"properties":{"address":{"type":"string","description":"Address string to geocode (e.g. 'Eiffel Tower, Paris', '1600 Pennsylvania Ave NW, Washington DC', 'Marienplatz 1, Munich')"},"limit":{"type":"integer","default":1,"description":"Max number of results to return (default: 1, max: 5)"}}},{"required":["lat","lon"],"properties":{"lat":{"type":"number","description":"Latitude for reverse geocoding (e.g. 48.8566)"},"lon":{"type":"number","description":"Longitude for reverse geocoding (e.g. 2.3522)"}}}]},"example":{"address":"Brandenburger Tor, Berlin"}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"type":"object","required":["mode","results"],"properties":{"mode":{"type":"string","enum":["forward","reverse"],"description":"'forward' if address was geocoded, 'reverse' if coordinates were looked up"},"results":{"type":"array","items":{"type":"object","properties":{"display_name":{"type":"string","description":"Full formatted address string"},"lat":{"type":"number","description":"Latitude"},"lon":{"type":"number","description":"Longitude"},"type":{"type":"string","description":"OSM place type (e.g. 'city', 'house', 'tourism', 'highway')"},"address":{"type":"object","description":"Structured address components","properties":{"house_number":{"type":"string"},"road":{"type":"string"},"neighbourhood":{"type":"string"},"suburb":{"type":"string"},"city":{"type":"string"},"state":{"type":"string"},"postcode":{"type":"string"},"country":{"type":"string"},"country_code":{"type":"string","description":"ISO 3166-1 alpha-2 (e.g. 'de', 'us', 'fr')"}}},"osm_type":{"type":"string","description":"OSM element type: 'node', 'way', 'relation'"},"place_id":{"type":"integer","description":"OpenStreetMap place ID"}}}},"source":{"type":"string","description":"Always: 'OpenStreetMap Nominatim'"}},"example":{"mode":"forward","results":[{"display_name":"Eiffel Tower, 5, Avenue Anatole France, Quartier du Gros-Caillou, Paris, Île-de-France, France","lat":48.8583736,"lon":2.2922926,"type":"tourism","address":{"road":"Avenue Anatole France","city":"Paris","state":"Île-de-France","postcode":"75007","country":"France","country_code":"fr"},"osm_type":"way","place_id":158515771}],"source":"OpenStreetMap Nominatim"}},"trial":{"type":"object"},"paid_endpoint":{"type":"string"},"price_usdc":{"type":"number"}}}}}},"429":{"description":"Trial limit reached for today","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/proxy/news-search":{"post":{"operationId":"news_search","summary":"News Search ($0.003 USDC per call)","description":"Search recent news articles by keyword. Returns articles with title, url, source, published_at, and snippet. Sources: HackerNews Algolia (tech) + BBC RSS (general/world). Optional category filter: general/tech/business/science/health/politics. Limit max 30. Use for current events, topic monitoring, or market sentiment.\n\nPrice: $0.003 USDC per successful call, paid via x402 (USDC on Base mainnet). Without a payment header the response is HTTP 402 with the requirements. Free trial: POST https://agentsvc.io/api/v1/try/news-search","tags":["web"],"x-price-usdc":0.003,"x-x402":{"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x622efA6Ceb83a5b6EdBC931332f4db68B7f74F27","scheme":"exact","amount":"3000"},"parameters":[{"name":"PAYMENT-SIGNATURE","in":"header","required":false,"schema":{"type":"string"},"description":"x402 v2 payment payload (base64 JSON). Sent automatically by @x402/fetch or x402 python."},{"name":"X-PAYMENT","in":"header","required":false,"schema":{"type":"string"},"description":"x402 v1 payment payload (base64 JSON)."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["query"],"properties":{"query":{"type":"string","description":"Search query (e.g. 'artificial intelligence', 'climate change 2026', 'Apple earnings')"},"limit":{"type":"integer","default":10,"description":"Number of articles to return (default: 10, max: 30)"},"category":{"type":"string","enum":["general","tech","business","science","health","politics"],"default":"general","description":"News category filter. 'tech' searches HackerNews for developer/tech news. Others search BBC + general news feeds."}}},"example":{"query":"AI agents","limit":5}}}},"responses":{"200":{"description":"Success. Payment settled on-chain; receipt in PAYMENT-RESPONSE header.","headers":{"PAYMENT-RESPONSE":{"schema":{"type":"string"},"description":"base64 JSON {success, transaction, network, payer}"},"X-Latency-Ms":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["success","data"],"properties":{"success":{"type":"boolean","const":true},"data":{"type":"object","required":["query","articles","total_found"],"properties":{"query":{"type":"string","description":"The search query"},"articles":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string","description":"Article headline"},"url":{"type":"string","description":"Direct link to the article"},"source":{"type":"string","description":"News source name (e.g. 'BBC News', 'Hacker News')"},"published_at":{"type":"string","description":"Publication date/time (ISO 8601 or RFC 2822)"},"snippet":{"type":"string","description":"Short excerpt or description (if available)"},"score":{"type":"integer","description":"Community score/upvotes (HackerNews only)"}}}},"total_found":{"type":"integer","description":"Total number of matching articles found (before limit)"},"sources_queried":{"type":"array","items":{"type":"string"},"description":"News sources that were searched"}},"example":{"query":"artificial intelligence","articles":[{"title":"OpenCode – Open source AI coding agent","url":"https://github.com/opencode-ai/opencode","source":"Hacker News","published_at":"2026-04-10T08:32:00Z","snippet":"","score":1274},{"title":"AI breakthroughs in 2026: what's next","url":"https://www.bbc.co.uk/news/technology-67890123","source":"BBC News","published_at":"2026-04-10T06:15:00Z","snippet":"Scientists and engineers are pushing the boundaries..."}],"total_found":48,"sources_queried":["Hacker News","BBC News"]}},"payment":{"type":"object","properties":{"settled":{"type":"boolean"},"amount_usdc":{"type":"number"},"transaction":{"type":"string"},"network":{"type":"string"},"payer":{"type":"string"},"explorer":{"type":"string"}}}}},"example":{"success":true,"data":{"query":"artificial intelligence","articles":[{"title":"OpenCode – Open source AI coding agent","url":"https://github.com/opencode-ai/opencode","source":"Hacker News","published_at":"2026-04-10T08:32:00Z","snippet":"","score":1274},{"title":"AI breakthroughs in 2026: what's next","url":"https://www.bbc.co.uk/news/technology-67890123","source":"BBC News","published_at":"2026-04-10T06:15:00Z","snippet":"Scientists and engineers are pushing the boundaries..."}],"total_found":48,"sources_queried":["Hacker News","BBC News"]},"payment":{"settled":true,"amount_usdc":0.003,"transaction":"0x…","network":"eip155:8453","payer":"0x…"}}}}},"400":{"description":"Invalid input. Not charged. Body includes example_input and input_schema.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment required or payment rejected. Body: x402 v1 PaymentRequired plus hint. Header PAYMENT-REQUIRED: x402 v2 PaymentRequired (base64 JSON).","headers":{"PAYMENT-REQUIRED":{"schema":{"type":"string"},"description":"base64 JSON x402 v2 PaymentRequired"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentRequired"}}}},"500":{"description":"Service error. Not charged.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Facilitator unavailable. Not charged. Retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/try/news-search":{"post":{"operationId":"try_news_search","summary":"Free trial: News Search","description":"Same output as the paid endpoint, limited per IP and day. Send an empty body to use the example input.","tags":["trial"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","required":["query"],"properties":{"query":{"type":"string","description":"Search query (e.g. 'artificial intelligence', 'climate change 2026', 'Apple earnings')"},"limit":{"type":"integer","default":10,"description":"Number of articles to return (default: 10, max: 30)"},"category":{"type":"string","enum":["general","tech","business","science","health","politics"],"default":"general","description":"News category filter. 'tech' searches HackerNews for developer/tech news. Others search BBC + general news feeds."}}},"example":{"query":"AI agents","limit":5}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"type":"object","required":["query","articles","total_found"],"properties":{"query":{"type":"string","description":"The search query"},"articles":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string","description":"Article headline"},"url":{"type":"string","description":"Direct link to the article"},"source":{"type":"string","description":"News source name (e.g. 'BBC News', 'Hacker News')"},"published_at":{"type":"string","description":"Publication date/time (ISO 8601 or RFC 2822)"},"snippet":{"type":"string","description":"Short excerpt or description (if available)"},"score":{"type":"integer","description":"Community score/upvotes (HackerNews only)"}}}},"total_found":{"type":"integer","description":"Total number of matching articles found (before limit)"},"sources_queried":{"type":"array","items":{"type":"string"},"description":"News sources that were searched"}},"example":{"query":"artificial intelligence","articles":[{"title":"OpenCode – Open source AI coding agent","url":"https://github.com/opencode-ai/opencode","source":"Hacker News","published_at":"2026-04-10T08:32:00Z","snippet":"","score":1274},{"title":"AI breakthroughs in 2026: what's next","url":"https://www.bbc.co.uk/news/technology-67890123","source":"BBC News","published_at":"2026-04-10T06:15:00Z","snippet":"Scientists and engineers are pushing the boundaries..."}],"total_found":48,"sources_queried":["Hacker News","BBC News"]}},"trial":{"type":"object"},"paid_endpoint":{"type":"string"},"price_usdc":{"type":"number"}}}}}},"429":{"description":"Trial limit reached for today","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/proxy/ocr":{"post":{"operationId":"ocr","summary":"OCR — Image to Text ($0.008 USDC per call)","description":"Extract text from images using Tesseract OCR. Send image as image_base64 (PNG/JPEG/WebP/TIFF/BMP, max 10 MB decoded). Returns text and confidence (0-100, where 80+ is reliable). Set language to Tesseract code: 'eng' (default), 'deu' (German), 'fra' (French), 'chi_sim' (Chinese Simplified), 'jpn' (Japanese), 'ara' (Arabic). Use for invoices, receipts, scanned documents, or screenshots with text.\n\nPrice: $0.008 USDC per successful call, paid via x402 (USDC on Base mainnet). Without a payment header the response is HTTP 402 with the requirements. Free trial: POST https://agentsvc.io/api/v1/try/ocr","tags":["text"],"x-price-usdc":0.008,"x-x402":{"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x622efA6Ceb83a5b6EdBC931332f4db68B7f74F27","scheme":"exact","amount":"8000"},"parameters":[{"name":"PAYMENT-SIGNATURE","in":"header","required":false,"schema":{"type":"string"},"description":"x402 v2 payment payload (base64 JSON). Sent automatically by @x402/fetch or x402 python."},{"name":"X-PAYMENT","in":"header","required":false,"schema":{"type":"string"},"description":"x402 v1 payment payload (base64 JSON)."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["image_base64"],"properties":{"image_base64":{"type":"string","description":"Base64-encoded image. Supported formats: PNG, JPEG, WebP, TIFF, BMP. Max 10 MB decoded. For best results use high-contrast images with clear text."},"language":{"type":"string","default":"eng","description":"Tesseract language code. Default: 'eng' (English). Other supported: 'deu' (German), 'fra' (French), 'spa' (Spanish), 'ita' (Italian), 'por' (Portuguese), 'rus' (Russian), 'chi_sim' (Chinese Simplified), 'jpn' (Japanese), 'ara' (Arabic), 'kor' (Korean), 'nld' (Dutch), 'pol' (Polish). Use '+' to combine: 'eng+deu'."},"psm":{"type":"integer","default":3,"description":"Page Segmentation Mode. 3 = fully automatic (default, best for most images). 6 = single uniform block of text. 7 = single text line. 11 = sparse text (find text anywhere). 13 = raw line (no line ordering). Use 6 or 7 for forms/labels."}}},"example":{"image_base64":"<base64 of a PNG/JPG>","language":"eng"}}}},"responses":{"200":{"description":"Success. Payment settled on-chain; receipt in PAYMENT-RESPONSE header.","headers":{"PAYMENT-RESPONSE":{"schema":{"type":"string"},"description":"base64 JSON {success, transaction, network, payer}"},"X-Latency-Ms":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["success","data"],"properties":{"success":{"type":"boolean","const":true},"data":{"type":"object","required":["text","confidence","language","processed_at"],"properties":{"text":{"type":"string","description":"Full extracted text from the image, with line breaks preserved"},"confidence":{"type":"number","description":"Overall OCR confidence score (0-100). Above 70 is considered reliable."},"language":{"type":"string","description":"Language code used for recognition"},"word_count":{"type":"integer","description":"Number of words extracted"},"char_count":{"type":"integer","description":"Number of characters extracted (excluding whitespace)"},"processing_ms":{"type":"integer","description":"Time taken for OCR processing in milliseconds"},"processed_at":{"type":"string","format":"date-time","description":"ISO 8601 timestamp"}},"example":{"text":"Invoice #12345\nDate: April 10, 2026\n\nBill To:\nJohn Smith\n123 Main Street\n\nTotal Due: $1,250.00","confidence":94,"language":"eng","word_count":18,"char_count":72,"processing_ms":1840,"processed_at":"2026-04-10T14:00:00.000Z"}},"payment":{"type":"object","properties":{"settled":{"type":"boolean"},"amount_usdc":{"type":"number"},"transaction":{"type":"string"},"network":{"type":"string"},"payer":{"type":"string"},"explorer":{"type":"string"}}}}},"example":{"success":true,"data":{"text":"Invoice #12345\nDate: April 10, 2026\n\nBill To:\nJohn Smith\n123 Main Street\n\nTotal Due: $1,250.00","confidence":94,"language":"eng","word_count":18,"char_count":72,"processing_ms":1840,"processed_at":"2026-04-10T14:00:00.000Z"},"payment":{"settled":true,"amount_usdc":0.008,"transaction":"0x…","network":"eip155:8453","payer":"0x…"}}}}},"400":{"description":"Invalid input. Not charged. Body includes example_input and input_schema.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment required or payment rejected. Body: x402 v1 PaymentRequired plus hint. Header PAYMENT-REQUIRED: x402 v2 PaymentRequired (base64 JSON).","headers":{"PAYMENT-REQUIRED":{"schema":{"type":"string"},"description":"base64 JSON x402 v2 PaymentRequired"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentRequired"}}}},"500":{"description":"Service error. Not charged.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Facilitator unavailable. Not charged. Retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/try/ocr":{"post":{"operationId":"try_ocr","summary":"Free trial: OCR — Image to Text","description":"Same output as the paid endpoint, limited per IP and day. Send an empty body to use the example input.","tags":["trial"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","required":["image_base64"],"properties":{"image_base64":{"type":"string","description":"Base64-encoded image. Supported formats: PNG, JPEG, WebP, TIFF, BMP. Max 10 MB decoded. For best results use high-contrast images with clear text."},"language":{"type":"string","default":"eng","description":"Tesseract language code. Default: 'eng' (English). Other supported: 'deu' (German), 'fra' (French), 'spa' (Spanish), 'ita' (Italian), 'por' (Portuguese), 'rus' (Russian), 'chi_sim' (Chinese Simplified), 'jpn' (Japanese), 'ara' (Arabic), 'kor' (Korean), 'nld' (Dutch), 'pol' (Polish). Use '+' to combine: 'eng+deu'."},"psm":{"type":"integer","default":3,"description":"Page Segmentation Mode. 3 = fully automatic (default, best for most images). 6 = single uniform block of text. 7 = single text line. 11 = sparse text (find text anywhere). 13 = raw line (no line ordering). Use 6 or 7 for forms/labels."}}},"example":{"image_base64":"<base64 of a PNG/JPG>","language":"eng"}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"type":"object","required":["text","confidence","language","processed_at"],"properties":{"text":{"type":"string","description":"Full extracted text from the image, with line breaks preserved"},"confidence":{"type":"number","description":"Overall OCR confidence score (0-100). Above 70 is considered reliable."},"language":{"type":"string","description":"Language code used for recognition"},"word_count":{"type":"integer","description":"Number of words extracted"},"char_count":{"type":"integer","description":"Number of characters extracted (excluding whitespace)"},"processing_ms":{"type":"integer","description":"Time taken for OCR processing in milliseconds"},"processed_at":{"type":"string","format":"date-time","description":"ISO 8601 timestamp"}},"example":{"text":"Invoice #12345\nDate: April 10, 2026\n\nBill To:\nJohn Smith\n123 Main Street\n\nTotal Due: $1,250.00","confidence":94,"language":"eng","word_count":18,"char_count":72,"processing_ms":1840,"processed_at":"2026-04-10T14:00:00.000Z"}},"trial":{"type":"object"},"paid_endpoint":{"type":"string"},"price_usdc":{"type":"number"}}}}}},"429":{"description":"Trial limit reached for today","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/proxy/web-scrape":{"post":{"operationId":"web_scrape","summary":"Web Scrape (URL to Markdown) ($0.004 USDC per call)","description":"Fetch any public URL and return the page as clean Markdown for LLM consumption (title, meta description, main content with headings/lists/links preserved). Pass render:true to execute JavaScript in a real browser for SPAs (slower, returns plain text). Use this instead of raw fetch when a site blocks bots or when you want token-efficient content. Params: url (required), max_chars (default 8000, max 60000), include_links boolean, render boolean.\n\nPrice: $0.004 USDC per successful call, paid via x402 (USDC on Base mainnet). Without a payment header the response is HTTP 402 with the requirements. Free trial: POST https://agentsvc.io/api/v1/try/web-scrape","tags":["web"],"x-price-usdc":0.004,"x-x402":{"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x622efA6Ceb83a5b6EdBC931332f4db68B7f74F27","scheme":"exact","amount":"4000"},"parameters":[{"name":"PAYMENT-SIGNATURE","in":"header","required":false,"schema":{"type":"string"},"description":"x402 v2 payment payload (base64 JSON). Sent automatically by @x402/fetch or x402 python."},{"name":"X-PAYMENT","in":"header","required":false,"schema":{"type":"string"},"description":"x402 v1 payment payload (base64 JSON)."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["url"],"properties":{"url":{"type":"string","format":"uri","description":"Public http(s) URL to scrape"},"max_chars":{"type":"integer","default":8000,"maximum":60000,"description":"Truncate Markdown after this many characters"},"include_links":{"type":"boolean","default":false,"description":"Also return up to 100 absolute links found on the page"},"render":{"type":"boolean","default":false,"description":"Render with a headless browser (for JavaScript-heavy pages). Returns plain text instead of Markdown."}}},"example":{"url":"https://example.com","max_chars":8000}}}},"responses":{"200":{"description":"Success. Payment settled on-chain; receipt in PAYMENT-RESPONSE header.","headers":{"PAYMENT-RESPONSE":{"schema":{"type":"string"},"description":"base64 JSON {success, transaction, network, payer}"},"X-Latency-Ms":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["success","data"],"properties":{"success":{"type":"boolean","const":true},"data":{"type":"object","required":["url","status","title","markdown","word_count","truncated","fetched_at"],"properties":{"url":{"type":"string","description":"Final URL after redirects"},"status":{"type":"integer","description":"HTTP status of the fetched page"},"title":{"type":"string"},"description":{"type":"string","description":"Meta description if present"},"markdown":{"type":"string","description":"Page content as Markdown"},"word_count":{"type":"integer"},"truncated":{"type":"boolean"},"rendered":{"type":"boolean","description":"True if a headless browser was used"},"links":{"type":"array","items":{"type":"object","properties":{"text":{"type":"string"},"href":{"type":"string"}}}},"fetch_ms":{"type":"integer"},"fetched_at":{"type":"string","format":"date-time"}},"example":{"url":"https://example.com/","status":200,"title":"Example Domain","description":"","markdown":"# Example Domain\n\nThis domain is for use in illustrative examples in documents.\n\n[More information...](https://www.iana.org/domains/example)","word_count":21,"truncated":false,"rendered":false,"fetch_ms":312,"fetched_at":"2026-09-09T12:00:00.000Z"}},"payment":{"type":"object","properties":{"settled":{"type":"boolean"},"amount_usdc":{"type":"number"},"transaction":{"type":"string"},"network":{"type":"string"},"payer":{"type":"string"},"explorer":{"type":"string"}}}}},"example":{"success":true,"data":{"url":"https://example.com/","status":200,"title":"Example Domain","description":"","markdown":"# Example Domain\n\nThis domain is for use in illustrative examples in documents.\n\n[More information...](https://www.iana.org/domains/example)","word_count":21,"truncated":false,"rendered":false,"fetch_ms":312,"fetched_at":"2026-09-09T12:00:00.000Z"},"payment":{"settled":true,"amount_usdc":0.004,"transaction":"0x…","network":"eip155:8453","payer":"0x…"}}}}},"400":{"description":"Invalid input. Not charged. Body includes example_input and input_schema.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment required or payment rejected. Body: x402 v1 PaymentRequired plus hint. Header PAYMENT-REQUIRED: x402 v2 PaymentRequired (base64 JSON).","headers":{"PAYMENT-REQUIRED":{"schema":{"type":"string"},"description":"base64 JSON x402 v2 PaymentRequired"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentRequired"}}}},"500":{"description":"Service error. Not charged.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Facilitator unavailable. Not charged. Retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/try/web-scrape":{"post":{"operationId":"try_web_scrape","summary":"Free trial: Web Scrape (URL to Markdown)","description":"Same output as the paid endpoint, limited per IP and day. Send an empty body to use the example input.","tags":["trial"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","required":["url"],"properties":{"url":{"type":"string","format":"uri","description":"Public http(s) URL to scrape"},"max_chars":{"type":"integer","default":8000,"maximum":60000,"description":"Truncate Markdown after this many characters"},"include_links":{"type":"boolean","default":false,"description":"Also return up to 100 absolute links found on the page"},"render":{"type":"boolean","default":false,"description":"Render with a headless browser (for JavaScript-heavy pages). Returns plain text instead of Markdown."}}},"example":{"url":"https://example.com","max_chars":8000}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"type":"object","required":["url","status","title","markdown","word_count","truncated","fetched_at"],"properties":{"url":{"type":"string","description":"Final URL after redirects"},"status":{"type":"integer","description":"HTTP status of the fetched page"},"title":{"type":"string"},"description":{"type":"string","description":"Meta description if present"},"markdown":{"type":"string","description":"Page content as Markdown"},"word_count":{"type":"integer"},"truncated":{"type":"boolean"},"rendered":{"type":"boolean","description":"True if a headless browser was used"},"links":{"type":"array","items":{"type":"object","properties":{"text":{"type":"string"},"href":{"type":"string"}}}},"fetch_ms":{"type":"integer"},"fetched_at":{"type":"string","format":"date-time"}},"example":{"url":"https://example.com/","status":200,"title":"Example Domain","description":"","markdown":"# Example Domain\n\nThis domain is for use in illustrative examples in documents.\n\n[More information...](https://www.iana.org/domains/example)","word_count":21,"truncated":false,"rendered":false,"fetch_ms":312,"fetched_at":"2026-09-09T12:00:00.000Z"}},"trial":{"type":"object"},"paid_endpoint":{"type":"string"},"price_usdc":{"type":"number"}}}}}},"429":{"description":"Trial limit reached for today","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/proxy/rss-fetch":{"post":{"operationId":"rss_fetch","summary":"RSS / Atom Feed to JSON ($0.002 USDC per call)","description":"Fetch an RSS 2.0, RSS 1.0 or Atom feed and return normalized JSON items (title, link, published_at ISO 8601, summary without HTML, author, guid). Use for monitoring blogs, news sites, GitHub releases, podcasts or any feed URL without writing an XML parser. Params: url (required), limit (default 20, max 100).\n\nPrice: $0.002 USDC per successful call, paid via x402 (USDC on Base mainnet). Without a payment header the response is HTTP 402 with the requirements. Free trial: POST https://agentsvc.io/api/v1/try/rss-fetch","tags":["web"],"x-price-usdc":0.002,"x-x402":{"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x622efA6Ceb83a5b6EdBC931332f4db68B7f74F27","scheme":"exact","amount":"2000"},"parameters":[{"name":"PAYMENT-SIGNATURE","in":"header","required":false,"schema":{"type":"string"},"description":"x402 v2 payment payload (base64 JSON). Sent automatically by @x402/fetch or x402 python."},{"name":"X-PAYMENT","in":"header","required":false,"schema":{"type":"string"},"description":"x402 v1 payment payload (base64 JSON)."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["url"],"properties":{"url":{"type":"string","format":"uri","description":"Feed URL (RSS or Atom)"},"limit":{"type":"integer","default":20,"maximum":100,"description":"Maximum number of items to return"}}},"example":{"url":"https://hnrss.org/frontpage","limit":10}}}},"responses":{"200":{"description":"Success. Payment settled on-chain; receipt in PAYMENT-RESPONSE header.","headers":{"PAYMENT-RESPONSE":{"schema":{"type":"string"},"description":"base64 JSON {success, transaction, network, payer}"},"X-Latency-Ms":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["success","data"],"properties":{"success":{"type":"boolean","const":true},"data":{"type":"object","required":["feed","items","item_count","fetched_at"],"properties":{"feed":{"type":"object","properties":{"title":{"type":"string"},"link":{"type":"string"},"description":{"type":"string"},"format":{"type":"string","enum":["rss","atom","rss1"]},"url":{"type":"string"}}},"items":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"link":{"type":"string"},"published_at":{"type":"string"},"summary":{"type":"string"},"author":{"type":"string"},"guid":{"type":"string"}}}},"item_count":{"type":"integer"},"total_in_feed":{"type":"integer"},"fetched_at":{"type":"string","format":"date-time"}},"example":{"feed":{"title":"Hacker News: Front Page","link":"https://news.ycombinator.com/","description":"Hacker News RSS","format":"rss","url":"https://hnrss.org/frontpage"},"items":[{"title":"Show HN: An x402 marketplace for agents","link":"https://news.ycombinator.com/item?id=1","published_at":"2026-09-09T10:12:00.000Z","summary":"Article URL: https://agentsvc.io","author":"jakob","guid":"https://news.ycombinator.com/item?id=1"}],"item_count":1,"total_in_feed":30,"fetched_at":"2026-09-09T12:00:00.000Z"}},"payment":{"type":"object","properties":{"settled":{"type":"boolean"},"amount_usdc":{"type":"number"},"transaction":{"type":"string"},"network":{"type":"string"},"payer":{"type":"string"},"explorer":{"type":"string"}}}}},"example":{"success":true,"data":{"feed":{"title":"Hacker News: Front Page","link":"https://news.ycombinator.com/","description":"Hacker News RSS","format":"rss","url":"https://hnrss.org/frontpage"},"items":[{"title":"Show HN: An x402 marketplace for agents","link":"https://news.ycombinator.com/item?id=1","published_at":"2026-09-09T10:12:00.000Z","summary":"Article URL: https://agentsvc.io","author":"jakob","guid":"https://news.ycombinator.com/item?id=1"}],"item_count":1,"total_in_feed":30,"fetched_at":"2026-09-09T12:00:00.000Z"},"payment":{"settled":true,"amount_usdc":0.002,"transaction":"0x…","network":"eip155:8453","payer":"0x…"}}}}},"400":{"description":"Invalid input. Not charged. Body includes example_input and input_schema.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment required or payment rejected. Body: x402 v1 PaymentRequired plus hint. Header PAYMENT-REQUIRED: x402 v2 PaymentRequired (base64 JSON).","headers":{"PAYMENT-REQUIRED":{"schema":{"type":"string"},"description":"base64 JSON x402 v2 PaymentRequired"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentRequired"}}}},"500":{"description":"Service error. Not charged.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Facilitator unavailable. Not charged. Retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/try/rss-fetch":{"post":{"operationId":"try_rss_fetch","summary":"Free trial: RSS / Atom Feed to JSON","description":"Same output as the paid endpoint, limited per IP and day. Send an empty body to use the example input.","tags":["trial"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","required":["url"],"properties":{"url":{"type":"string","format":"uri","description":"Feed URL (RSS or Atom)"},"limit":{"type":"integer","default":20,"maximum":100,"description":"Maximum number of items to return"}}},"example":{"url":"https://hnrss.org/frontpage","limit":10}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"type":"object","required":["feed","items","item_count","fetched_at"],"properties":{"feed":{"type":"object","properties":{"title":{"type":"string"},"link":{"type":"string"},"description":{"type":"string"},"format":{"type":"string","enum":["rss","atom","rss1"]},"url":{"type":"string"}}},"items":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"link":{"type":"string"},"published_at":{"type":"string"},"summary":{"type":"string"},"author":{"type":"string"},"guid":{"type":"string"}}}},"item_count":{"type":"integer"},"total_in_feed":{"type":"integer"},"fetched_at":{"type":"string","format":"date-time"}},"example":{"feed":{"title":"Hacker News: Front Page","link":"https://news.ycombinator.com/","description":"Hacker News RSS","format":"rss","url":"https://hnrss.org/frontpage"},"items":[{"title":"Show HN: An x402 marketplace for agents","link":"https://news.ycombinator.com/item?id=1","published_at":"2026-09-09T10:12:00.000Z","summary":"Article URL: https://agentsvc.io","author":"jakob","guid":"https://news.ycombinator.com/item?id=1"}],"item_count":1,"total_in_feed":30,"fetched_at":"2026-09-09T12:00:00.000Z"}},"trial":{"type":"object"},"paid_endpoint":{"type":"string"},"price_usdc":{"type":"number"}}}}}},"429":{"description":"Trial limit reached for today","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/proxy/url-status":{"post":{"operationId":"url_status","summary":"URL Status & Redirect Check ($0.002 USDC per call)","description":"Check whether a URL is reachable and what it returns: final status code, full redirect chain, response time, content-type, server header and content length. Use for link validation, uptime checks, canonical URL resolution or before spending money on a scrape/screenshot. Params: url (required), method (GET default, or HEAD).\n\nPrice: $0.002 USDC per successful call, paid via x402 (USDC on Base mainnet). Without a payment header the response is HTTP 402 with the requirements. Free trial: POST https://agentsvc.io/api/v1/try/url-status","tags":["utility"],"x-price-usdc":0.002,"x-x402":{"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x622efA6Ceb83a5b6EdBC931332f4db68B7f74F27","scheme":"exact","amount":"2000"},"parameters":[{"name":"PAYMENT-SIGNATURE","in":"header","required":false,"schema":{"type":"string"},"description":"x402 v2 payment payload (base64 JSON). Sent automatically by @x402/fetch or x402 python."},{"name":"X-PAYMENT","in":"header","required":false,"schema":{"type":"string"},"description":"x402 v1 payment payload (base64 JSON)."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["url"],"properties":{"url":{"type":"string","format":"uri","description":"URL to check"},"method":{"type":"string","enum":["GET","HEAD"],"default":"GET"}}},"example":{"url":"https://example.com"}}}},"responses":{"200":{"description":"Success. Payment settled on-chain; receipt in PAYMENT-RESPONSE header.","headers":{"PAYMENT-RESPONSE":{"schema":{"type":"string"},"description":"base64 JSON {success, transaction, network, payer}"},"X-Latency-Ms":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["success","data"],"properties":{"success":{"type":"boolean","const":true},"data":{"type":"object","required":["url","ok","reachable","checked_at"],"properties":{"url":{"type":"string"},"final_url":{"type":"string"},"status":{"type":"integer"},"ok":{"type":"boolean","description":"True for 2xx/3xx final status"},"reachable":{"type":"boolean"},"redirect_count":{"type":"integer"},"redirects":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string"},"status":{"type":"integer"},"location":{"type":"string"},"ms":{"type":"integer"}}}},"response_ms":{"type":"integer"},"content_type":{"type":"string"},"content_length":{"type":"integer"},"server":{"type":"string"},"https":{"type":"boolean"},"error":{"type":"string"},"checked_at":{"type":"string","format":"date-time"}},"example":{"url":"http://github.com","final_url":"https://github.com/","status":200,"ok":true,"reachable":true,"redirect_count":1,"redirects":[{"url":"http://github.com/","status":301,"location":"https://github.com/","ms":48},{"url":"https://github.com/","status":200,"ms":210}],"response_ms":258,"content_type":"text/html; charset=utf-8","content_length":284421,"server":"GitHub.com","https":true,"checked_at":"2026-09-09T12:00:00.000Z"}},"payment":{"type":"object","properties":{"settled":{"type":"boolean"},"amount_usdc":{"type":"number"},"transaction":{"type":"string"},"network":{"type":"string"},"payer":{"type":"string"},"explorer":{"type":"string"}}}}},"example":{"success":true,"data":{"url":"http://github.com","final_url":"https://github.com/","status":200,"ok":true,"reachable":true,"redirect_count":1,"redirects":[{"url":"http://github.com/","status":301,"location":"https://github.com/","ms":48},{"url":"https://github.com/","status":200,"ms":210}],"response_ms":258,"content_type":"text/html; charset=utf-8","content_length":284421,"server":"GitHub.com","https":true,"checked_at":"2026-09-09T12:00:00.000Z"},"payment":{"settled":true,"amount_usdc":0.002,"transaction":"0x…","network":"eip155:8453","payer":"0x…"}}}}},"400":{"description":"Invalid input. Not charged. Body includes example_input and input_schema.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment required or payment rejected. Body: x402 v1 PaymentRequired plus hint. Header PAYMENT-REQUIRED: x402 v2 PaymentRequired (base64 JSON).","headers":{"PAYMENT-REQUIRED":{"schema":{"type":"string"},"description":"base64 JSON x402 v2 PaymentRequired"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentRequired"}}}},"500":{"description":"Service error. Not charged.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Facilitator unavailable. Not charged. Retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/try/url-status":{"post":{"operationId":"try_url_status","summary":"Free trial: URL Status & Redirect Check","description":"Same output as the paid endpoint, limited per IP and day. Send an empty body to use the example input.","tags":["trial"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","required":["url"],"properties":{"url":{"type":"string","format":"uri","description":"URL to check"},"method":{"type":"string","enum":["GET","HEAD"],"default":"GET"}}},"example":{"url":"https://example.com"}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"type":"object","required":["url","ok","reachable","checked_at"],"properties":{"url":{"type":"string"},"final_url":{"type":"string"},"status":{"type":"integer"},"ok":{"type":"boolean","description":"True for 2xx/3xx final status"},"reachable":{"type":"boolean"},"redirect_count":{"type":"integer"},"redirects":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string"},"status":{"type":"integer"},"location":{"type":"string"},"ms":{"type":"integer"}}}},"response_ms":{"type":"integer"},"content_type":{"type":"string"},"content_length":{"type":"integer"},"server":{"type":"string"},"https":{"type":"boolean"},"error":{"type":"string"},"checked_at":{"type":"string","format":"date-time"}},"example":{"url":"http://github.com","final_url":"https://github.com/","status":200,"ok":true,"reachable":true,"redirect_count":1,"redirects":[{"url":"http://github.com/","status":301,"location":"https://github.com/","ms":48},{"url":"https://github.com/","status":200,"ms":210}],"response_ms":258,"content_type":"text/html; charset=utf-8","content_length":284421,"server":"GitHub.com","https":true,"checked_at":"2026-09-09T12:00:00.000Z"}},"trial":{"type":"object"},"paid_endpoint":{"type":"string"},"price_usdc":{"type":"number"}}}}}},"429":{"description":"Trial limit reached for today","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/proxy/evm-balance":{"post":{"operationId":"evm_balance","summary":"Wallet Balance on Base ($0.002 USDC per call)","description":"Read the ETH and USDC balance of any address on Base mainnet (chain 8453) straight from the chain, plus transaction count and how many x402 calls the USDC covers. Use it to check your own agent wallet before a paid workflow, to verify a counterparty was paid, or to monitor treasury addresses. Params: address (required, 0x...).\n\nPrice: $0.002 USDC per successful call, paid via x402 (USDC on Base mainnet). Without a payment header the response is HTTP 402 with the requirements. Free trial: POST https://agentsvc.io/api/v1/try/evm-balance","tags":["finance"],"x-price-usdc":0.002,"x-x402":{"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x622efA6Ceb83a5b6EdBC931332f4db68B7f74F27","scheme":"exact","amount":"2000"},"parameters":[{"name":"PAYMENT-SIGNATURE","in":"header","required":false,"schema":{"type":"string"},"description":"x402 v2 payment payload (base64 JSON). Sent automatically by @x402/fetch or x402 python."},{"name":"X-PAYMENT","in":"header","required":false,"schema":{"type":"string"},"description":"x402 v1 payment payload (base64 JSON)."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["address"],"properties":{"address":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$","description":"EVM address on Base"}}},"example":{"address":"0x622efA6Ceb83a5b6EdBC931332f4db68B7f74F27"}}}},"responses":{"200":{"description":"Success. Payment settled on-chain; receipt in PAYMENT-RESPONSE header.","headers":{"PAYMENT-RESPONSE":{"schema":{"type":"string"},"description":"base64 JSON {success, transaction, network, payer}"},"X-Latency-Ms":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["success","data"],"properties":{"success":{"type":"boolean","const":true},"data":{"type":"object","required":["address","network","eth","usdc","usdc_atomic","block_number","checked_at"],"properties":{"address":{"type":"string"},"network":{"type":"string","enum":["base"]},"chain_id":{"type":"integer"},"eth":{"type":"string","description":"ETH balance as decimal string"},"eth_wei":{"type":"string"},"usdc":{"type":"string","description":"USDC balance as decimal string (6 decimals)"},"usdc_atomic":{"type":"string"},"usdc_contract":{"type":"string"},"tx_count":{"type":"integer"},"block_number":{"type":"integer"},"x402_calls_affordable":{"type":"object","properties":{"at_0_002":{"type":"integer"},"at_0_005":{"type":"integer"}}},"checked_at":{"type":"string","format":"date-time"}},"example":{"address":"0x622efA6Ceb83a5b6EdBC931332f4db68B7f74F27","network":"base","chain_id":8453,"eth":"0.0041","eth_wei":"4100000000000000","usdc":"12.5","usdc_atomic":"12500000","usdc_contract":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","tx_count":17,"block_number":41234567,"x402_calls_affordable":{"at_0_002":6250,"at_0_005":2500},"checked_at":"2026-09-09T12:00:00.000Z"}},"payment":{"type":"object","properties":{"settled":{"type":"boolean"},"amount_usdc":{"type":"number"},"transaction":{"type":"string"},"network":{"type":"string"},"payer":{"type":"string"},"explorer":{"type":"string"}}}}},"example":{"success":true,"data":{"address":"0x622efA6Ceb83a5b6EdBC931332f4db68B7f74F27","network":"base","chain_id":8453,"eth":"0.0041","eth_wei":"4100000000000000","usdc":"12.5","usdc_atomic":"12500000","usdc_contract":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","tx_count":17,"block_number":41234567,"x402_calls_affordable":{"at_0_002":6250,"at_0_005":2500},"checked_at":"2026-09-09T12:00:00.000Z"},"payment":{"settled":true,"amount_usdc":0.002,"transaction":"0x…","network":"eip155:8453","payer":"0x…"}}}}},"400":{"description":"Invalid input. Not charged. Body includes example_input and input_schema.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment required or payment rejected. Body: x402 v1 PaymentRequired plus hint. Header PAYMENT-REQUIRED: x402 v2 PaymentRequired (base64 JSON).","headers":{"PAYMENT-REQUIRED":{"schema":{"type":"string"},"description":"base64 JSON x402 v2 PaymentRequired"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentRequired"}}}},"500":{"description":"Service error. Not charged.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Facilitator unavailable. Not charged. Retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/try/evm-balance":{"post":{"operationId":"try_evm_balance","summary":"Free trial: Wallet Balance on Base","description":"Same output as the paid endpoint, limited per IP and day. Send an empty body to use the example input.","tags":["trial"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","required":["address"],"properties":{"address":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$","description":"EVM address on Base"}}},"example":{"address":"0x622efA6Ceb83a5b6EdBC931332f4db68B7f74F27"}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"type":"object","required":["address","network","eth","usdc","usdc_atomic","block_number","checked_at"],"properties":{"address":{"type":"string"},"network":{"type":"string","enum":["base"]},"chain_id":{"type":"integer"},"eth":{"type":"string","description":"ETH balance as decimal string"},"eth_wei":{"type":"string"},"usdc":{"type":"string","description":"USDC balance as decimal string (6 decimals)"},"usdc_atomic":{"type":"string"},"usdc_contract":{"type":"string"},"tx_count":{"type":"integer"},"block_number":{"type":"integer"},"x402_calls_affordable":{"type":"object","properties":{"at_0_002":{"type":"integer"},"at_0_005":{"type":"integer"}}},"checked_at":{"type":"string","format":"date-time"}},"example":{"address":"0x622efA6Ceb83a5b6EdBC931332f4db68B7f74F27","network":"base","chain_id":8453,"eth":"0.0041","eth_wei":"4100000000000000","usdc":"12.5","usdc_atomic":"12500000","usdc_contract":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","tx_count":17,"block_number":41234567,"x402_calls_affordable":{"at_0_002":6250,"at_0_005":2500},"checked_at":"2026-09-09T12:00:00.000Z"}},"trial":{"type":"object"},"paid_endpoint":{"type":"string"},"price_usdc":{"type":"number"}}}}}},"429":{"description":"Trial limit reached for today","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/proxy/barcode":{"post":{"operationId":"barcode","summary":"Barcode Generator ($0.002 USDC per call)","description":"Generate a barcode as PNG (base64): code128 (default), ean13, ean8, upca, upce, code39, itf14, gs1_128, isbn, datamatrix, pdf417, aztec or qr. Validates check digits for EAN/UPC. Use for labels, shipping, inventory, tickets or invoices. Params: text (required), type, scale (1-8, default 3), include_text boolean (human-readable text under the bars).\n\nPrice: $0.002 USDC per successful call, paid via x402 (USDC on Base mainnet). Without a payment header the response is HTTP 402 with the requirements. Free trial: POST https://agentsvc.io/api/v1/try/barcode","tags":["utility"],"x-price-usdc":0.002,"x-x402":{"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x622efA6Ceb83a5b6EdBC931332f4db68B7f74F27","scheme":"exact","amount":"2000"},"parameters":[{"name":"PAYMENT-SIGNATURE","in":"header","required":false,"schema":{"type":"string"},"description":"x402 v2 payment payload (base64 JSON). Sent automatically by @x402/fetch or x402 python."},{"name":"X-PAYMENT","in":"header","required":false,"schema":{"type":"string"},"description":"x402 v1 payment payload (base64 JSON)."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["text"],"properties":{"text":{"type":"string","maxLength":500,"description":"Data to encode"},"type":{"type":"string","default":"code128","enum":["code128","ean13","ean8","upca","upce","code39","itf14","gs1_128","isbn","datamatrix","pdf417","aztec","qr"]},"scale":{"type":"integer","default":3,"minimum":1,"maximum":8},"include_text":{"type":"boolean","default":true}}},"example":{"text":"4006381333931","type":"ean13"}}}},"responses":{"200":{"description":"Success. Payment settled on-chain; receipt in PAYMENT-RESPONSE header.","headers":{"PAYMENT-RESPONSE":{"schema":{"type":"string"},"description":"base64 JSON {success, transaction, network, payer}"},"X-Latency-Ms":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["success","data"],"properties":{"success":{"type":"boolean","const":true},"data":{"type":"object","required":["image_base64","format","type","text","width","height"],"properties":{"image_base64":{"type":"string","description":"Base64-encoded PNG"},"format":{"type":"string","enum":["png"]},"type":{"type":"string"},"text":{"type":"string"},"width":{"type":"integer"},"height":{"type":"integer"},"size_bytes":{"type":"integer"}},"example":{"image_base64":"iVBORw0KGgoAAAANSUhEUgAAAM...","format":"png","type":"ean13","text":"4006381333931","width":342,"height":132,"size_bytes":1840}},"payment":{"type":"object","properties":{"settled":{"type":"boolean"},"amount_usdc":{"type":"number"},"transaction":{"type":"string"},"network":{"type":"string"},"payer":{"type":"string"},"explorer":{"type":"string"}}}}},"example":{"success":true,"data":{"image_base64":"iVBORw0KGgoAAAANSUhEUgAAAM...","format":"png","type":"ean13","text":"4006381333931","width":342,"height":132,"size_bytes":1840},"payment":{"settled":true,"amount_usdc":0.002,"transaction":"0x…","network":"eip155:8453","payer":"0x…"}}}}},"400":{"description":"Invalid input. Not charged. Body includes example_input and input_schema.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment required or payment rejected. Body: x402 v1 PaymentRequired plus hint. Header PAYMENT-REQUIRED: x402 v2 PaymentRequired (base64 JSON).","headers":{"PAYMENT-REQUIRED":{"schema":{"type":"string"},"description":"base64 JSON x402 v2 PaymentRequired"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentRequired"}}}},"500":{"description":"Service error. Not charged.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Facilitator unavailable. Not charged. Retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/try/barcode":{"post":{"operationId":"try_barcode","summary":"Free trial: Barcode Generator","description":"Same output as the paid endpoint, limited per IP and day. Send an empty body to use the example input.","tags":["trial"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","required":["text"],"properties":{"text":{"type":"string","maxLength":500,"description":"Data to encode"},"type":{"type":"string","default":"code128","enum":["code128","ean13","ean8","upca","upce","code39","itf14","gs1_128","isbn","datamatrix","pdf417","aztec","qr"]},"scale":{"type":"integer","default":3,"minimum":1,"maximum":8},"include_text":{"type":"boolean","default":true}}},"example":{"text":"4006381333931","type":"ean13"}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"type":"object","required":["image_base64","format","type","text","width","height"],"properties":{"image_base64":{"type":"string","description":"Base64-encoded PNG"},"format":{"type":"string","enum":["png"]},"type":{"type":"string"},"text":{"type":"string"},"width":{"type":"integer"},"height":{"type":"integer"},"size_bytes":{"type":"integer"}},"example":{"image_base64":"iVBORw0KGgoAAAANSUhEUgAAAM...","format":"png","type":"ean13","text":"4006381333931","width":342,"height":132,"size_bytes":1840}},"trial":{"type":"object"},"paid_endpoint":{"type":"string"},"price_usdc":{"type":"number"}}}}}},"429":{"description":"Trial limit reached for today","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/proxy/image-resize":{"post":{"operationId":"image_resize","summary":"Image Resize & Convert ($0.003 USDC per call)","description":"Resize, crop-fit and convert images (PNG, JPEG, WebP, AVIF, GIF, TIFF, SVG input) to webp, png, jpeg or avif. Auto-rotates by EXIF. Use to shrink screenshots before sending them to a vision model, create thumbnails, or convert formats. Params: image_base64 or image_url (one required), width, height (max 4096), fit (inside default | cover | contain | fill), format (webp default), quality (1-100, default 80).\n\nPrice: $0.003 USDC per successful call, paid via x402 (USDC on Base mainnet). Without a payment header the response is HTTP 402 with the requirements. Free trial: POST https://agentsvc.io/api/v1/try/image-resize","tags":["visual"],"x-price-usdc":0.003,"x-x402":{"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x622efA6Ceb83a5b6EdBC931332f4db68B7f74F27","scheme":"exact","amount":"3000"},"parameters":[{"name":"PAYMENT-SIGNATURE","in":"header","required":false,"schema":{"type":"string"},"description":"x402 v2 payment payload (base64 JSON). Sent automatically by @x402/fetch or x402 python."},{"name":"X-PAYMENT","in":"header","required":false,"schema":{"type":"string"},"description":"x402 v1 payment payload (base64 JSON)."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"image_base64":{"type":"string","description":"Base64 image data (data: URI prefix allowed)"},"image_url":{"type":"string","format":"uri","description":"Public URL of the image (max 15 MB)"},"width":{"type":"integer","maximum":4096},"height":{"type":"integer","maximum":4096},"fit":{"type":"string","enum":["inside","cover","contain","fill"],"default":"inside"},"format":{"type":"string","enum":["webp","png","jpeg","avif"],"default":"webp"},"quality":{"type":"integer","minimum":1,"maximum":100,"default":80}}},"example":{"image_url":"https://agentsvc.io/sample.png","width":130,"format":"webp"}}}},"responses":{"200":{"description":"Success. Payment settled on-chain; receipt in PAYMENT-RESPONSE header.","headers":{"PAYMENT-RESPONSE":{"schema":{"type":"string"},"description":"base64 JSON {success, transaction, network, payer}"},"X-Latency-Ms":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["success","data"],"properties":{"success":{"type":"boolean","const":true},"data":{"type":"object","required":["image_base64","format","width","height","size_bytes","original"],"properties":{"image_base64":{"type":"string"},"format":{"type":"string"},"width":{"type":"integer"},"height":{"type":"integer"},"size_bytes":{"type":"integer"},"original":{"type":"object","properties":{"width":{"type":"integer"},"height":{"type":"integer"},"format":{"type":"string"},"size_bytes":{"type":"integer"}}}},"example":{"image_base64":"UklGRiQAAABXRUJQVlA4...","format":"webp","width":320,"height":200,"size_bytes":6120,"original":{"width":1280,"height":800,"format":"png","size_bytes":214000}}},"payment":{"type":"object","properties":{"settled":{"type":"boolean"},"amount_usdc":{"type":"number"},"transaction":{"type":"string"},"network":{"type":"string"},"payer":{"type":"string"},"explorer":{"type":"string"}}}}},"example":{"success":true,"data":{"image_base64":"UklGRiQAAABXRUJQVlA4...","format":"webp","width":320,"height":200,"size_bytes":6120,"original":{"width":1280,"height":800,"format":"png","size_bytes":214000}},"payment":{"settled":true,"amount_usdc":0.003,"transaction":"0x…","network":"eip155:8453","payer":"0x…"}}}}},"400":{"description":"Invalid input. Not charged. Body includes example_input and input_schema.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment required or payment rejected. Body: x402 v1 PaymentRequired plus hint. Header PAYMENT-REQUIRED: x402 v2 PaymentRequired (base64 JSON).","headers":{"PAYMENT-REQUIRED":{"schema":{"type":"string"},"description":"base64 JSON x402 v2 PaymentRequired"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentRequired"}}}},"500":{"description":"Service error. Not charged.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Facilitator unavailable. Not charged. Retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/try/image-resize":{"post":{"operationId":"try_image_resize","summary":"Free trial: Image Resize & Convert","description":"Same output as the paid endpoint, limited per IP and day. Send an empty body to use the example input.","tags":["trial"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"image_base64":{"type":"string","description":"Base64 image data (data: URI prefix allowed)"},"image_url":{"type":"string","format":"uri","description":"Public URL of the image (max 15 MB)"},"width":{"type":"integer","maximum":4096},"height":{"type":"integer","maximum":4096},"fit":{"type":"string","enum":["inside","cover","contain","fill"],"default":"inside"},"format":{"type":"string","enum":["webp","png","jpeg","avif"],"default":"webp"},"quality":{"type":"integer","minimum":1,"maximum":100,"default":80}}},"example":{"image_url":"https://agentsvc.io/sample.png","width":130,"format":"webp"}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"type":"object","required":["image_base64","format","width","height","size_bytes","original"],"properties":{"image_base64":{"type":"string"},"format":{"type":"string"},"width":{"type":"integer"},"height":{"type":"integer"},"size_bytes":{"type":"integer"},"original":{"type":"object","properties":{"width":{"type":"integer"},"height":{"type":"integer"},"format":{"type":"string"},"size_bytes":{"type":"integer"}}}},"example":{"image_base64":"UklGRiQAAABXRUJQVlA4...","format":"webp","width":320,"height":200,"size_bytes":6120,"original":{"width":1280,"height":800,"format":"png","size_bytes":214000}}},"trial":{"type":"object"},"paid_endpoint":{"type":"string"},"price_usdc":{"type":"number"}}}}}},"429":{"description":"Trial limit reached for today","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/proxy/timezone":{"post":{"operationId":"timezone","summary":"Timezone & Local Time ($0.002 USDC per call)","description":"Resolve a city name or coordinates to its IANA timezone and return the current local time, UTC offset, DST flag and weekday. Use for scheduling across regions, 'what time is it in X', or normalizing timestamps. Params: location (required, e.g. 'Tokyo' or '35.68,139.69').\n\nPrice: $0.002 USDC per successful call, paid via x402 (USDC on Base mainnet). Without a payment header the response is HTTP 402 with the requirements. Free trial: POST https://agentsvc.io/api/v1/try/timezone","tags":["data"],"x-price-usdc":0.002,"x-x402":{"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x622efA6Ceb83a5b6EdBC931332f4db68B7f74F27","scheme":"exact","amount":"2000"},"parameters":[{"name":"PAYMENT-SIGNATURE","in":"header","required":false,"schema":{"type":"string"},"description":"x402 v2 payment payload (base64 JSON). Sent automatically by @x402/fetch or x402 python."},{"name":"X-PAYMENT","in":"header","required":false,"schema":{"type":"string"},"description":"x402 v1 payment payload (base64 JSON)."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["location"],"properties":{"location":{"type":"string","description":"City name or 'lat,lon'"}}},"example":{"location":"Tokyo"}}}},"responses":{"200":{"description":"Success. Payment settled on-chain; receipt in PAYMENT-RESPONSE header.","headers":{"PAYMENT-RESPONSE":{"schema":{"type":"string"},"description":"base64 JSON {success, transaction, network, payer}"},"X-Latency-Ms":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["success","data"],"properties":{"success":{"type":"boolean","const":true},"data":{"type":"object","required":["location","timezone","utc_offset","local_time","utc_time"],"properties":{"location":{"type":"object","properties":{"name":{"type":"string"},"country":{"type":"string"},"lat":{"type":"number"},"lon":{"type":"number"}}},"timezone":{"type":"string","description":"IANA timezone, e.g. Asia/Tokyo"},"abbreviation":{"type":"string"},"utc_offset":{"type":"string","description":"e.g. +09:00"},"utc_offset_seconds":{"type":"integer"},"is_dst":{"type":"boolean"},"local_time":{"type":"string","description":"ISO 8601 with offset"},"local_date":{"type":"string"},"weekday":{"type":"string"},"utc_time":{"type":"string","format":"date-time"},"unix_time":{"type":"integer"}},"example":{"location":{"name":"Tokyo","country":"Japan","lat":35.6895,"lon":139.6917},"timezone":"Asia/Tokyo","abbreviation":"JST","utc_offset":"+09:00","utc_offset_seconds":32400,"is_dst":false,"local_time":"2026-09-09T21:00:00+09:00","local_date":"2026-09-09","weekday":"Wednesday","utc_time":"2026-09-09T12:00:00.000Z","unix_time":1788955200}},"payment":{"type":"object","properties":{"settled":{"type":"boolean"},"amount_usdc":{"type":"number"},"transaction":{"type":"string"},"network":{"type":"string"},"payer":{"type":"string"},"explorer":{"type":"string"}}}}},"example":{"success":true,"data":{"location":{"name":"Tokyo","country":"Japan","lat":35.6895,"lon":139.6917},"timezone":"Asia/Tokyo","abbreviation":"JST","utc_offset":"+09:00","utc_offset_seconds":32400,"is_dst":false,"local_time":"2026-09-09T21:00:00+09:00","local_date":"2026-09-09","weekday":"Wednesday","utc_time":"2026-09-09T12:00:00.000Z","unix_time":1788955200},"payment":{"settled":true,"amount_usdc":0.002,"transaction":"0x…","network":"eip155:8453","payer":"0x…"}}}}},"400":{"description":"Invalid input. Not charged. Body includes example_input and input_schema.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment required or payment rejected. Body: x402 v1 PaymentRequired plus hint. Header PAYMENT-REQUIRED: x402 v2 PaymentRequired (base64 JSON).","headers":{"PAYMENT-REQUIRED":{"schema":{"type":"string"},"description":"base64 JSON x402 v2 PaymentRequired"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentRequired"}}}},"500":{"description":"Service error. Not charged.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Facilitator unavailable. Not charged. Retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/try/timezone":{"post":{"operationId":"try_timezone","summary":"Free trial: Timezone & Local Time","description":"Same output as the paid endpoint, limited per IP and day. Send an empty body to use the example input.","tags":["trial"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","required":["location"],"properties":{"location":{"type":"string","description":"City name or 'lat,lon'"}}},"example":{"location":"Tokyo"}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"type":"object","required":["location","timezone","utc_offset","local_time","utc_time"],"properties":{"location":{"type":"object","properties":{"name":{"type":"string"},"country":{"type":"string"},"lat":{"type":"number"},"lon":{"type":"number"}}},"timezone":{"type":"string","description":"IANA timezone, e.g. Asia/Tokyo"},"abbreviation":{"type":"string"},"utc_offset":{"type":"string","description":"e.g. +09:00"},"utc_offset_seconds":{"type":"integer"},"is_dst":{"type":"boolean"},"local_time":{"type":"string","description":"ISO 8601 with offset"},"local_date":{"type":"string"},"weekday":{"type":"string"},"utc_time":{"type":"string","format":"date-time"},"unix_time":{"type":"integer"}},"example":{"location":{"name":"Tokyo","country":"Japan","lat":35.6895,"lon":139.6917},"timezone":"Asia/Tokyo","abbreviation":"JST","utc_offset":"+09:00","utc_offset_seconds":32400,"is_dst":false,"local_time":"2026-09-09T21:00:00+09:00","local_date":"2026-09-09","weekday":"Wednesday","utc_time":"2026-09-09T12:00:00.000Z","unix_time":1788955200}},"trial":{"type":"object"},"paid_endpoint":{"type":"string"},"price_usdc":{"type":"number"}}}}}},"429":{"description":"Trial limit reached for today","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/services":{"get":{"operationId":"list_services","summary":"List all services with schemas, prices, example inputs and live status","tags":["catalog"],"parameters":[{"name":"q","in":"query","schema":{"type":"string"},"description":"Full-text filter over slug, name, description, tags"},{"name":"category","in":"query","schema":{"type":"string","enum":["web","visual","text","data","utility","finance"]}},{"name":"max_price","in":"query","schema":{"type":"number"}}],"responses":{"200":{"description":"Catalog","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/api/v1/services/{slug}":{"get":{"operationId":"get_service","summary":"Service details","tags":["catalog"],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Service"},"404":{"description":"Not found"}}}},"/api/v1/status":{"get":{"operationId":"get_status","summary":"Live self-test status of every service","tags":["catalog"],"responses":{"200":{"description":"Status"}}}}},"components":{"securitySchemes":{"x402":{"type":"apiKey","in":"header","name":"PAYMENT-SIGNATURE","description":"x402 payment payload. Obtain by signing the requirements from the 402 response; x402 client libraries do this automatically. x402 v1 clients use the X-PAYMENT header instead."}},"schemas":{"Error":{"type":"object","required":["success","error"],"properties":{"success":{"type":"boolean","const":false},"error":{"type":"string"},"message":{"type":"string"},"hint":{"type":"string"},"charged":{"type":"boolean"},"example_input":{"type":"object"}}},"PaymentRequired":{"type":"object","properties":{"x402Version":{"type":"integer","const":1},"error":{"type":"string","description":"payment_required or a rejection code such as insufficient_funds, wrong_network, amount_too_low, authorization_expired, invalid_signature, payment_already_used"},"accepts":{"type":"array","items":{"type":"object","properties":{"scheme":{"type":"string"},"network":{"type":"string"},"maxAmountRequired":{"type":"string"},"resource":{"type":"string"},"asset":{"type":"string"},"payTo":{"type":"string"},"maxTimeoutSeconds":{"type":"integer"},"extra":{"type":"object"}}}},"hint":{"type":"string","description":"Plain-language instruction for the agent"},"payment":{"type":"object"},"try_free":{"type":"string","format":"uri"},"docs":{"type":"string","format":"uri"}}}}},"security":[{"x402":[]}],"externalDocs":{"description":"Guide for LLMs and agents","url":"https://agentsvc.io/llms-full.txt"}}