Curl HTTP Request

Make a real HTTP request from the cloud and get back the status code, headers, and body instantly. 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. Pay-per-call at $0.01 USDC over x402 on Base or Solana — no account, no API key. OpenAPI 3.1.0; 1 operation(s): POST /curl.

OpenAPI Specification

done-curl-http-request-openapi.yml Raw ↑
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 Mainnet or
    Solana Mainnet.
  x-pricing:
    model: pay-per-call
    currency: USDC
    network: Base Mainnet or Solana 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: http request
  x-provider-url: https://underscoredone.com
  x-agentcash-auth:
    mode: paid
  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
    networks:
    - network: eip155:8453
      asset: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913'
      pay_to: '0xE9740820225B3918b4ddd1292C7cA4Ca0e2C2F08'
    - network: solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp
      asset: EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v
      pay_to: 8ugAWAXDB8V18kiUrGZTq1oMvU3C6Fxs8hfC6rvzQT3b
paths:
  /curl:
    post:
      tags:
      - http request
      - curl
      - fetch url
      - make http request
      - http client
      - api testing
      - send http request
      - rest client
      - get post request
      - follow redirects
      - http get
      - web request
      - fetch raw response
      - test endpoint
      - http fetch
      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'
        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  \"headers\": {\n    \"Host\": \"httpbin.org\"\n  }, \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 or Solana 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
tags:
- name: http request
- name: curl
- name: fetch url
- name: make http request
- name: http client
- name: api testing
- name: send http request
- name: rest client
- name: get post request
- name: follow redirects
- name: http get
- name: web request
- name: fetch raw response
- name: test endpoint
- name: http fetch
x402Version: 2
x-payment-accepts:
- scheme: exact
  network: eip155:8453
  payTo: '0xE9740820225B3918b4ddd1292C7cA4Ca0e2C2F08'
  asset: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913'
- scheme: exact
  network: solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp
  payTo: 8ugAWAXDB8V18kiUrGZTq1oMvU3C6Fxs8hfC6rvzQT3b
  asset: EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v