-
Notifications
You must be signed in to change notification settings - Fork 5
Building Requests
Everything about composing an HTTP request: method, URL, query params, headers, and the five body types. Authentication has its Authentication.
A dropdown next to the URL selects the HTTP method. Supported methods:
GET · POST · PUT · DELETE · PATCH
(The method dropdown is only shown for HTTP requests — WebSocket/SSE requests use a different control; see Realtime WebSocket and SSE.) New tabs default to GET.
Type a full URL (https://api.example.com/users) into the URL field. The field:
-
Highlights
{{variables}}live — resolved variables in one colour, unknown ones in a warning colour. See Environments and Variables. - Keeps your cursor stable when the app echoes edits back (so typing never jumps).
- Can be focused instantly with
Cmd/Ctrl + L. - Has a SEND button on the right (which becomes CANCEL/STOP while a request is in flight).
- Has an overflow menu (on narrow widths) and a Generate code action — see Code Generation.
Paste any command starting with curl directly into the URL field. Getman runs it through its cURL parser and fills the whole request in one step:
-
Method from
-X/--request(defaults to GET). -
URL from the positional argument or
--url. -
Headers from each
-H/--header(Key: value). -
Body from
-d/--data*(multiple-dflags are joined with&). -
-G/--getconverts data into query params and forces GET. -
-u/--userbecomes aAuthorization: Basic …header. -
-b/--cookiebecomes aCookieheader. - Flags it doesn't model (
-A,-e,-o,-x,--compressed,-s,-L, …) are skipped gracefully.
After parsing, a JSON body is auto-beautified for you. If the text isn't a valid cURL command, it's treated as a normal URL edit.
The query string and the PARAMS tab are two views of the same data:
- Editing a row rewrites the URL's query string (base URL and
#fragmentpreserved). - Editing the URL's query updates the rows.
- Rows are an ordered key/value list; duplicates are allowed and order is kept.
- The last (empty) row auto-spawns a new empty row as you type — no "add" button needed.
- Delete a row with its trash icon. Rows with an empty key are not sent.
- Values support
{{variables}}.
A key/value editor for request headers (a map — last value wins for a repeated key). Same editing model as PARAMS (auto-adding rows, trash to delete). Header values support {{variables}}.
Note: you rarely need to set Content-Type by hand — the body type sets an appropriate one for you (see below). A header you set explicitly always wins over an automatic one.
On both the PARAMS and HEADERS tabs there's a toggle to edit many entries at once as plain text — handy for pasting a block from somewhere else.
- The toggle is labelled Bulk edit (switches to text mode) and Edit as rows (switches back).
- In bulk mode you get a single multiline text field where each line is
key: value:- The line is split on the first colon; the key and value are each trimmed.
- Blank lines are ignored.
- A line with no colon becomes a key with an empty value.
- Switching back to rows turns the text into the usual key/value rows (and vice-versa) — bulk and row modes are two views of the same data.
Notes:
- Bulk edit is available on Params and Headers only. The environment-variable editor doesn't have it (it has secret toggles instead — see Environments and Variables).
- The mode is a transient view preference: it resets to rows when the tab reloads.
-
{{token}}highlighting isn't shown in bulk mode (it's plain text); it returns in row mode.
Pick a body type with the chips: NONE · RAW · FORM · MULTIPART · BINARY.
No request body. Shows "THIS REQUEST HAS NO BODY". No Content-Type is forced.
A full code editor for free-form text — typically JSON.
- Syntax highlighting for JSON (line-by-line).
- Collapse / expand JSON objects and arrays — click the ▾/▸ chevron in the gutter (next to the line numbers) to fold a region, like VS Code or Postman. Click again to unfold.
-
Find panel with
Cmd/Ctrl + F. -
Beautify with
Cmd/Ctrl + B(or the wand button) — pretty-prints JSON off the UI thread. -
{{variables}}are resolved at send time. -
Content-Typeis yours to set (commonlyapplication/jsonvia the HEADERS tab).
A key/value editor (text only). All non-empty-key rows are URL-encoded into the body, and Content-Type: application/x-www-form-urlencoded is set automatically. Names and values support {{variables}}.
A key/value editor where each row is either text or a file:
- Toggle a row to file mode and click CHOOSE FILE / CHANGE FILE to pick from disk.
- Text field names and values support
{{variables}}; file paths do not (use a literal path). - An optional per-file content type is honoured when set.
- The boundary
Content-Typeis set automatically by the HTTP client. - If a chosen file is missing at send time, Getman surfaces a clear error response instead of failing silently.
- File picking needs the desktop/mobile app (not the web build).
Send the raw bytes of a single file. Click CHOOSE FILE / CHANGE FILE to pick it. Content-Type defaults to application/octet-stream unless you set one explicitly. Desktop/mobile only.
-
Send: click SEND or press
Cmd/Ctrl + Enter. Active environment variables are resolved into the URL, query values, header values, and body before dispatch. - Cancel: while sending, the button shows CANCEL/STOP with a spinner — click it to abort. The connection is torn down cleanly and no stale response arrives later. The tab returns to idle (the previous response, if any, is kept).
Variables are substituted into: the URL, query-param values, header values, the body, and auth credentials. Keys (header/param names) and the method are not substituted. History stores the un-resolved request so you can re-send it under a different environment. Details: Environments and Variables.
Getman on GitHub · Releases · Live demo · Local-first HTTP client — no account, no cloud, no telemetry.
Start here
Core
Variables & automation
More features
- History
- Cookies
- Realtime WebSocket and SSE
- Code Generation
- Command Palette
- Keyboard Shortcuts
- Auto-Update
Configuration
Project