โ† All guides

A Microcks alternative for when you don't want to run a platform

Let's start with the respect it deserves: Microcks is probably the most serious open-source API mocking project there is โ€” a CNCF incubating project that turns OpenAPI, AsyncAPI, gRPC protobuf, GraphQL schemas, Postman collections and SoapUI projects into live mocks, and runs conformance tests against your real implementation. If your organization needs contract testing across REST, gRPC, SOAP and Kafka on a Kubernetes platform, Microcks is the right answer and this page won't pretend otherwise.

This guide is for a different moment: you have an OpenAPI spec (or nothing at all), you want a mock API URL your frontend or tests can hit in the next sixty seconds, and standing up a platform to get it feels like overkill. That's the gap Mockbird fills.

What Microcks asks of you

Microcks is self-hosted infrastructure โ€” there is no hosted free tier to sign into. The production install is a Helm chart or Operator on Kubernetes; the local route is Docker Compose bringing up the Microcks app plus Keycloak (auth) and MongoDB (storage). The team has done genuinely great work shrinking the trial path โ€” the uber all-in-one image boots with a single docker run and their Testcontainers modules are excellent for ephemeral test-time mocks โ€” but the uber image is all-in-memory (state gone on restart), and anything durable or shared is back to deploying and operating the real thing: your cluster, your upgrades, your uptime.

The second thing to know is the mocking model. Microcks mocks are example-driven: responses come from the request/response examples you author in your artifacts. Their docs are upfront that only comprehensive request/response example pairs are used โ€” provide a request example without a matching response example and it's discarded. For GraphQL, gRPC and Swagger 2.0 you need a second artifact (a Postman collection carrying the examples) alongside the schema. This model is exactly what you want for contract fidelity โ€” the mock returns precisely what the contract promises. It's less what you want for "give my frontend 50 plausible products and let me POST new ones": examples are canned, and your spec probably doesn't have many.

The 60-second version of the same job

Mockbird inverts both assumptions: it's hosted (nothing to deploy), and it generates data from your schema โ€” no examples required โ€” then gives you real, persistent CRUD on top.

Take a spec with zero example objects:

curl -s -X POST --data-binary @openapi.yaml \
  "https://mockbird.mockbird.workers.dev/api/projects/import?seed=5"

The response is a live base URL plus an admin key. Your Pet schema with an enum: [dog, cat, parrot] and a format: date-time field comes back as five seeded records with valid species and ISO timestamps โ€” we verified this guide's exact spec end-to-end before publishing. JSON or YAML, OpenAPI 3.x or Swagger 2.0, $ref and allOf resolved.

And the mock is stateful โ€” writes persist, no example authoring:

curl -s -X POST https://mockbird.mockbird.workers.dev/m/YOUR_ID/pets \
  -H 'Content-Type: application/json' \
  -d '{"name":"Waffles","species":"cat","adopted":false}'
# โ†’ {"name":"Waffles","species":"cat","adopted":false,"id":6}

curl -s https://mockbird.mockbird.workers.dev/m/YOUR_ID/pets/6   # it's really there
curl -s "https://mockbird.mockbird.workers.dev/m/YOUR_ID/pets?species=cat"

No spec handy? Skip the import entirely โ€” one click creates a seeded multi-resource backend, or try the shared demo right now:

curl -s "https://mockbird.mockbird.workers.dev/m/demo/products?limit=2"

Microcks concepts โ†’ Mockbird

MicrocksMockbird
Import job / artifact upload (OpenAPI)POST /api/projects/import with the spec body (guide)
Postman collection artifactSame import endpoint โ€” saved example responses become records (docs)
HTTP Archive (HAR) artifactSame import endpoint โ€” recorded responses become resources (guide)
Example-driven responsesSchema-seeded realistic data (?seed=N), then live CRUD โ€” examples optional, not required
Dynamic mock contentResponse templating on custom routes: {{params.x}}, {{now}}, {{uuid}} (guide)
Delays / latency on operations?mock_delay=2000 per request, plus ?mock_jitter (guide)
Error simulation?mock_status=503, probabilistic ?mock_chaos=0.3, sequences via ?mock_seq
GraphQL mock (schema + Postman examples)GraphQL endpoint generated from the same resources โ€” one artifact, queries + mutations (guide)
Keycloak users / service accountsNone needed โ€” anonymous project + admin key; optional mock JWT auth on the mock itself
Grafana / observability stackBuilt-in request inspector (last 50 requests, headers, bodies)

Honest comparison

MicrocksMockbird
HostingSelf-hosted (K8s/Helm/Operator, Docker Compose, uber image for trials)Hosted, zero install
Setup to first mock URLDeploy platform โ†’ import artifactOne curl (or one click)
ProtocolsREST, GraphQL, gRPC, SOAP, AsyncAPI/Kafka โ€” nobody else comes closeREST + GraphQL (+ SSE/WebSocket echo)
Response modelExamples you author (contract-exact)Generated from schema + real CRUD state
WritesDispatcher-scripted; not a real data storePersist for real โ€” POST, then GET it back
Contract / conformance testingYes โ€” a core feature, and excellentNo โ€” mocking only (request validation at most)
CI ephemeral mocksTestcontainers modules โ€” first-classCreate/delete a project per run via API (guide)
Open source / self-hostYes, CNCF incubatingNo โ€” hosted service (but your data ejects as db.json/OpenAPI/Postman anytime)
Auth to manage mocksKeycloak loginNone โ€” admin key in the create response
PriceFree (your infra + ops time)Free while in beta

Bias note: we build Mockbird, so read the table accordingly โ€” but we've tried to keep every row checkable. Pick Microcks when you need multi-protocol coverage, conformance testing against real implementations, or an on-prem requirement. Pick Mockbird when the job is "hosted fake backend, now" โ€” a frontend to unblock, a workshop, a CI stub, a prototype. Plenty of teams could sensibly use both: Microcks in the platform, Mockbird for the quick ones.

Where each wins

โšก Try the whole pitch in one click: create a live, seeded backend (products, orders, customers, reviews) โ€” real URL, no signup. Have a spec? Paste it in the dashboard importer (OpenAPI, db.json, CSV, Postman collection, or HAR). Details in the docs.