Skip to content
| Marketplace
Sign in
Visual Studio Code>Programming Languages>FastClient – Lightweight REST API ClientNew to Visual Studio Code? Get it now.
FastClient – Lightweight REST API Client

FastClient – Lightweight REST API Client

Putra Adi Jaya

| (0) | Free
A tiny, fast REST/HTTP API client for VS Code and all its forks. Collections as plain JSON files, environments, cURL, Postman and OpenAPI import/export. Zero runtime dependencies.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

⚡ FastClient – Lightweight REST API Client

A tiny, fast REST/HTTP API client for VS Code and all its forks. Send requests, organise them in collections stored as plain JSON files in your repo, switch environments, and import/export cURL — without leaving the editor and without a heavyweight extension.

FastClient request editor

FastClient sidebar and collections

FastClient environments and variables

Features

  • Request editor – method, URL, query params (synced with the URL), headers, body (JSON, form-urlencoded, multipart with file uploads, raw text) and auth (Basic, Bearer). Request and response sit side by side (or stacked — toggle in the header), with the active environment, Copy as cURL and Import cURL one click away.
  • Variable check before sending – the line under the URL shows the resolved URL and flags {{variables}} the active environment does not define; one click on Add to <env>.local.json asks for the value and stores it in a git-ignored local file.
  • Response viewer – status, time, size, headers, cookies, pretty-printed and highlighted JSON, a JSONPath filter, a Test results tab and a Table view for JSON arrays (sortable, searchable, copy as CSV).
  • Environment card – the sidebar shows the active environment and its variables (secrets masked, captured values marked) at the top.
  • Collections as files – requests are saved as readable JSON under .fastclient/ in your workspace, so they can be committed, reviewed and shared with git. No account, no cloud sync.
  • Organisable collections – drag requests into collections and reorder requests or collections in the sidebar. Drag a collection onto another collection to nest it.
  • Environments – {{baseUrl}}-style variables, nested variables, {{$env.NAME}} (process env) and dynamic variables. Secrets go into environments/<name>.local.json, which is git-ignored automatically.
  • Tests and chaining – declarative assertions on status, headers, JSON paths and response time, plus capturing response values into {{variables}}. Run a whole folder or collection and see pass/fail per request.
  • cURL import / export – paste a cURL command (bash, Windows cmd and PowerShell styles) or copy any request as cURL.
  • Postman & OpenAPI import / export – import Postman collections (v2.0 / v2.1) and environments, OpenAPI 3.x and Swagger 2.0 (JSON or YAML); export any collection as a Postman v2.1 collection or an OpenAPI 3.0 document.
  • History – recent requests in the sidebar (configurable limit).
  • Networking – follows redirects, timeout, cancel, gzip / deflate / brotli decoding, optional acceptance of self-signed certificates (like curl -k).

Why it's light

  • Zero runtime dependencies – the HTTP client is built on Node's own http/https modules.
  • One small bundle – the whole extension is a single minified file; the UI is plain DOM with no framework. The VSIX is well under 150 KB.
  • Lazy activation – nothing runs until you open the FastClient view or run a command.
  • No telemetry, no login, no background processes.

Compatibility

Requires an engine compatible with VS Code 1.74+ and uses only stable APIs (no proposed APIs), so it works in:

  • Visual Studio Code and VS Code Insiders
  • Cursor
  • Windsurf
  • VSCodium (install from Open VSX or the .vsix)
  • code-server / browser-hosted VS Code (server side)
  • Remote – SSH, WSL and Dev Containers (the extension runs on the workspace side, so requests reach hosts such as localhost on the remote machine)

Getting started

  1. Click the ⚡ FastClient icon in the activity bar.
  2. Create a request with New Request (Ctrl+Alt+N) or New Request from cURL (Ctrl+Shift+I).
  3. Press Ctrl+Enter to send and Ctrl+S to save it into a collection.

In the Collections tree, drag a request onto a collection to move it there. Drop an item above or below a sibling to change its order; drop a collection into another collection to nest it.

Editor layout

  • Header – breadcrumb (collection › request, with an Unsaved badge), the environment button (click to switch), Copy as cURL, Import cURL and the layout switch: side by side (default) or stacked. Narrow editors always stack. Drag the divider to resize; double-click it to reset.
  • URL bar – method, URL with highlighted {{variables}}, Send (the arrow next to it opens Save, Save as…, Copy as cURL and Import from cURL) and Save (with a dot while there are unsaved changes).
  • Resolved line – under the URL: the URL as it will be sent and a warning for undefined variables. Click a variable or Add {{name}} to <env>.local.json to enter its value.
  • Request tabs – Params, Headers, Body, Auth, Tests.
  • Response – status, time, size and a test summary chip; tabs Body, Headers, Cookies and Test results.

Headers, params and form fields

Headers, Params and Form fields have a Table / Text switch:

  • Table – one row per entry. Enter moves from name to value and on to the next row, Ctrl+Shift+Backspace deletes the row, Alt+↑ / Alt+↓ reorders rows. Repeated header names are flagged as duplicate.
  • Text (bulk edit) – one Key: Value per line; start a line with // to disable it (Ctrl+/ toggles).
  • Smart paste – paste DevTools "Copy request headers", a raw HTTP request, curl … -H '…', a URL or query string, or a=1&b=2 and the entries are merged in automatically.
  • Autocomplete – header names and typical values, plus {{variables}} after {{. Ctrl+Space shows all suggestions.
  • + Common – a checklist of common headers (Content-Type, Accept, Authorization, Cache-Control, …) with a filter.
  • Presets – save the current headers as a preset and apply them to any request.
  • Auto-generated headers – shown greyed out: Authorization (from Auth), Content-Type (from body type), Content-Length, User-Agent and Accept. A header you set with the same name overrides the auto one.

File uploads (multipart)

Choose Multipart as the body type. Each field is Text or File:

  • Choose… opens the file dialog. Files inside the workspace are stored relative to the workspace folder (portable); files elsewhere are stored with an absolute path.
  • Each file row shows the file name and size, or File not found / No file chosen; uploads over 50 MB are marked large upload.
  • Files are streamed from disk when the request is sent (never loaded into memory).

Table view

FastClient table view

For JSON responses, choose Table next to Pretty / Raw:

  • Shows an array of objects found at the root, at a top-level property or one level deeper (e.g. $.data, $.items).
  • Works on the JSONPath filter result too.
  • Columns are the union of keys of the first 200 rows; nested objects and arrays are shown as compact JSON.
  • Click a column header to sort; search all columns or one column.
  • At most 1,000 rows are rendered; sorting, search and CSV export still use every row.

Tests and running collections

FastClient tests and collection run

Open the Tests tab of a request. Tests are plain data saved in the request's JSON file — nothing is ever executed, so they are safe in untrusted workspaces.

"tests": [
  { "type": "status", "equals": 200 },
  { "type": "json", "path": "$.data.id", "type_is": "number" },
  { "type": "header", "header": "content-type", "contains": "json" },
  { "type": "time", "lt": 500 },
  { "type": "bodyContains", "value": "ok" }
],
"extract": [
  { "var": "token", "from": "json", "path": "$.data.jwt" }
]
  • Add test from response proposes tests (status, typed top-level fields) and token-like fields to capture.
  • Capture to variable (extract) stores a JSON value or header into a runtime {{variable}} that overrides the active environment. Runtime variables are never written to disk.
  • Run folder / collection: use the ▶ button on a folder in the sidebar. Requests run one at a time in sidebar order, so a login request can feed the next ones. Results appear in the Run Results page.

Sidebar

  • Quick access: starred requests (☆ on any request row) and recently opened ones, per workspace.
  • Quick start: shown until you send the first request.
  • Environment status: the active environment and a ⚠ count of undefined {{variables}}. Expand to see which requests use them and add a value.
  • Overview: requests sent today with a 7-day trend, average / p95 response time, errors, a response-time chart and the last collection run.
  • Tips at the bottom; use ‹ › to browse.

Run results

FastClient run results

FastClient import and export

Running a folder or collection opens the Run Results page:

  • Header: collection, environment, start time, duration and progress; Stop while running, Re-run failed / Re-run all afterwards.
  • Summary: pass ring, passed / failed / skipped counts, average and total request time.
  • Requests: method, name, resolved URL, HTTP status, time, size and tests passed. Expand a row to see every test with expected / actual values, and the response.
  • Export as JSON, JUnit XML or a self-contained HTML report.

Import and export

Import — New Request ▾ → Import Postman / OpenAPI…, the FastClient: Import Postman / OpenAPI… command, or right-click a .json / .yaml file in the Explorer.

Source What you get
Postman collection v2.0 / v2.1 Folders, requests, headers, query params, body types, auth. Collection variables go to an environment named after the collection.
Postman environment An environment with the same name.
OpenAPI 3.x / Swagger 2.0 One request per operation, grouped by tag. URLs use {{baseUrl}} and path parameters become {{variables}}.

Importing into an existing collection asks what to do: Update, Replace or Add as copies.

Export — the export button on a collection row or FastClient: Export Collection as Postman / OpenAPI…:

  • Postman Collection v2.1 — folders, requests, auth and test scripts.
  • OpenAPI 3.0 (YAML or JSON) — one operation per request, folders as tags, parameters, request bodies and security schemes.

Keyboard shortcuts

Action Windows / Linux macOS
Send request Ctrl+Enter Cmd+Enter
Save request Ctrl+S Cmd+S
Save as… Ctrl+Shift+S Cmd+Shift+S
New request Ctrl+Alt+N Cmd+Alt+N
New request from cURL Ctrl+Shift+I Cmd+Shift+I

All commands are also available from the Command Palette under FastClient:.

Settings

Setting Default Description
fastclient.timeout 30000 Request timeout in ms (0 = none).
fastclient.followRedirects true Follow HTTP redirects (max 10).
fastclient.rejectUnauthorized true Verify TLS certificates.
fastclient.historyLimit 20 Number of history entries kept.
fastclient.quickAccess.limit 5 Rows shown in Quick access; 0 hides it.
fastclient.copyAsCurlResolveVariables true Resolve {{variables}} when copying as cURL.
fastclient.runStopOnFailure false Stop a collection run at the first failed request.
fastclient.maxResponseView 5242880 Max response bytes rendered in the viewer.
fastclient.maxResponseBytes 52428800 Max received or decoded response bytes (0 = unlimited).
fastclient.keepAlive true Reuse TCP/TLS connections between requests to the same host.

License

MIT © 2026 Putra Adi Jaya

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
  • Your Privacy Choices
  • Consumer Health Privacy
© 2026 Microsoft