Requests, versioned on every save
Build collections, save once, share with your team. Every save is a snapshot with author + timestamp — diff, restore, or replay any past revision.
Save requests, capture webhooks, and chain them into flows — one collaborative workspace where every change is versioned and every run is replayable. Built for teams who'd rather ship than configure.
Stands on open standards
Features
Save and version requests. Capture and forward webhooks. Chain it all into flows — the full lifecycle of an API call in one tab.
Build collections, save once, share with your team. Every save is a snapshot with author + timestamp — diff, restore, or replay any past revision.
Mint a unique inbound URL in one click. Inspect every payload, transform with a tiny JS function, fan out to 3 destinations.
Pipe responses step to step, extract values, branch on status, assert on results. Run from the UI, on a cron schedule, or in CI.
GET /v1/charges - "limit": 10 + "limit": 50 + "expand[]": "customer"
Audit who changed what, six months ago, on the request that just broke. Restore writes a new revision — nothing is ever destroyed.
Workspace-scoped vars with {{var}} substitution. Secrets encrypted at rest with per-workspace keys.
OAuth 2.0 with auto-refresh, AWS SigV4, HTTP Digest, Basic, Bearer — configured per request, cached per user.
Collections, environments, and history your whole team can see. Threaded comments with @mentions.
Cron-driven flow runs with Slack, Discord, webhook + email alerting on failure. Your smoke tests, on autopilot.
A tiny binary dispatches requests from your own network — hit internal APIs without firewall holes.
Postman v2.1, Insomnia v4, Bruno folders, and OpenAPI 3 — folder structure and auth carry over.
See it in action
Three views from inside the app — not stock photography, not vapor.
Mint a unique inbound URL in one click. Inspect headers, body, and timing for every event. Transform with a tiny JS function and fan out to up to 3 destinations in parallel.
{ "id": "evt_3PaX9k…", "type": "checkout.session.completed", "data": { "object": { "customer": "cus_NJxQ…", "amount_total": 2199 } } }
Build a flow visually. Pipe responses from step to step, extract values with a JSON path, branch on status, assert on the result. Run from the UI, on a schedule, or from CI.
Audit who changed what, when, and why. Restore in one click — restoring writes a new revision so nothing is destroyed.
GET /v1/charges query: - "limit": 10 + "limit": 50 + "expand[]": "customer" headers: Authorization: Bearer {{API_KEY}}
Automate it
The CLI runs the exact same code path as the web runner. Point it at a request, a flow, or a whole collection — it dispatches every step, runs your assertions, and exits non-zero on failure.
Why we built it
Most teams use a desktop app that holds requests hostage in one engineer's profile. Every change overwrites the last. Environments live in a chat thread. You email curl snippets like it's 2014.
A teammate "fixes" your saved request and the last working version is gone. Without history there's no rollback.
Your {{HOST}} works locally, theirs doesn't. The env file is on someone's laptop. Nobody knows whose.
Your API client has no CLI, so the integration tests you set up in the UI never run again after Monday.
One workspace. Shared collections. Every save versioned. One CLI that runs the same collection in CI.
Who it's for
From the first curl at 2am to the regression suite that gates your deploy.
Skip the install. Open a tab, fire a request, share a link. Your collections follow you between machines because they live in your workspace, not your laptop.
Shared collections, shared environments, shared history. Build a flow that provisions a customer, captures the resulting webhook, and asserts the side effects. Then run it every deploy.
Maintain a canonical collection that mirrors your public API. Import OpenAPI to stay in sync. Hand customers a single link instead of a 70MB export.
How we stack up
Honest comparison — pick the right tool for your team.
| Postman | Bruno | Insomnia | ||
|---|---|---|---|---|
| Versioned history (every save) | Yes | Paid plan | Git only | Sync only |
| Browser-native | Yes | Web (paid) | Desktop | Desktop |
| Shared workspaces + comments | Built in | Workspaces (paid) | No | Sync only |
| Inbound webhook capture + forward | Built in | Mock servers | No | No |
| Multi-step flows (chain requests) | Visual + scripted | Test scripts | Runner | Test suites |
| Scheduled runs + alerting | Slack · Discord · webhook · email | Paid monitors | No | No |
| Import Postman / Insomnia / Bruno | All three | Own format | Postman | Postman |
| Local agent for internal APIs | Yes | Agent | Local | Local |
| CLI for CI | Yes | Newman | CLI | Inso |
| Try before you buy | 14-day full trial | Limited free tier | Free (OSS) | Limited free tier |
| Install required | None | Desktop / Web | Desktop | Desktop |
Comparison reflects vendor docs as of writing. Things change — re-check before you switch.
How it works
From the first save to the regression suite running in CI — same workspace, same source of truth.
Build a request, hit Save, share the URL with your teammates. Every save is a snapshot you can diff, restore, or replay.
Mint a webhook URL in one click. Point Stripe, GitHub, or your own producer at it. Transform on the fly, forward downstream.
Wire requests, scripts, and delays into a single workflow.
Run from the UI — or from CI with apistash run.
Pricing
Try it free for 14 days, then one flat price per workspace — no per-seat tax, no feature gates. Everything API Stash does, for your whole team.
$19/mo per workspace
Free for 14 days. No credit card to start.
14 days free, then $19/mo. Cancel anytime from workspace settings.
Questions
$19/mo per workspace — one flat price, billed per workspace rather than per seat, with every feature included. There are no locked tiers or add-ons. New workspaces start with a 14-day free trial (no credit card to start) so you can evaluate the whole product before you pay.
Your workspace data lives in an isolated tenant on our managed backend, deployed to a global edge network for low latency. Secrets — OAuth tokens, environment values marked as secret, MFA seeds, agent credentials — are encrypted at rest with workspace-scoped keys, separate from the data they protect. We never touch your request payloads beyond the round-trip needed to dispatch them.
Yes — the local agent is a small Node binary you run on a developer machine or a build runner. The web app dispatches requests to it over an authenticated WebSocket; the agent calls your private API and returns the response. No firewall holes, no VPN-into-prod.
Flows let you chain multiple API requests into a single workflow. Each step can be a request (with extracted values piped to the next), a JS script, or a delay. Branch on status codes, assert on responses, retry on failure. Session cookies inherit across steps automatically. The same flow runs in the UI, on a cron schedule, and in CI via apistash run.
Create a webhook in one click and we mint you a unique inbound URL. Point any service at it — Stripe, GitHub, your own producer — and we capture every payload with full headers and body in your inbox. Inspect them, optionally transform with a tiny JS function, and forward to up to 3 downstream URLs in parallel.
Yes, via the apistash run CLI. Point it at a request, a flow, or a whole collection plus an environment, and it dispatches every step, runs assertions, and emits a JUnit/HTML report. Exit code is non-zero on assertion failure, so it slots into any CI pipeline.
Postman is closed source and gates collaboration, history, and monitors across several paid tiers. Bruno is great and open-source, but every collection lives in a git repo — there's no live collaboration. API Stash sits in between: web-native, shared by default, with versioning and webhook capture standard, and flows as first-class citizens. And instead of a maze of tiers, there's one flat price per workspace with every feature included.
Yes — all three, plus OpenAPI 3. Postman v2.1 exports, Insomnia v4 exports, and Bruno folders of .bru files import with folder structure and auth configuration carried over.
Every time you hit Save, API Stash writes a revision row with the full snapshot — method, URL, headers, body, scripts — plus author and timestamp. Flows version the same way. You can diff, restore, or run any past revision; restoring writes a new revision so nothing is destroyed.
We're a small team. Support is by email — Pro workspaces jump the queue. Status page is in your URL bar — if it's up, it works. We move fast and tend to ship enhancements in days, not quarters.
Requests, webhooks, and flows in one workspace. Shared. Web-native. Built for teams who'd rather ship than configure. Free for 14 days.