HTTP

HTTP Echo API

GET/echo

Echo your GET query parameters and selected request headers.

No signup or API key required.

Parameters

queryquery stringoptional · query
Arbitrary query parameters. Up to 32 entries, names 1 to 64 characters, values at most 256. Repeated names become arrays. format is reserved and only accepts json. Never include secrets.
formatenumoptional · query
Only json is supported. format=text returns HTTP 400.
json

No request body. Repeated query names are supported. The reserved format parameter must not be repeated.

Returns 200 OK

A JSON object with the following fields.

methodstring
The HTTP request method, GET in this playground.
pathstring
The request pathname, /echo.
queryobject<string, string | array<string>>
Decoded query parameters. Repeated names produce arrays. The reserved format parameter is omitted.
headersobject<string, string>
Safe request headers only: accept, accept-encoding, accept-language, content-type, user-agent. Missing headers are omitted; values are capped at 1024 characters.

This endpoint supports JSON only.

Errors

Validation and service errors always return JSON.

errorstring
A machine-readable error code, such as invalid_parameter or rate_limited.
messagestring
A description of the problem.

400 Invalid parameters.

414 Query string exceeds 2048 characters.

429 Rate limit reached. Wait the seconds in Retry-After before retrying.

Usage notes

JSON only. Arbitrary query parameters and the same safe headers as /headers. At most 32 parameters, names 1..64 characters, values at most 256. Repeated names become arrays. format is reserved. Do not put secrets in URLs.

Check how your client encodes query strings, including repeated keys. This endpoint accepts GET requests, not POST bodies, and should not receive secrets in URLs.

Responses are not cached. Browser requests are supported through open CORS.

120 requests per minute per IP, with up to 30 per 10 seconds, shared across APIs. Limits are approximate per Cloudflare location. Full usage limits ↗