A next-generation, browser-based API client designed for developers, analysts, and QA teams. SmartReq moves beyond simple requests, offering a powerful suite for single-request debugging, high-performance bulk processing, and intelligent, combinatorial request body generation.
This platform is packed with professional-grade features designed to streamline your API testing and data processing workflows.
- Full-Featured Request Composer: Craft any HTTP request with support for
GET
,POST
,PUT
,PATCH
,DELETE
, and more. - Intuitive Parameter & Header Editing: A dynamic key-value editor that makes managing query parameters and headers effortless.
- Comprehensive Auth Support: Built-in helpers for Bearer Token, Basic Auth, and API Key authentication.
- Flexible Request Bodies: Support for JSON (with validation), Form-Data, and x-www-form-urlencoded.
- Pre-request & Test Scripting: Leverage JavaScript scripting to manipulate request data or assert response conditions.
- Multi-View Response Inspector: Analyze response bodies in different formats:
- Raw View: Syntax-highlighted text with search and word-wrap.
- Hierarchical Table View: A powerful, recursive, and collapsible table for navigating complex JSON responses.
- HTML Preview: Render HTML responses in a sandboxed iframe.
- Drill-Down Navigation: Seamlessly promote any nested JSON object or array into its own dedicated, filterable table view with breadcrumb navigation.
- Data Export: Export table data to CSV or XLS with a single click.
A dedicated workspace for running data-driven API tests at scale.
- Versatile Data Input: Populate your run with data by uploading CSV/JSON files, pasting raw data, or using the integrated spreadsheet editor.
- Dynamic Request Templating: Use
{{variable}}
syntax in your URL, headers, and body to inject data from your input source into each request. - High-Performance Execution:
- Run up to 50 requests in parallel with the concurrency controller.
- Throttle requests with a configurable delay to respect API rate limits.
- Live monitoring dashboard with real-time progress, success/error counts, and requests per second.
- Full execution control with Pause, Resume, and Stop buttons.
- Rich Results Analysis:
- A sortable and filterable master results grid.
- Drill-down into any individual result to see the full request/response pair.
- Visualize the run with an aggregated summary chart of status codes.
- Export Consolidated Data: Download a "flattened" CSV of the entire run, where nested JSON responses are expanded into their own columns for easy analysis.
The ultimate tool for generating complex, combinatorial test data.
- Generate Data from JSON: Use your request's JSON body as a template to generate hundreds of unique request bodies.
- Multi-Value Variables: Select keys to act as variables and provide multiple values for each.
- Visual Dependency Engine: Create dynamic relationships where one field's value is templated based on others (e.g.,
description: "Profile for {{name}}"
). - Live Preview: See a real-time preview of all generated combinations before running.
- Seamless Bulk Mode Integration: Send your generated data directly to the Bulk Mode data grid with a single click.
- Flexible Layouts: Instantly switch between a vertical (top/bottom) or horizontal (side-by-side) view for the request and response panels.
- Fully Responsive: The entire interface is optimized for both desktop and mobile devices.
- Persistent History: All single and bulk runs are saved. Bulk runs are consolidated into a single entry for a clean history log. Clicking an entry restores the entire workspace to its previous state.
- Global Environments: Manage and use global variables across all your requests.
- Light & Dark Themes: Choose your preferred look or sync with your system settings.
The application is designed to be intuitive, with two primary modes of operation.
- Compose: Use the main request panel to set the HTTP Method and URL.
- Detail: Use the tabs below (Params, Authorization, Headers, Body) to configure the request details.
- Send: Click the "Send" button.
- Analyze: View the response in the panel on the right. Use the Raw, Table, or Preview views to inspect the data.
- Switch to Bulk Mode: Click the "Bulk Mode" button.
- Provide Data: In the Data Source panel, click "Paste from Clipboard" and paste the following CSV data:
category,amount Programming,2 Pun,1
- Set Template: In the request panel on the right, set the method to
GET
and the URL to:https://v2.jokeapi.dev/joke/{{category}}?amount={{amount}}
- Execute: In the bottom panel, click Start Run.
- Analyze: Watch the results populate in real-time. Click any result row to drill down into the full request/response details.
- Frontend: React 19 & TypeScript
- Styling: Tailwind CSS for a utility-first styling approach.
- Icons: Lucide React for a beautiful and consistent icon set.
- Data Parsing: PapaParse for robust CSV handling.
- UI Interactivity: Re-resizable for panel resizing.
Contributions are welcome! If you have suggestions for improvements or find a bug, please feel free to open an issue or submit a pull request.
- Fork the repository.
- Create your feature branch (
git checkout -b feature/AmazingFeature
). - Commit your changes (
git commit -m 'Add some AmazingFeature'
). - Push to the branch (
git push origin feature/AmazingFeature
). - Open a Pull Request.
This project is licensed under the MIT License.