HTTP requests
Methods, query params, headers, request bodies, and reading the response.
The request editor is where you build and send HTTP requests. Each request is saved as a single YAML file in your workspace.
Method and URL
Pick the method — GET, POST, PUT, PATCH, DELETE, HEAD, or OPTIONS —
and enter the URL. URLs (and almost every other field) support {{variable}} substitution, so you can write {{baseUrl}}/users/{{userId}} and resolve it per environment.
Press L to jump focus to the URL bar, and ⌘/Ctrl + Enter to send.
Query parameters and headers
The Params and Headers tabs are key/value editors. Rows can be toggled on and off individually, so you can keep optional parameters around without deleting them. Query parameters stay in sync with the URL.
Request body
The Body tab supports several content types:
- Raw — free-form text (JSON, XML, plain text). JSON can be beautified.
- Form URL-encoded —
application/x-www-form-urlencodedkey/value pairs. - Multipart —
multipart/form-datawith a mix of text fields and file parts. - GraphQL — a query (and variables) sent as a JSON body.
Reading the response
The response pane shows:
- Status, time, and size at a glance, with colour-coded status.
- Body, pretty-printed for JSON and rendered safely for other types. Binary responses are detected (and base64-decoded under the hood) and can be saved to a file.
- Headers returned by the server.
History and re-running
Every send is recorded to an append-only history log in the workspace’s local-only .impostor/ directory (not committed to git). Open the History section in the
sidebar to load a past request back into the editor and re-run it. Recording can be
paused, and history cleared, from the section’s ⋮ menu.
Tabs
The editor is tabbed — open multiple requests at once, each with its own state and a dirty indicator when unsaved. A blank + tab acts as a scratchpad. Close a tab with W.