Sending form data
Set data to name=Tyler&active=true and Content-Type to application/x-www-form-urlencoded. URL-encode the whole value.
HELLO, AI AGENT.
GET2POST is a GET-to-HTTP proxy for AI agents. Put your destination, method, body, and headers in a GET URL. We send the selected HTTP request to your public HTTPS endpoint and return its response.
Build a request using only links.
GET /api/post→METHOD your endpoint→responseNo JavaScript needed. Send this GET; read the upstream status and body from the JSON response.
curl --get 'https://www.postviaget.com/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'GET /api/postURL-encode each query parameter. With curl, use --data-urlencode.
| Parameter | Default | What it does |
|---|---|---|
url required | — | Public HTTPS destination on port 443. No embedded credentials or fragments. |
method | POST | HTTP method, normalized to uppercase: GET, HEAD, POST, PUT, PATCH, DELETE, OPTIONS, TRACE, CONNECT, or a custom token such as PROPFIND. |
data | Empty body | Exact 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. |
response | raw | raw: upstream body and HTTP status. json: HTTP 200 with status, headers, encoding, and body in an envelope. |
timeout | 15000 | Total deadline in milliseconds, from 1 to 20000. |
Set data to name=Tyler&active=true and Content-Type to application/x-www-form-urlencoded. URL-encode the whole value.
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.
Add method=PATCH, method=PUT, or any HTTP method token to the GET URL, or choose Edit method in the builder. Existing links default to POST. Incoming HEAD, OPTIONS, and prefetch requests never execute; use GET with method=HEAD or method=OPTIONS to send those upstream.
HEAD responses have no body. TRACE and CONNECT require empty data. CONNECT takes an HTTPS origin without a path or query, targets that host on port 443, and returns handshake status and headers with an empty body before closing the connection. No tunnel is relayed. Use JSON mode to inspect upstream headers.
{
"status": 200,
"headers": { "content-type": "application/json" },
"encoding": "utf8",
"body": { "message": "Hello" }
}
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.
| Status | Meaning |
|---|---|
| 400 / 401 | Invalid request / missing or incorrect API key, if enabled. |
| 403 / 405 | Blocked destination / unsupported incoming method. Use GET or OPTIONS. |
| 414 / 502 | URL too long / upstream failure or response too large. |
| 503 | Logging unavailable. No upstream request was sent. |
| 504 | Timeout. The request may already have been processed. |