Pricing

Start free with no account and no card. Upgrade when you need to rehearse failures, generate realistic data, or mirror an API too big for the free limits.

Free

No account needed

$0

Create a mock
  • One endpoint per mock
  • Any status code, headers and body
  • Response delay up to 5s
  • Instant public URL
  • Mocks expire after 7 days

Account

Free, forever

$0

Create free account
  • Everything in Free
  • Mocks saved permanently
  • Up to 3 mocks, 10 endpoints each
  • Endpoints grouped by resource
  • Response delay up to 10s
  • Basic conditional responses
  • Request log: 25 recent calls

Teams

Share with your team

US$15/seat/month

Prices in US dollars.

Coming soon
  • Everything in Pro
  • Shared team workspaces
  • Member roles & permissions
  • Activity log
  • Per-seat billing

What Pro actually gives you

The free tiers are a real product — mocks, endpoints, saved responses. Pro is for rehearsing the things that go wrong, and for mirroring an API large enough to matter.

Make an API fail, on purpose

Name a set of responses — "outage", "rate limited", "expired token" — and flip your whole mock into it. Your error handling finally gets exercised, without editing a single endpoint or waiting for the real API to have a bad day.

curl https://apipreflight.io/m/abc123/orders \
  -H "X-Mock-Scenario: outage"

Switch from the dashboard, or per request from a test — so two people can drive different scenarios against the same mock at once.

A different answer on each call

A scenario can be an ordered sequence: the first call times out, the second returns 500, the third succeeds. That is the retry-and-backoff path you cannot test against a real API, and the reason this product exists.

call 1 → 408 Request Timeout
call 2 → 500 Server Error
call 3 → 200 OK   ← holds here

Holds on the last step so a failure stays reproducible. ?_reset=1 starts over.

Bodies that look like real data

Generate a list instead of copying one row ten times — with names, emails, prices, UUIDs and timestamps that differ every call. Each row is internally consistent, so a person’s email matches their name.

{{#repeat 10}}
{
  "id": "{{uuid}}",
  "name": "{{faker.name.fullName}}",
  "email": "{{faker.internet.email}}",
  "price": {{faker.commerce.price(5,80)}}
}
{{/repeat}}

Click tokens in from a palette rather than memorising them.

Mock only what does not exist yet

Point an endpoint at your real API and it forwards the request — path, query, headers and all — and returns what actually comes back. Mock the two endpoints that are not built; let everything else hit the real thing.

GET /orders/{orderId}   → mocked, returns your fixture
GET /customers/{id}    → forwarded to https://api.yourco.com

https only, and private or internal addresses are refused.

Start from your OpenAPI spec, and hand it back

Paste a spec — JSON or YAML — and get a working mock, with example bodies built from its schemas when it has no examples of its own. Export any mock, or your whole account as one document, to share with the people writing the real API.

Exports are valid OpenAPI 3.1 and carry your scenarios and sequences, so a colleague importing the file rebuilds the whole mock — not a hollow copy of its paths.

Your own address, not ours

Serve a mock from a subdomain of your own — yourteam.apipreflight.io — or from a domain you own, mock.yourcompany.com. The hostname identifies the mock, so the URLs your app calls carry no /m/{id} prefix, and the HTTPS certificate is issued and renewed for you.

https://apipreflight.io/m/abc123/users/1   ← every mock, free
https://yourteam.apipreflight.io/users/1   ← your subdomain
https://mock.yourcompany.com/users/1       ← your own domain

Your own domain takes one TXT record to prove it is yours and one CNAME to point it here — both shown in the dashboard with copy buttons, and the status updates itself while you wait.

A request log you can actually review

Every call to your mock is recorded: method, path, query, headers (credentials redacted), body, the status returned and how long it took — plus which scenario and which sequence step served it, so a failing test on call 3 is explainable. Pro keeps 500 recent calls instead of 25, and exports them as CSV or JSON.

Kept for 30 days. Response bodies are not stored — see the privacy policy.

Room to work

200 endpoints per mock instead of 10, and unlimited mocks instead of three — enough to mirror a real API surface rather than a corner of one.

Questions

Do I need an account to try it? No. You can create a mock and call it right now — try it. Mocks made without an account expire after 7 days.

What happens if I cancel? Your mocks are kept, but anything above the free tier's limits becomes read-only. See the Refund & Cancellation Policy.

Is this suitable for production traffic? No — it is a development and testing tool, with no service-level agreement. See the Terms.

Can I put real data in a mock? Please don't. Mock URLs are public to anyone who has the link. Use test data only — see the Privacy Policy.