REST Lab
A modern REST API client for Visual Studio Code. Test, debug, and manage your APIs with a beautiful, intuitive interface.
✨ Features
🚀 Full HTTP Method Support
Test your APIs with all standard HTTP methods including GET, POST, PUT, PATCH, DELETE, HEAD, and OPTIONS.
📁 Organize with Collections & Folders
Create folders to organize your API requests. Keep your workspace clean and structured with unlimited collections.

⚙️ Folder-Level Configuration
Set base URLs and default headers at the folder level. All requests within a folder automatically inherit these settings, reducing repetitive configuration.

🌍 Environment Support
Create multiple environments per collection (for example: Local, Staging, Production), mark one as active, and use variables across requests.
- Collection-scoped environments with fast switching
- Enable/disable individual variables
- Variable autocomplete when typing
{{ in supported fields
- Real-time interpolation preview in the request URL
Use variable syntax:
{{baseUrl}}
{{token}}
{{userId}}
Variables are applied in:
- Request URL and query params
- Request headers
- Request body
- Folder settings such as base URL, header values, and query params

📝 Modern Request Editor
Clean, intuitive interface for crafting requests with editable names, organized tabs, and easy-to-use editors.

🎯 Multiple Content Types
Support for all common content types:
- JSON (with syntax highlighting)
- XML
- Form URL Encoded
- Multipart Form Data
- Plain Text
- HTML
📤 File Upload Support
Easily upload files using multipart form data with built-in file picker.

Intelligent autocomplete for common HTTP headers makes request configuration faster and error-free.

📊 Beautiful Response Viewer
View formatted responses with:
- Syntax-highlighted JSON/XML
- Response headers display
- Status code indicators
- Response time tracking
- Response size metrics

📥 Export/Import Collections
Export/Import your existing collections from:
- REST Lab native format
- Postman (v2.1 format)
- Thunder Client
Share your API collections with team members or backup your work.

🔧 Copy as cURL
Generate cURL commands from any request with a single click. Perfect for sharing API calls or debugging in terminal.
🎨 Drag & Drop Organization
Reorder your requests and folders with intuitive drag-and-drop functionality.

💾 Persistent Storage
All your requests, folders, and configurations are automatically saved and persist across VS Code sessions.
📋 Response Actions
- Copy response data to clipboard
- Download response as file
- Beautify JSON/XML responses
- View raw response data
🚀 Getting Started
Installation
- Open VS Code
- Go to Extensions (Ctrl+Shift+X / Cmd+Shift+X)
- Search for "REST Lab"
- Click Install
Quick Start
- Open REST Lab: Click the REST Lab icon in the Activity Bar (left sidebar)
- Create a Folder: Click the folder icon (📁) to create your first collection
- Configure Folder (Optional): Click the ⚙️ icon to set base URL and default headers
- Add Environment (Optional): In collection settings, open the Environments tab and add env variables
- Add Request: Click the ➕ icon to create a new request
- Send Request: Configure your request and click the Send button!
Environment Quick Start
- Open a collection and go to the Environments tab
- Create environments like
Local, Staging, and Production
- Add variables such as
baseUrl, token, userId
- Mark one environment as active
- Use variables in requests with
{{variableName}}
- Switch the active environment from the request editor dropdown when needed
Environment Behavior
- Environments are stored at the root collection level
- Nested folders and requests use the active environment from their root collection
- Only enabled variables are applied
- If a variable does not exist, the placeholder is left unchanged
- In folder settings, local active-environment variables override inherited environment variables with the same key
💡 Usage Tips
- Organize by Project: Create separate folders for different APIs or projects
- Use Base URLs: Set base URLs at the folder level to avoid repetition
- Default Headers: Configure common headers (like Authorization) at folder level
- Use Environments: Keep separate values for local, staging, and production
- Use Variables Everywhere: Reuse
{{variables}} in URLs, headers, params, and body
- Quick Testing: Press Send button or use keyboard shortcuts for faster testing
- Import Existing: Migrate from Postman or Thunder Client using the import feature
📋 Requirements
- Visual Studio Code 1.85.0 or later
🤝 Contributing
Contributions are welcome! Feel free to submit issues and pull requests.
📄 License
This project is licensed under the MIT License - see the LICENSE.md file for details.
Enjoy testing your APIs with REST Lab! 🧪
Made with ❤️ for the VS Code community