A hosted mock URL for every spec.
Frontend teams stub your API the moment the spec is parsed. Schema-walked responses by default, named examples on demand, stateful overrides when you need to pin a specific reply for a specific request shape. REST and GraphQL both run.
HTTP/2 200x-mock-synth: named-examplex-mock-version: v1x-mock-operation-id: listUsers { "page": 2, "users": [{ "id": "u_8f3a", "email": "ada@acme.io" }] }# Re-run to advance the sequential cursor.Median spec-driven mock latency
Real graphql package execution
Stateful overrides per project
Per-project rate limit
Response selection
A deterministic priority chain — never a random guess.
Every request walks the same priority chain. TheX-Mock-Synthresponse header tells you exactly which step produced the body you got back.
Stateful override hits
X-Mock-Synth: overrideMethod + path + (optional) query / headers / partial body / GraphQL operationName. First match wins.
Prefer: example=<name>
X-Mock-Synth: named-examplePick a specific named example from the spec. Cycle through them with sequential (Redis-backed) or random.
Explicit example in the spec
X-Mock-Synth: exampleOpenAPI's response.example or Swagger's example fires next. Direct from the spec.
Schema-level example
X-Mock-Synth: schema-exampleExample sitting on a schema definition (often via $ref). Resolved through allOf / oneOf / anyOf.
Faker-extended schema walk
X-Mock-Synth: schema-walkGenerate a realistic sample from the schema with format-aware faker output (uuid, email, date-time, ipv4) and full $ref / allOf / oneOf / anyOf resolution.
Empty-schema fallback
X-Mock-Synth: empty-schemaSpec couldn't produce a body. Returns an empty object / array / null per the schema's nullable rules.
Stateful overrides
Pin a response — to a request shape, not just a path.
Match by method + path, then optionally by query, headers, a deep-partial body subset, and (for GraphQL) by operationName. Priority + first-match-wins, with optional latency simulation and dynamic templates.
Override priority stack
first-match winsPOST /v1/checkout/sessionsHITpinned: { idempotency_required: true }rate-limit demoGET /v1/userspinned: ?page=99empty-stateGET /v1/users/{id}pinned: X-Test-User: chaosuser-not-foundNo override matches → fall through to the spec.
Walks the response priority chain and emits X-Mock-Synth: schema-walk (or whichever step fired).
{
"id": "{{$uuid}}",
"echo": "{{request.body.email}}",
"now": "{{$now}}"
}Dynamic templates in bodies + headers
~30 built-in tokens like {{$uuid}} / {{$now}} / {{$randomEmail}}, plus full request echoing — {{request.body.email}}, {{request.path.id}}, {{request.headers.authorization}}.
Prefer-header response steering
Cycle named examples with sequential (Redis-backed for deterministic CI), pick a specific named example, or override status with code=429.
Strict validation, opt-in
Toggle on per project to validate every incoming request against the matched operation. Failures return 400 with field-level paths and X-Mock-Synth: validation-error.
Network simulation built-in
Configurable latency band (0–30s uniform random) plus chaos error rate (0–100% forced into a custom 4xx/5xx). Stress-test retry / loading / timeout code without touching prod.
Activity feed
Every request, every override hit, in real-time.
The Mock Server dashboard tab streams the last 50 hits with method / path / response source. 14-day retention, 24h / 7-day stat rollups, top-endpoint summary, and a synth breakdown so you can see at a glance which path produced every response.
- Two-layer rate limiting — 120 req/min/project, 60 req/min/IP. CORS open so any browser can call.
- Per-endpoint disable list — opt specific operationIds out of mocking, scoped per- version or project-wide. 503 for those, mocks for the rest.
- Override import / export — versioned JSON bundles, merge-or-replace on import, capacity-checked up-front against the 50-rule cap.
/v1/usersnamed-examplenow/v1/checkout/sessionsoverride0.4s ago/v1/users/u_8f3aschema-walk2s ago/graphqlgraphql-schema-walk4s ago/v1/ordersexample5s ago/v1/checkout/sessionsvalidation-error7s agoGET /v1/usersOn every plan
Free for everyone — Pro and Business unlock the simulator.
Free
10,000 requests / month
- 5 stateful overrides per project
- 24-hour activity log
- Schema-walked responses + GraphQL
- Override import / export (read-only)
Pro
100,000 requests / month
- 25 stateful overrides per project
- 14-day activity log
- Network simulation (latency + chaos)
- Strict validation toggle
- Spec-driven auth enforcement
- Override bundles (full read/write)
Business
Unlimited requests
- 50 stateful overrides per project
- 30-day activity log
- Custom domain on the docs site
- Priority support
Pairs well with
SDK Generator
Drop-in TypeScript or Python SDK from your spec — paired with the mock URL, your frontend can stub the entire integration before the backend exists.
MCP Server
Plug your spec into Claude / Cursor / Cline. The mock URL means the AI can iterate against synthetic responses before touching prod.
Spec Diff
Pair the mock with a PR diff that flags breaking changes before merge. Frontend stubs stay in sync with the contract.
Get a mock URL in under a minute.
Upload an OpenAPI, Swagger, or GraphQL spec — or paste a URL and Outworx fetches it on the schedule you pick. Every public project gets a free hosted mock URL out of the box. No plan gate, no setup.