{"openapi":"3.1.0","info":{"title":"Curl HTTP Request","description":"Send an HTTP request to any URL from our servers and receive the full response — including the status code, all response headers, and the body content. Supports GET, POST, PUT, PATCH, DELETE, and HEAD. Automatically follows up to 3 redirects. Useful for testing endpoints, verifying servers are responding correctly, debugging redirect chains, or fetching raw data without needing a local setup.","version":"1.0.0","contact":{"name":"_done","url":"https://forms.gle/5KzuSFH7p8hHtDmz7","email":"info@underscoredone.com"},"x-openapi-url":"https://curl-http-request.underscoredone.com/openapi.json","x-logo":{"url":"https://underscoredone.com/logo.png","altText":"_done"},"x-guidance":"Send a JSON body with a 'url' (required, must start with http:// or https://) and an optional 'method' field (defaults to GET). The response includes 'statusCode' (integer), 'headers' (object of key-value strings), 'body' (string, may be HTML, JSON, or plain text), 'durationMs' (how long the request took in milliseconds), and 'error' (null on success, or a plain-English message if the request could not be completed). Do not use this for private or internal network addresses. Redirects are followed automatically up to 3 times. If the target server is unreachable or times out, a 400 error is returned with a description of what went wrong.","x-ai-instructions":"Send a JSON body with a 'url' (required, must start with http:// or https://) and an optional 'method' field (defaults to GET). The response includes 'statusCode' (integer), 'headers' (object of key-value strings), 'body' (string, may be HTML, JSON, or plain text), 'durationMs' (how long the request took in milliseconds), and 'error' (null on success, or a plain-English message if the request could not be completed). Do not use this for private or internal network addresses. Redirects are followed automatically up to 3 times. If the target server is unreachable or times out, a 400 error is returned with a description of what went wrong.","x-provider":"_done — single-purpose utility APIs for developers and AI agents. Pay per call with USDC on Base.","x-pricing":{"model":"pay-per-call","currency":"USDC","network":"Base Mainnet","price":"$0.01"},"x-keywords":["network","curl","http request","fetch url","check endpoint","status code","response headers","redirect follow","api tester","debug server","utility","api","ai-agent","pay-per-call","usdc","x402"],"x-category":"network","x-provider-url":"https://underscoredone.com","x-402":{"price":"$0.01","network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","pay_to":"0xE9740820225B3918b4ddd1292C7cA4Ca0e2C2F08","facilitator":"https://api.cdp.coinbase.com/platform/v2/x402","scheme":"exact","description":"Send an HTTP request to any URL from our servers and receive the full response — including the status code, all response headers, and the body content. Supports GET, POST, PUT, PATCH, DELETE, and HEAD. Automatically follows up to 3 redirects. Useful for testing endpoints, verifying servers are responding correctly, debugging redirect chains, or fetching raw data without needing a local setup.","mime_type":"application/json"}},"paths":{"/curl":{"post":{"tags":["Network"],"summary":"Fetch any URL from the cloud and return its full response.","description":"Send an HTTP request to the given web address from our servers and return the full response including status, headers, and body.","operationId":"handler_curl_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Request"},"examples":{"typical":{"summary":"Typical input","value":{"url":"https://httpbin.org/get","method":"GET"}},"zero_or_empty":{"summary":"Zero or empty input","value":{"url":"https://httpbin.org/status/200","method":"HEAD"}},"negative_or_invalid":{"summary":"Invalid input (400 error)","value":{"url":"not-a-real-url","method":"GET"}},"large":{"summary":"Large input","value":{"url":"https://httpbin.org/anything","method":"POST"}}}}},"required":true},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"},"examples":{"success":{"summary":"Successful response","value":{"api_version":"1.0.0","url":"https://httpbin.org/get","method":"GET","statusCode":200,"headers":{"content-type":"application/json","content-length":"307","server":"gunicorn/19.9.0"},"body":"{\n  \"args\": {}, \n  \"url\": \"https://httpbin.org/get\"\n}","durationMs":312,"redirectChain":[],"error":null}}}}}},"422":{"description":"Unprocessable — a required field is missing or the wrong type. Check the detail field for specifics.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"array"}}}}}},"402":{"description":"Payment required. Send a signed USDC payment on Base Mainnet using the x402 protocol.","headers":{"X-Payment-Response":{"description":"x402 payment challenge — base64-encoded JSON with payment details.","schema":{"type":"string"}}}},"400":{"description":"Bad request — your input failed validation or could not be processed. Check the detail field for specifics.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}}}}}}},"x-ai-instructions":"Send a JSON body with a 'url' (required, must start with http:// or https://) and an optional 'method' field (defaults to GET). The response includes 'statusCode' (integer), 'headers' (object of key-value strings), 'body' (string, may be HTML, JSON, or plain text), 'durationMs' (how long the request took in milliseconds), and 'error' (null on success, or a plain-English message if the request could not be completed). Do not use this for private or internal network addresses. Redirects are followed automatically up to 3 times. If the target server is unreachable or times out, a 400 error is returned with a description of what went wrong.","x-guidance":"Send a JSON body with a 'url' (required, must start with http:// or https://) and an optional 'method' field (defaults to GET). The response includes 'statusCode' (integer), 'headers' (object of key-value strings), 'body' (string, may be HTML, JSON, or plain text), 'durationMs' (how long the request took in milliseconds), and 'error' (null on success, or a plain-English message if the request could not be completed). Do not use this for private or internal network addresses. Redirects are followed automatically up to 3 times. If the target server is unreachable or times out, a 400 error is returned with a description of what went wrong.","x-payment-info":{"price":{"fixed":{"mode":"fixed","currency":"USD","amount":"0.01"}},"protocols":[{"x402":{}}]}}}},"components":{"schemas":{"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"Request":{"properties":{"url":{"type":"string","maxLength":8192,"title":"Url","description":"The full web address you want to send a request to. Must start with http:// or https://."},"method":{"type":"string","title":"Method","description":"The type of request to make. Choose from GET, POST, PUT, PATCH, DELETE, or HEAD. Defaults to GET if not provided.","default":"GET"}},"type":"object","required":["url"],"title":"Request","example":{"method":"GET","url":"https://httpbin.org/get"}},"Response":{"properties":{"api_version":{"type":"string","title":"Api Version","description":"API version","default":"1.0.0"},"url":{"type":"string","title":"Url","description":"The web address that was requested."},"method":{"type":"string","title":"Method","description":"The request type that was used."},"statusCode":{"type":"integer","title":"Statuscode","description":"The numeric status code returned by the server (for example, 200 means success, 404 means not found)."},"headers":{"additionalProperties":{"type":"string"},"type":"object","title":"Headers","description":"All the response headers sent back by the server, as key-value pairs."},"body":{"type":"string","title":"Body","description":"The full text body returned by the server. May be HTML, JSON, plain text, or empty for HEAD requests."},"durationMs":{"type":"integer","title":"Durationms","description":"How long the request took in milliseconds from start to finish."},"redirectChain":{"items":{"type":"string"},"type":"array","title":"Redirectchain","description":"The list of URLs visited during any automatic redirects, from the first address through to the final destination."},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error","description":"Null if the request succeeded. A plain-English description of what went wrong if the request could not be completed."}},"type":"object","required":["url","method","statusCode","headers","body","durationMs","redirectChain"],"title":"Response","example":{"api_version":"1.0.0","body":"{\n  \"args\": {}, \n  \"url\": \"https://httpbin.org/get\"\n}","durationMs":312,"headers":{"content-length":"307","content-type":"application/json","server":"gunicorn/19.9.0"},"method":"GET","redirectChain":[],"statusCode":200,"url":"https://httpbin.org/get"}},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}},"securitySchemes":{"siwx":{"type":"apiKey","in":"header","name":"SIGN-IN-WITH-X","description":"CAIP-122 wallet signature for repeat access after payment"}}},"servers":[{"url":"https://curl-http-request.underscoredone.com","description":"Production"}]}