API Tester
Free online API testing tool, lightweight interface debugging
About API Tester
A lightweight in-browser HTTP client. Pick one of five methods (GET, POST, PUT, PATCH, DELETE), enter a URL, optionally add headers (one per line) and a request body, and the tool issues a real CORS-mode fetch from your browser, then shows the response status, elapsed time, and pretty-printed body. JSON responses are detected and reformatted; non-JSON bodies are shown as plain text.
How to Use
1. Click one of the method pills (GET / POST / PUT / PATCH / DELETE) at the top of the request card. 2. Type the full URL into the input (e.g. https://api.example.com/endpoint). The Send button is disabled while the URL is empty or a request is in flight. 3. (Optional) Add request headers in the Headers card, one per line as `Name: Value`. 4. (Optional) For POST, PUT, or PATCH, a Body card appears — paste your payload there (the placeholder shows a JSON example). GET and DELETE send no body even if the field had content. 5. Click Send. The Response card shows a colored status dot (green for 2xx, red otherwise), the `status statusText`, the elapsed time in milliseconds, and the response body. Use Copy to copy the body to the clipboard.
Request Behavior and Response Handling
Key behaviors worth knowing: - Requests use `fetch(url, { method, mode: "cors", headers, body })`. Because the mode is CORS, the target server must return appropriate CORS headers or the browser will block the response — cross-origin endpoints without CORS will surface as a network error. - Headers are parsed line-by-line by the first `:` on each line; lines without a colon are silently skipped. - The body is attached only for POST, PUT, and PATCH, regardless of what is typed for GET/DELETE. - The response body is read as text, then attempted to be parsed as JSON; on success it is re-stringified with 2-space indentation for readability, on failure the raw text is shown. - On a thrown error (network failure, blocked CORS, invalid URL) the status shows the localized "Error" label and the response area shows the exception message.
▶Why does my request fail with a CORS error even though the URL works in Postman?
▶Are request headers and bodies sent to a server?
▶Why does my JSON response look unformatted or appear as plain text?
▶Can I send authentication tokens or cookies?
If this tool has been helpful to you, consider buying me a coffee.
Buy me a coffee