Skip to content
| Marketplace
Sign in
Visual Studio Code>Programming Languages>REST Client, API Client, HTTP Client, API Tester, Postman Alternative, Thunder Client Alternative, HTTP Request, cURL, GraphQL, WebSocket, gRPC, OpenAPI, Swagger, JSON, .http Files for HTML, CSS, JavaNew to Visual Studio Code? Get it now.
REST Client, API Client, HTTP Client, API Tester, Postman Alternative, Thunder Client Alternative, HTTP Request, cURL, GraphQL, WebSocket, gRPC, OpenAPI, Swagger, JSON, .http Files for HTML, CSS, Java

REST Client, API Client, HTTP Client, API Tester, Postman Alternative, Thunder Client Alternative, HTTP Request, cURL, GraphQL, WebSocket, gRPC, OpenAPI, Swagger, JSON, .http Files for HTML, CSS, Java

utiltools

|
1 install
| (0) | Free
REST Client and HTTP Client for VS Code: a free API client and API tester to send HTTP requests and test REST APIs, GraphQL, WebSocket, SSE and gRPC from git-friendly .http/.rest files. Collections, environments, full request history, JSON response viewer, and cURL, Postman, Insomnia and Thunder Cli
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

REST Client & API Tester

A fast API client inside VS Code that saves every request as a plain .http file you can commit. Build requests in a clean editor that follows your VS Code theme, or write them as text, and send either way. Collections, environments, full history, tests, request chaining and a collection runner are all included. There is no login, no cloud workspace and no sync server.

Request editor with a JSON response

Why this one

  • Your requests stay yours. Collections are .http / .rest files in your repo. They diff and review like code, and your team gets them with git pull. The format works with the REST Client and JetBrains HTTP Client syntax, so files you already have open straight away.
  • You can always look back. History keeps every request with its response. Your history, collections and files stay readable at any time.
  • You get what text-only clients are missing: a GUI editor, tests, request chaining, .env files, server-sent events and a collection runner with JUnit reports for CI.

Features

Request editor

  • Method, URL, query params (kept in sync with the URL), headers with suggestions, and auth (Bearer, Basic, API key in a header or the query).
  • Body: JSON (format and validate, {{variables}} allowed), text, XML, URL-encoded form, multipart with < ./file parts, GraphQL (query plus variables) and binary files.
  • Paste a cURL command into the URL bar and it becomes a full request.
  • Keyboard first: Cmd/Ctrl+Enter sends, Esc cancels, Cmd/Ctrl+S saves to the .http file, Cmd/Ctrl+L focuses the URL.

Response viewer

  • Pretty JSON and XML with syntax highlighting, a filter box, and wrap on or off.
  • JSON tree with collapsible nodes. Big arrays page in, and hovering a value gives Copy path ($.data[0].id) and Assert (adds a test in one click).
  • Raw body, image preview, save to file and open in an editor tab.
  • Response headers, plus the request that was actually sent with every variable resolved.
  • Timeline: DNS, TCP connect, TLS, time to first byte and download, plus any redirects.
  • Server-sent events (text/event-stream) stream into the pane live.

JSON tree with copy path and assert

.http files, CodeLens and the sidebar

  • A Send Request CodeLens above every request, plus Open in UI and Run All. Cmd/Ctrl+Alt+R sends the request under the cursor.
  • Syntax highlighting for .http / .rest files.
  • An activity bar view with Collections (every .http file in the workspace), History (grouped by day) and Environments (click to switch).
@baseUrl = https://api.example.com

### Log in
# @name login
# @assert status == 200
# @assert $.token exists
POST {{baseUrl}}/auth/login
Content-Type: application/json

{ "email": "ada@example.com", "password": "{{$dotenv PASSWORD}}" }

### Current user
# @assert $.email == "ada@example.com"
GET {{baseUrl}}/me
Authorization: Bearer {{login.response.body.$.token}}

Environments and variables

  • Put environments in http-client.env.json: $shared plus local, dev, prod and so on. Put secrets in http-client.private.env.json and git-ignore it. Switch environments from the status bar, the sidebar or the request editor.
  • File variables (@name = value), .env values ({{$dotenv NAME}}) and process env ({{$processEnv NAME}}).
  • System variables: {{$guid}}, {{$randomInt 1 100}}, {{$timestamp}}, {{$datetime iso8601}}, {{$datetime "YYYY-MM-DD" -1 d}}.
  • Request chaining: {{login.response.body.$.token}} and {{login.response.headers.Location}}.
  • Existing REST Client rest-client.environmentVariables settings are read too.

Tests and the collection runner

  • Write one test per line: status == 200, duration < 500, header content-type contains json, $.items.length > 0, $.name matches ^A, $.id exists. They are saved as # @assert lines.
  • Run a whole collection top to bottom, with chaining, stop-on-first-failure, a delay between requests, and live pass/fail.
  • Export the run as Markdown, JUnit XML (for CI dashboards) or JSON.

Collection runner

Import and code generation

  • Import: Postman v2 collections and environments, Insomnia v4 exports, Thunder Client collections and environments, and OpenAPI 3 / Swagger 2 (JSON). Each collection becomes a .http file, and environments are merged into http-client.env.json.
  • Generate code for cURL, JavaScript fetch, Python requests, HTTPie, PowerShell and Go, with the active environment's variables filled in.

Everything else

  • Cookie jar, redirects (per-request # @no-redirect), gzip, deflate and brotli, timeouts (# @timeout 5000), and self-signed certificates (# @insecure or a setting).
  • Works on macOS, Windows and Linux. The webviews use only your theme's colours, so light, dark and high-contrast themes all work.

Free trial and Unlimited

Every feature is included in the free trial. Only time you actively spend building and sending requests counts toward it, never idle time. When the trial ends, sending requests and running collections need Unlimited. It comes as a monthly or yearly subscription, or a one-time lifetime licence. Once the trial has ended, Go Unlimited in the status bar or in the editor shows the plans. Checkout is handled by Stripe in your browser, and Unlimited turns on as soon as the payment is confirmed. You don't need to reload.

Your collections, environments, history and past responses stay readable whether or not you buy Unlimited.

Already paid on another machine? Run REST Client: Restore Purchase or click "Already paid? Restore" on the plans screen.

Privacy

  • Your requests go straight from VS Code to the servers you call. Nothing passes through us.
  • Your requests and responses are never sent to us. If VS Code telemetry is turned on, the extension also sends two anonymous usage events (opened, and the Unlimited page shown) with the same random install id, and nothing else.
  • The only calls the extension makes on its own are the trial and licence checks to api-ext.viralinc.live. They send a random install ID, a hashed machine ID, the app ID and how many seconds of active use have passed. They never include your requests, URLs, headers, bodies or files.
  • History is stored locally in VS Code's extension storage.

Commands

Command Default key
REST Client: New Request Cmd/Ctrl+Alt+N
REST Client: Send Request (at cursor in a .http file) Cmd/Ctrl+Alt+R
REST Client: Switch Environment Cmd/Ctrl+Alt+E
REST Client: Run Collection
REST Client: Import cURL
REST Client: Import Postman / Insomnia / Thunder Client / OpenAPI…
REST Client: Copy Request as cURL
REST Client: Edit Environments
REST Client: Go Unlimited / Restore Purchase

Settings

Setting Default
restClient.timeoutMs 30000 Request timeout
restClient.followRedirects true Follow 3xx responses
restClient.verifyTls true Verify TLS certificates
restClient.rememberCookies true Cookie jar for the session
restClient.historyLimit 200 Entries kept in history
restClient.collectionsFolder http Where new collections are created
restClient.codeLens true Show "Send Request" in .http files

Support

Questions, bugs or billing: ope@trysixth.com

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