Developer · Requests without a client

API Tester

Send a request, read the whole response

Any method, any headers, any body — sent through this site’s own proxy so CORS cannot block it, with status, timing and headers returned in full.

All methodsCustom headersCORS bypassedTiming
Methods
7
Max response
5 MB
Timeout
15 s

API Tester

Sends requests through this site’s server
Response
Response body

01 — How to use API Tester

1 Choose a method and URL Seven methods are available. A bare host is assumed to be https, so api.example.com works without typing the scheme.
2 Add headers One “Name: value” per line in the headers box. Blank lines and lines starting with # are ignored, so you can keep a header around without deleting it.
3 Send The request goes out through this site’s own proxy, which is what makes it work against APIs that would otherwise be blocked by CORS.
4 Read the response Status, timing and size appear together. The tabs show the response body, the response headers, and what was actually sent.

02 — Getting good results

This is the one tool here that is not local Every other tool on this site runs entirely in your browser. This one cannot: a browser is forbidden by its own security model from reading a cross-origin response unless the server explicitly allows it, and no amount of client-side code changes that. The request is therefore relayed by this site’s server. Do not send credentials you would not want leaving your machine — the tool cannot make that request private, and says so rather than pretending otherwise.
A 404 from the target is not an error from the tool Any status the target returns is a successful call: the status box shows it, coloured by range, and the body is whatever came back. The tool only reports its own failure when the request genuinely could not be made — a blocked address, a timeout, a response too large to return.
JSON is formatted, and malformed JSON is shown as-is A response declaring itself JSON is pretty-printed. If it declares JSON but is not — an HTML error page from a proxy in front of the API is the classic case — the raw body is shown instead of a parse error, because seeing the HTML is how you work out what happened.
Private addresses are refused, deliberately The proxy will not connect to loopback, private, link-local or cloud metadata addresses, and re-checks on every redirect. That is not an oversight: an open proxy on the public internet is an invitation to read things that were never meant to be reachable, including instance credentials. Requests to localhost have to be made from a client on your own machine.

03 — Questions

Because CORS is enforced by the browser itself, not by the page. When a server does not send permissive CORS headers, the browser refuses to let JavaScript read the response — that is the entire purpose of the policy. Bypassing it requires making the request from somewhere that is not a browser, which means a server.

04 — More about API Tester

61 more tools
where this came from.

Same shell, same shortcuts, same promise: nothing leaves your browser.

Browse all 62