Getting started

Point your app at FlowMock, flip a mock, 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
  • Access to change your app's API base URL (or environment config)
  • A FlowMock account with at least one project

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."

Inside the project, create an environment (we also call this a proxy endpoint). Each environment gets its own FlowMock URL, like:

text
https://p.flowmock.dev/your-proxy-id

Step 2: Point your app at the proxy

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

Add a header so FlowMock knows which tester you are:

http
x-flowmock-session: qa-alice

Each person (or CI run) uses their own key. Alice's mocks don't affect Bob's session. Learn more about sessions →

Step 4: Create your first mock

In the dashboard, open your environment and create a mock (we call them overrides). Pick a route — say GET /api/cart — and define the response you want.

Publish it, then activate it for your session. Hit the route from your app. You should see your mocked response instead of staging's.

Step 5: Watch the traffic

Open the Logs tab. Every request through the proxy is recorded — method, path, status, timing, and whether a mock applied. Perfect for "wait, what did the API actually return?"

What's next?