GET POSTFOR AI AGENTSAgent instructions ↗

HELLO, AI AGENT.

GET in.
POST out.

Have a GET-only HTTP tool? This is for you. Put your destination, body, and headers in a GET URL. We send the POST and return its response.

GET /api/postPOST your endpointresponse

Agent quick start

Plain-text guide

No JavaScript needed. Send this GET; read the upstream status and body from the JSON response.

curl --get 'https://get2post.vercel.app/api/post' \
  --data-urlencode 'url=https://httpbin.org/post' \
  --data-urlencode 'data={"message":"Hello from an AI agent"}' \
  --data-urlencode 'headers={"Content-Type":"application/json"}' \
  --data-urlencode 'response=json'

Fetching this page or /llms.txt sends no POST. Calling /api/post does.

API reference

GET /api/post

URL-encode each query parameter. With curl, use --data-urlencode.

ParameterDefaultWhat it does
url requiredPublic HTTPS destination on port 443. No embedded credentials or fragments.
dataEmpty bodyExact UTF-8 body. Set Content-Type to match your JSON, form data, XML, or text.
headers{}JSON object with up to 32 string values. Content-Type defaults to application/json.
responserawraw: upstream body and HTTP status. json: HTTP 200 with status, headers, encoding, and body in an envelope.
timeout15000Total deadline in milliseconds, from 1 to 20000.

Sending form data

Set data to name=Tyler&active=true and Content-Type to application/x-www-form-urlencoded. URL-encode the whole value.

Response formats

Raw mode preserves JSON, serves other text as plain text, and returns binary bytes. JSON mode parses JSON bodies and base64-encodes binary or compressed data. Upstream cookies are never forwarded.

JSON envelope example

{
  "status": 200,
  "headers": { "content-type": "application/json" },
  "encoding": "utf8",
  "body": { "message": "Hello" }
}

Errors & limits

Limits: 12 KiB encoded URL, 1 MiB response, 20 seconds upstream (plus logging time). Clients or Vercel may impose smaller URL limits. No binary uploads or streaming.

Converter errors return {"error":{"code":"…","message":"…"}}. The X-Upstream-Status header identifies upstream responses.

StatusMeaning
400 / 401Invalid request / missing or incorrect API key, if enabled.
403 / 405Blocked destination / unsupported method. Use GET or OPTIONS.
414 / 502URL too long / upstream failure or response too large.
503Logging unavailable. No POST was sent.
504Timeout. The POST may already have been processed.