Apiflow is a completely free, AI-powered API development platform designed as a modern alternative to Postman, Hoppscotch, and Insomnia.
It supports API testing, mocking, WebSocket, AI agents, team collaboration, offline usage, and local deployment — while fully embracing the OpenAPI 3.0 ecosystem.
- All features are free to use
- No paid plans, no feature limits
- Built-in AI Agent for API design, testing and debugging
- Configure your own Large Language Model
- Works in offline or intranet environments
- Built-in team and workspace management
- Unlimited teams and members
- Fine-grained permission control:
- Project-level permissions
- Role-based access control (RBAC)
- Read / write / admin roles
- Operation history and change tracking
- Designed for teams of any size
- Local-first by design, online when you need it
- Full offline capability with local persistence
- Bidirectional conversion between offline and online data
- Smooth transition from personal usage to team collaboration
- Ideal for private networks and restricted environments
- One-click Docker deployment
- Data fully controlled by yourself
- Suitable for enterprises and private networks
- Import & export OpenAPI 3.x
- Save completed JSON, text, and empty HTTP responses as named examples, including their status codes and content types
- Include multiple examples for the same status code in offline OpenAPI exports
- Preserve folder grouping and URL prefixes when importing OpenAPI documents
- Seamlessly migrate data to:
- Postman
- Insomnia
- Hoppscotch
- Any OpenAPI-compatible tool
- HTTP API testing (RESTful) with connection pooling and keep-alive reuse
- WebSocket testing
- Mock Server (HTTP / WebSocket / SSE)
- Environment & variable system
- Pre-request & post-request scripts
- Project & folder management
- Import / Export (Postman, OpenAPI, JSON)
- Internationalization (EN / ZH / JA)
Download the latest version for your platform:
| Platform | Download |
|---|---|
| Windows | https://github.com/trueleaf/apiflow/releases |
| macOS | https://github.com/trueleaf/apiflow/releases |
| Linux | https://github.com/trueleaf/apiflow/releases |
Desktop releases from v0.9.82 use Tauri and Rust. When upgrading from an Electron-based release, back up your local data using Settings → Local Data → Data Backup / Export, then install the new package and restore the backup in the new client. Download the installer directly for this transition; the new client uses a signed Tauri update feed.
- Docker
- Docker Compose
git clone https://github.com/trueleaf/apiflow
cd apiflow
cp .env.example .env
# edit .env to configure MongoDB credentials
docker compose pull
docker compose up -d
# Verify deployment
curl http://localhost
curl http://localhost/api/healthAfter successfully deploying Apiflow, follow these steps to add users:
-
Switch to Internet Mode
- Click the network mode toggle in the application (usually in the top-right corner)
- Select "Internet Mode" to enable online features
-
Login with Default Admin Account
- Username:
admin - Default Password:
111111 - Important: Change the default password after first login for security
- Username:
-
Add New Users
- Navigate to the admin panel/backend management
- Find the user management section
- Click "Add User" to create new accounts for your team members
If you are running Apiflow with Docker, updating the code does not require rebuilding locally.
Option 1: Using Update Script (Recommended)
# Make scripts executable (first time only)
chmod +x update.sh rollback.sh
# Run update
./update.shOption 2: Manual Update
docker compose down
docker compose pull
docker compose up -dRollback (recommended: snapshot-based rollback)
# Option 1: rollback to the latest snapshot created by update.sh (recommended)
./rollback.sh --previous
# Option 2: rollback to a specified snapshot file (recommended)
./rollback.sh --file current_versions_20260122_120000.txt
# Option 3: compatibility mode, rollback by tag/sha (not guaranteed to be exact, for emergencies)
./rollback.sh v1.2.3
# ./rollback.sh 7f3a2b1c4d5eAfter deploying with Docker you can access the system directly via browser. If you want to use the full desktop experience, follow the steps below to build the client.
- Node.js: >= 22.12.0
- Rust: >= 1.85 with the native toolchain for your target platform
- macOS: Xcode Command Line Tools required (
xcode-select --install) - Linux: WebKitGTK 4.1, AppIndicator, OpenSSL development packages,
patchelf,fakerootanddpkg - Each platform's installer can only be built on its native OS (no cross-platform compilation)
If npm downloads are slow, uncomment the registry line in the root .npmrc:
registry=https://registry.npmmirror.comgit clone https://github.com/trueleaf/apiflow.git
cd apiflow
npm installEdit packages/web/src/config/config.ts and adjust the following settings as required:
// Change the backend server URL
// Default points to the official server; replace with your own when self-hosting
httpRequest: {
url: isDev ? 'http://127.0.0.1:7001' : 'https://your-server.example.com',
// ...
},Note: After packaging, the server URL can also be updated at any time in the app via Settings → App Config → API Endpoint, without needing to repackage.
# Windows
npm run web:build:local:win
# macOS
npm run web:build:local:mac
# Linux
npm run web:build:local:linux
# Quick verification only (build the native binary without an installer)
npm run web:build:local:pack
# Microsoft Store MSIX (requires Windows SDK)
npm run web:build:local:win:storeTip (Windows): Install the Windows SDK to build MSIX packages. The Store package includes the official WebView2 fixed runtime.
| Command | Description |
|---|---|
npm run web:build:local:pack |
Build the Tauri binary without an installer |
npm run web:build:local:win |
Build Windows NSIS .exe and MSI .msi installers |
npm run web:build:local:win:store |
Build a Microsoft Store .msix package |
npm run web:build:local:mac |
Build macOS bundles on macOS |
npm run web:build:local:linux |
Build Linux packages on Linux |
Tauri installers are located in packages/web/src-tauri/target/release/bundle/. Microsoft Store packages are written to packages/web/release/.
For tagged releases, configure the repository secret TAURI_SIGNING_PRIVATE_KEY and variable TAURI_UPDATER_PUBLIC_KEY before running .github/workflows/build-tauri.yml. Set TAURI_SIGNING_PRIVATE_KEY_PASSWORD if the key is encrypted. The tag must match v plus packages/web/package.json's version. The workflow uploads signed installers and MSIX packages as Actions artifacts. After verification, upload the installers and their signatures to a draft GitHub Release, generate latest.json from the signed artifacts, then publish the release. Submit MSIX packages to Partner Center separately.
To rebuild an existing release tag after a workflow fix, run Build Tauri from the main branch and set release_tag to that tag (for example, v0.9.82). All verification and packaging jobs check out the selected tag.
- Node.js: >= 22.12.0
- MongoDB: Running locally or accessible remotely
- Git: For cloning the repository
- Clone the repository
git clone https://github.com/trueleaf/apiflow.git
cd apiflow
npm install- Start development servers
npm run devThis command will start both the frontend and backend servers concurrently:
- Frontend (Tauri): http://localhost:4000 inside the desktop application
- Backend (Server): http://localhost:7001
| Command | Description |
|---|---|
npm run dev |
Start both frontend and backend in development mode |
npm run dev:web |
Start the browser-only frontend |
npm run web:dev |
Start the Tauri desktop frontend |
npm run server:dev |
Start only the backend |
npm run web:build |
Build the web application |
npm run server:build |
Build the server application |
npm run server:test |
Run server unit tests |
npm run bootstrap |
Install all dependencies |
This is a multi-package monorepo:
packages/web- Web and Tauri desktop application (Vite + Vue 3 + Rust)packages/server- Backend application (Midway.js + MongoDB)packages/website- Marketing website (Next.js)
- Ensure MongoDB is running before starting the server
- The frontend supports hot module replacement (HMR) for fast development
- Backend auto-restarts when files change
- You can develop packages independently by running their specific dev commands
This project is licensed under the MIT License.
See the LICENSE file for details.


