Getting started
Connect your app with the browser extension or one URL change, mock your first request, and see it work - in about five minutes.
On this page
FlowMock sits between your app and your real staging API. By default, every request passes through to staging unchanged. When you need a specific test state - declined payment, empty cart, slow network - you flip a switch and only your session sees the mock.
Everyone else keeps hitting real staging. No collisions. No "who broke the store?" Slack threads.
What you'll need
- A staging API your app already talks to
- A FlowMock account with at least one project
- Either Chrome or Firefox (for the browser extension), or access to change your app's API base URL
Step 1: Create a project
In the dashboard, create a team (if you haven't already), then a project. A project maps to one real staging API - think "Checkout staging" or "Mobile app backend." Paste your staging API's base URL when you create it.
Inside the project, each environment (we also call this a proxy endpoint) gets its own FlowMock URL, like:
https://p.flowmock.dev/your-proxy-idStep 2: Send your app's traffic through FlowMock
Pick one of two paths. Both use the same mocks, scenarios, and transforms, and you can switch any time.
Browser extension (no code change)
Best for manual testing in Chrome or Firefox on your own machine.
- Install the FlowMock extension and click its toolbar button to connect it to your account
- Open your app, open DevTools, and pick the FlowMock tab
- FlowMock matches the site's API calls to your environment and turns it on - or click Turn on. Reload the page
The extension sends a session key for you, tied to your FlowMock account, so you can skip Step 3. Full extension guide →
Base URL (works everywhere)
Best for CI, mobile apps, and teammates who don't use the extension.
Swap your app's API base URL from staging to the FlowMock proxy URL. Everything else stays the same - same paths, same headers, same auth tokens.
Your app still talks to staging. FlowMock just sits in the middle, watching and optionally overriding.
Step 3: Send a session key (base URL only)
Add a header so FlowMock knows which tester you are:
x-flowmock-session: qa-aliceEach person (or CI run) uses their own key. Alice's mocks don't affect Bob's session. If your app already sends a JWT, FlowMock can read the tester from one of its claims instead. Learn more about sessions →
Step 4: Create your first mock
With the extension: in the DevTools FlowMock tab, click a request, then Mock. Change the status or body, click Mock it for my session, and reload the page. Your app gets the mocked response; everyone else still gets staging.
From the dashboard: open Traffic, pick a request, and mock it - or open Mocks and create one for a route, say GET /api/cart. Turn it on for your session, hit the route from your app, and you should see your mocked response instead of staging's.
Step 5: Watch the traffic
Open the Traffic tab. Requests show up immediately for every session on the environment - you do not need to claim a session first.
- Session avatars on each row show whose request it was
- Use the Sessions filter to narrow the feed, or claim You in the session strip to focus on your own traffic (and so mocks apply to you)
Every row records method, path, status, timing, and whether a mock applied. Perfect for "wait, what did the API actually return?"
What's next?
- Browser extension - mock from DevTools, see what is on, and never forget a mock
- How it works - the proxy mental model, explained without jargon
- QA sessions - claim identity vs watch all traffic
- Traffic - live feed, filters, focused mode, and AI edit on captured bodies
- Mocks and overrides - matchers, drafts, and the mock library
- Transforms - patch live response bodies without full mocks
- Scenarios - Record scenario from a click-through, or bundle mocks into presets
- Public API - automate session setup from CI