← All guides

Turn an OpenAPI spec into a live mock server β€” one request, no install

You have the contract before you have the backend. That's the whole point of an OpenAPI spec β€” but actually running a mock of it usually means installing something: Prism needs Node and a terminal that stays open, Mockoon wants a desktop app, SwaggerHub's hosted mocking sits behind a paid plan. Fine on your machine; useless for a deploy preview, a teammate on Windows, CI, or your phone.

Mockbird turns a spec into a hosted mock in one request. JSON or YAML in, live URL out:

curl -X POST https://HOST/api/projects/import \
  --data-binary @openapi.yaml

The response is your new backend:

{
  "id": "abc123",
  "name": "Swagger Petstore",
  "adminKey": "…keep this…",
  "baseUrl": "https://HOST/m/abc123",
  "resources": [
    { "name": "pets",   "seeded": 20, "url": "https://HOST/m/abc123/pets" },
    { "name": "owners", "seeded": 20, "url": "https://HOST/m/abc123/owners" }
  ],
  "warnings": []
}

No signup, no CLI, no YAML-to-JSON conversion step. Paste-into-browser also works: the dashboard has an Import OpenAPI / db.json button with a file picker.

What the importer actually understands

Anything it can't model (nested objects, arrays-of-objects inside a record) is skipped and listed in warnings instead of failing the import β€” you still get a working mock of everything else.

What you get that a static mock doesn't give you

Prism replays examples. Mockbird gives you a real stateful CRUD API over seeded data:

GET    /m/abc123/pets?status=available&limit=5   # filters + pagination
POST   /m/abc123/pets                             # actually creates β€” next GET shows it
PUT    /m/abc123/pets/3                           # updates persist
DELETE /m/abc123/pets/3
GET    /m/abc123/pets?mock_delay=2000             # test your spinner
GET    /m/abc123/pets?mock_status=500             # test your error state

Plus sorting, substring search, _expand/_embed relations, nested routes, CORS on everything, a live request inspector, and signed webhooks on writes β€” all free.

Options

OptionEffect
?seed=50records per resource (default 20, max 100)
?name=my-mockproject name (default: the spec's info.title)

Round trip

Every Mockbird project also exports a live OpenAPI 3.0 document at /m/<project>/openapi.json. Import that into Postman or Swagger UI β€” or back into Mockbird: the importer honors x-mockbird-type annotations, so export β†’ import reproduces your schema exactly.

vs the usual suspects

PrismMockoonMockbird
Install neededNode CLIdesktop appnone β€” one curl
Hosted URL for previews/CI/teammatesDIY + tunnelDIY deploybuilt in
Stateful CRUD (writes persist)β€”partialβœ”
Seeded realistic dataexamples onlytemplatesβœ” schema-aware, enums kept
YAML inputβœ”βœ”βœ”
Price for hosted mockingn/an/afree

To be fair: Prism does spec-validation proxying (checking requests against the contract), which Mockbird doesn't. If you need strict contract enforcement, run Prism in CI β€” and use Mockbird for the hosted, stateful, shareable part.

Try it right now

No spec handy? Import the demo project's own spec:

curl -s https://HOST/m/demo/openapi.json | \
  curl -X POST https://HOST/api/projects/import --data-binary @- 

Ten seconds from spec to a live, seeded, CORS-enabled mock of an e-commerce API. Anonymous projects can be claimed into a free account later, so nothing is throwaway.