HTTP request client
A small Postman in the browser — collections, environments with {{variables}}, tests, and a collection runner; Postman, OpenAPI, and HAR import and export; status, timing, headers, and bodies; curl, fetch, or Python code.
Added · updated 28 October 2026
Works with
- OpenAPI explorer Networkhands a request from a spec here to save and test
- Packet capture viewer (mini Wireshark) Networkits HAR export of a capture’s HTTP requests imports here
How to use it
Choose a method, enter a URL, and press Send (or Cmd/Ctrl + Enter). Examples… loads working requests against httpbin.org, JSONPlaceholder, the GitHub API, and dummyjson.com.
Building a request
-
Query — edit parameters as a table; it stays in sync with the URL.
-
Headers — tick to enable or disable each one. The auth helper adds a Bearer or Basic
Authorizationheader. -
Body — none, JSON (with a formatter), text, URL-encoded form, or multipart form.
-
Options — timeout, redirect handling, and whether to include credentials (cookies).
-
Import curl — paste a curl command (from your terminal or a browser’s "Copy as cURL") to load it. Code shows the current request as curl, JavaScript
fetch, or Pythonrequests.
Collections, environments, and variables
-
Collections (left) hold saved requests in folders. Save (Cmd/Ctrl + S) updates the open request; Save as… picks a collection or folder. Each item’s ⋯ menu renames, duplicates, moves, deletes, runs, or exports it. A dot beside the name means unsaved changes.
-
Write
{{name}}in the URL, headers, body, or form fields. Values come from the collection’s Variables… and from the active environment (top right), which overrides them — for example one environment each for local, staging, and production. The resolved URL appears under the address bar, with any undefined names. Built-in values:{{$guid}},{{$timestamp}},{{$isoTimestamp}},{{$randomInt}}. -
History keeps the last 30 requests with their responses; export it as a HAR file or turn it into a collection.
Tests and the collection runner
The Tests tab adds assertions checked after every send: status (equals, class such as
2xx, less or greater than), response time, a header (exists, equals, contains, matches),
the body text, or a JSON path such as $.data[0].id (exists, equals, contains, less or
greater than, type, length, matches). “Equals” compares as JSON when the expected value
parses, so 1, true, "a", and [1,2] work. Save to variable copies a value from the
response into the active environment (or the collection’s variables when no environment is
active), so a login request can capture {{token}} for the requests after it.
Run all requests on a collection or folder sends each request in order and shows status, time, and test results for each — a quick smoke test of an API.
Import and export
-
Postman collections (v2.0 and v2.1) import with folders, headers, bodies (raw, form, multipart, GraphQL), collection variables,
:pathvariables, and bearer, basic, and API key auth. Postman scripts do not run here. Collections export as Postman v2.1, with each test written as apm.test(…)line that Postman runs and this tool reads back exactly. Postman environments import and export too. -
OpenAPI 3 / Swagger 2 (file or URL) becomes a collection with a folder per tag, example bodies, and
{{baseUrl}}. The OpenAPI explorer can also hand a single operation over. -
HAR files (from any browser’s network panel) become a collection; headers the browser sets itself are dropped.
-
Export everything writes a backup of all collections and environments to restore later.
The response
Status, total time, time to headers, body time, and size; a DNS / connect / TLS / waiting /
download timeline when the server allows it (Timing-Allow-Origin); the headers the browser
lets the page see; and the body — pretty-printed JSON with highlighting, indented XML, an
image or sandboxed HTML preview, or a hex dump for binary data. Copy or download it.
What browsers allow
Requests are made by your browser with fetch(), so the target server must allow
cross-origin requests (CORS) from this site. When it does not, the browser hides the response
and reports a bare "Failed to fetch"; the tool explains the likely reasons — CORS, a rejected
preflight, mixed content, or the network. Any request with a custom header, a JSON body, or a
method other than GET, HEAD, or POST triggers a preflight OPTIONS request first; the tool
tells you when and why. Browsers silently drop "forbidden" headers such as Host, Cookie,
User-Agent, and Origin, and cross-origin responses only expose a few headers unless the
server lists more in Access-Control-Expose-Headers. For anything the browser refuses, copy
the request as curl and run it in a terminal.
Requests go only to the URLs you enter. Collections, environments, and history are kept in this browser’s local storage — export a backup to move them to another machine, and avoid storing long-lived secrets on shared computers.
Sharing
Share link copies a URL that opens this tool exactly as configured. The request in the editor: ?method= and ?url= when that is all there is, otherwise packed into ?s= with headers, body, form, and tests. Credentials are never included: Authorization, cookie, token and key headers, query parameters, form fields, and JSON body fields are blanked unless they only refer to a {{variable}}, and environments and collections stay in your browser. Opening a link fills the editor; it never sends.
For example: http/?method=GET&url=https%3A%2F%2Fhttpbin.org%2Fget.
Feedback is a gift. Something to improve, a feature to add, or a bug? Tell me.
Runs entirely in your browser — network requests go only to the services named on this page.