A simple, modern web-based REST API client built with HTML, CSS, and JavaScript. Test your APIs with an intuitive form-based interface and powerful features for managing requests and responses.
- Multiple HTTP Methods: Support for GET, POST, PUT, PATCH, DELETE, HEAD, and OPTIONS
- Query Parameters: Easily add and remove query parameters with a dynamic key-value interface
- Custom Headers: Add custom request headers as needed
- Request Body: Support for request bodies (automatically hidden for GET/HEAD/OPTIONS methods)
- Automatic URL Updates: Query parameters automatically update the URL field in real-time
- Smart URL Parsing: Paste URLs with query parameters and they're automatically extracted into the form
- Organized Response View:
- Separate containers for status code, headers, and body
- Color-coded status badges (green for 2xx, yellow for 3xx, red for 4xx, purple for 5xx)
- Formatted JSON responses
- Clean, readable header display
- Attachment Handling:
- Automatic detection of file attachments and binary content
- Download button for attachments with file information (filename, size, content type)
- Smart handling of
Content-Dispositionheaders
- Save Response Body: Download any response body as a file with automatic file type detection
- Save Requests: Save frequently used requests with custom names
- Load Requests: Quickly load saved requests with a single click
- Update Requests: Modify and update existing saved requests
- Rename Requests: Change the name of saved requests
- Delete Requests: Remove requests you no longer need
- Local Storage: All saved requests persist in browser localStorage
- Modern Design: Beautiful gradient design with a responsive layout
- Real-time Feedback: Loading states and error handling
- Intuitive Controls: Easy-to-use buttons and form fields
- Keyboard Support: Press Enter to save requests quickly
- Open
index.htmlin your web browser - Select the HTTP method from the dropdown
- Enter the API endpoint URL
- Add query parameters (if needed) - they'll automatically update the URL
- Add custom headers (if needed)
- Enter the request body (for POST/PUT/PATCH requests)
- Click "Send Request" to make the API call
- View the response in the organized sections below
- Fill out your request (method, URL, parameters, headers, body)
- Enter a name in the "Enter request name to save..." field
- Click "Save Request" or press Enter
- Your request is now saved and appears in the saved requests list
- Click on any saved request in the list
- The request loads into the form automatically
- The request name appears in the save field for easy updating
- Make any changes and save again to update
- Rename: Click the ✏️ button next to a saved request
- Delete: Click the 🗑️ button next to a saved request
- Update: Load a request, make changes, and save again
- Make a request and receive a response
- Click the "💾 Save as File" button next to "Response Body"
- The file downloads with the appropriate extension (.json, .xml, .txt, etc.)
- Paste URLs: Paste a URL with query parameters (e.g.,
https://api.example.com/users?page=1&limit=10) and the parameters are automatically extracted into the form - Auto-update: As you type query parameters, the URL field updates automatically
- Bidirectional Sync: Changes to the URL or parameters stay in sync
The response is displayed in separate, organized containers:
- Status Code: Shows the HTTP status code with a color-coded badge and status text
- Response Headers: Lists all response headers in a clean key-value format
- Attachment Info (if applicable): Shows file details and download button for attachments
- Response Body: Displays the response body with automatic JSON formatting
When a response contains an attachment or binary content:
- The attachment container automatically appears
- Shows filename, content type, and file size
- Provides a download button to save the file
- Handles both explicit attachments (
Content-Disposition: attachment) and binary content types
- Select GET from the method dropdown
- Enter URL:
https://api.example.com/users - Add query parameter:
page=1 - Click "Send Request"
Or paste a URL directly:
- Paste:
https://api.example.com/users?page=1&limit=10 - Query parameters are automatically extracted!
- Select POST from the method dropdown
- Enter URL:
https://api.example.com/users - Add header:
Content-Type: application/json - Enter body:
{
"name": "John Doe",
"email": "john@example.com"
}- Click "Send Request"
- Save the request as "Create User" for future use
- Configure a request (e.g., GET request to fetch users)
- Enter name: "Get All Users"
- Click "Save Request"
- Later, click "Get All Users" in the saved requests list to load it instantly
- Make a request that returns JSON data
- Click "💾 Save as File" next to Response Body
- File downloads as
response.json - Works with any response type (JSON, XML, HTML, images, PDFs, etc.)
Works in all modern browsers that support:
- ES6+ JavaScript (async/await)
- Fetch API
- CSS Grid and Flexbox
- LocalStorage API
Due to browser CORS (Cross-Origin Resource Sharing) policies, some APIs may block requests from this client. If you encounter CORS errors:
- Use a browser extension that disables CORS (for development only)
- Set up a backend proxy server
- Ensure the API server allows requests from your origin
- Saved Requests: Stored in browser localStorage under the key
restClient_savedRequests - Persistence: All saved requests persist across browser sessions
- Privacy: All data is stored locally in your browser - nothing is sent to external servers
- Enter (in save request field): Save the current request
- Click saved request: Load the request into the form
- Quick Testing: Paste URLs directly - query parameters are extracted automatically
- Organize Requests: Use descriptive names when saving requests
- Update Requests: Load a saved request, modify it, and save again to update
- Save Responses: Use "Save as File" to keep response data for analysis
- Attachment Downloads: Binary responses automatically show download options
This project is open source and available for personal and commercial use.
Feel free to submit issues, fork the repository, and create pull requests for any improvements.