Skip to content
| Marketplace
Sign in
Visual Studio Code>Programming Languages>REST Studio — REST & API Client, HTTP Requests & API TestingNew to Visual Studio Code? Get it now.
REST Studio — REST & API Client, HTTP Requests & API Testing

REST Studio — REST & API Client, HTTP Requests & API Testing

Ciro Cesar Maciel

| (0) | Free
Free, lightweight REST & API client for VS Code, Cursor, VSCodium and Windsurf. A Thunder Client and Postman alternative: collections as files in your repo, no account, no request limits, commercial use allowed.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

REST Studio — REST & API Client for VS Code, Cursor and VSCodium

Free, lightweight REST & API client. Collections are YAML files in your repo — no account, no request limits, commercial use allowed.

Built by Ciro Cesar Maciel — because the API client I used every day started locking my own requests behind a paywall.

ciromaciel.click Marketplace version Marketplace installs Open VSX version Open VSX downloads

REST Studio in VS Code: the Orders API collection in the side bar, a POST /v1/orders request with a JSON body on the left, and the 201 Created JSON response with 4 of 4 tests passing on the right


I test APIs all day. The extension I used for it was fast and simple — until collections got capped, Git sync went behind a subscription, and the free version stopped working in Cursor. My requests were suddenly somebody else's product.

So I built the API client I wanted: everything that runs on your machine is free, in any editor. Your requests are plain YAML files in a .api/ folder of your project, so they live in Git next to the code they test.

Open the REST Studio side bar → New Request → type a URL → ⌘ Enter (Ctrl+Enter).


See it in action

Collections and environments are files. The side bar is just a view of .api/.

The REST Studio side bar with the Orders API collection and three environments, next to create-order.yaml, local.yaml and a protected production.yaml opened as plain YAML

This is the request from the screenshot above, exactly as it sits in the repo:

# .api/orders-api/orders/create-order.yaml
name: Create order
seq: 1
request:
  method: POST
  url: "{{baseUrl}}/v1/orders"
  headers:
    Idempotency-Key: "{{$uuid}}"
  auth:
    bearer: "{{token}}"
  body:
    json:
      customer: "{{customerId}}"
      currency: usd
      items:
        - sku: TEE-ORGANIC-BLK-M
          quantity: 2
        - sku: MUG-STONEWARE-12OZ
          quantity: 1
tests:
  - status == 201
  - body.status == "pending"
  - body.total == 6700
  - time < 500
set:
  orderId: body.id
# .api/environments/production.yaml
name: production
protected: true          # asks before sending
variables:
  baseUrl: https://api.northwind-goods.com
secrets:
  - clientSecret         # only the name; the value is encrypted on your machine

Run a whole collection: log in, create, read, cancel, with every test checked.

The collection runner on Orders API with env local: 7 of 7 requests passed, 0 failed, 20 of 20 tests, 235 ms, one row per request with status, time and tests

Get access token saves token, List customers saves customerId, Create order saves orderId, and every request after that uses them. No script, no code.

Already on Thunder Client? REST Studio finds your thunder-tests folder and brings it over in one click.

The REST Studio welcome page listing Thunder Client collections found in the workspace (Payments, 6 requests; Webhooks, 3 requests; 2 environments), an Import button, and import buttons for Postman, Insomnia, OpenAPI / Swagger, cURL and .http files


Why this one?

  • Free for real. Unlimited requests, collections, folders, environments, history, tests and collection runs. Commercial use allowed. No account, no sign-in, no trial.
  • Any editor. VS Code, Cursor, VSCodium and Windsurf, also over Remote SSH and WSL. Published on the Marketplace and on Open VSX.
  • Your data, in files. Collections live in .api/ as readable YAML. Review them in a pull request, edit them by hand, share them with git push. No proprietary database, no cloud sync.
  • Secrets stay secret. Write {{secret.clientSecret}} in a request; the value is encrypted by the editor's SecretStorage on your machine. Only the name goes into the repo.
  • Bring everything with you. Import from Thunder Client (found automatically), Postman collections and environments, Insomnia, OpenAPI / Swagger, .http files and cURL. Export back to Postman format any time.
  • Tests without code. status == 201, body.items.length > 0, header.content-type contains json, time < 500. They run on every send and in the collection runner.
  • Chained requests. Capture values from a response (token = body.access_token) and use {{token}} in the next request. Log in once, then every call is authenticated.
  • Safe by default. Mark an environment protected: true and REST Studio asks before sending to it. Requests are only sent from trusted workspaces. Nothing in a collection file can run code on your machine.
  • Zero telemetry. No analytics, no phoning home, fonts bundled. The only network traffic is the requests you send.

How it compares

REST Studio Thunder Client Postman for VS Code Bruno REST Client
Free for commercial use Yes No: free tier is non-commercial Partial: free plan is 1 user Yes Yes
Unlimited collections and requests, free Yes No: capped Yes Yes Yes
No account or sign-in Yes Yes No Yes Yes
Collections as files in your repo Yes: YAML Partial: Git sync is paid No: cloud workspaces Yes: .bru Yes: .http
Visual request editor Yes Yes Yes Yes No: text only
Free in Cursor, VSCodium, Windsurf Yes No: paid outside VS Code Yes Yes Yes
Tests without writing code Yes Yes No: JavaScript Yes No
Import from Thunder, Postman, Insomnia, OpenAPI, cURL Yes: all five Partial: some Partial: some Partial: no Thunder No
Secrets encrypted outside the repo Yes Partial: paid Yes Yes No
Paid plans Pro, optional from US$ 3/mo, yearly only from US$ 9/mo from US$ 6/mo, yearly only —
Marketplace rating new 2.4 / 5 (753 reviews) 3.0 / 5 3.9 / 5 4.9 / 5, last update 2022

From each product's public listing and pricing page, September 2026. Something changed? Tell me at ciromaciel.click and I'll fix the table.


Coming from another client?

You use What happens
Thunder Client REST Studio detects thunder-tests/ (and Thunder's own storage) and offers to import collections, folders, environments and tests in one click. Your originals stay untouched.
Postman Import Collections… → Postman: collections v2.0/v2.1 with folders, auth, bodies and variables; environments too (secret values go to SecretStorage). Common pm.test snippets become no-code tests.
Insomnia v4 JSON and v5 YAML exports, including folders and environments.
REST Client / JetBrains .http and .rest files, with @variables and # @name.
OpenAPI / Swagger One request per operation, grouped by tag, with {{baseUrl}}.
A terminal Paste a curl command into the URL bar, or use Import cURL. Copy as cURL does the reverse.

Use it

  1. Open the REST Studio icon in the Activity Bar.
  2. New Request (+), or Import your existing collections.
  3. Type a URL — or paste a cURL command — and press ⌘ Enter (Ctrl+Enter).
  4. Pick an environment in the status bar (local, staging, production) to fill {{variables}}.
  5. Set secrets with REST Studio: Set Secret… (key icon on an environment).
  6. Right-click a collection or folder → Run Collection to run every request and its tests in order.

Test syntax: subject operator value. Subjects: status, time, size, header.<name>, body.<path> (like body.items[0].id). Operators: == != < <= > >= contains in matches exists, plus !contains !in !exists.

Dynamic values: {{$uuid}}, {{$timestamp}}, {{$isoTimestamp}}, {{$randomInt}}.


Configuration

Setting Default What it does
restStudio.timeout 30000 Request timeout in milliseconds (0 waits forever).
restStudio.followRedirects true Follow HTTP redirects (up to 10). Credentials are never forwarded to another origin.
restStudio.verifyTls true Verify TLS certificates. Turn off only for local self-signed certificates.
restStudio.historyLimit 100 Sent requests kept in History, on this machine only.

Requests go through the editor's HTTP stack, so your http.proxy settings apply.


FAQ

Is it really free for commercial use? Yes. Everything that runs on your machine — requests, collections, environments, secrets, tests, the runner, import and export, Git — is free, with no limits, at work too. A future Pro plan will add things that cost money to run (CI runs with pull-request reports, sync between machines), never features taken away from the free version.

Where is my data stored? Requests and environments: in .api/ inside your project. Secret values: in the editor's encrypted SecretStorage. History and runtime variables: in local workspace storage. Nothing is uploaded anywhere.

Does it work in Cursor, VSCodium and Windsurf? Yes. It is published on Open VSX and works the same in every editor based on VS Code.

Can a teammate's branch run code on my machine? No. Tests and captures are parsed, never evaluated, and requests are only sent from trusted workspaces.


About me

I'm a developer building tools I want to use. More of my stuff at ciromaciel.click.

If REST Studio saved you from a paywall, send it to a teammate who's still stuck behind one.


Proprietary — see LICENSE.


Keywords: rest client, api client, http client, rest api, http request, api testing, postman alternative, thunder client alternative, insomnia alternative, bruno alternative, curl, openapi, swagger, collections, environment variables, collection runner, cursor, vscodium, windsurf.

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