# mockingbird > Mockingbird is a catalog of stateful test doubles for third-party HTTP APIs and SQL databases. Each one speaks the vendor's real surface, keeps state, and runs in-process. Every HTTP mock is a Fetch handler (`createRuntime().fetch(request) → Promise`) published to npm as `@crvouga/mockingbird-service-`. ESM only; Node >= 22 or Bun >= 1.2. Install mocks as devDependencies; each package is self-contained. Prefer injecting the mock's `fetch` in-process; when a URL is required, run `npx mockingbird- serve` (or `createServer` from `./server`); every HTTP service answers `GET /health`, `/__admin/*` and `x-mockingbird-namespace`. Read the README of each package you use — it is the integration guide for coding agents (also shipped in `node_modules//README.md`). Release tiers: **Ready**: Complete, checked against the vendor, and kept stable. Use it in your test suite. **Work in progress**: Usable, but incomplete: operations, response shapes and options can still change between releases. Pin an exact version. Prefer ready services; pin exact versions of work-in-progress ones. ## Reporting issues and requesting services Do not work around a mock in your own project: file a GitHub issue on crvouga/mockingbird and your fix lands in the next release. Search first (`gh issue list --repo crvouga/mockingbird --state all --search " "`), redact every key and all personal data, fill in the kind's template, and run `gh issue create --repo crvouga/mockingbird --title "" --label agent-reported,<kind> --body-file issue.md`. Feature and service requests are specifications: list the operations you call and number the behaviors you need as Given / When / Then; each becomes an acceptance test. - [Filing guide](https://raw.githubusercontent.com/crvouga/mockingbird/main/docs/REPORTING_ISSUES.md): when to file, redaction rules, reproduction and behavior formats, and what happens after. - [Parity mismatch](https://raw.githubusercontent.com/crvouga/mockingbird/main/.github/ISSUE_TEMPLATE/parity.md): title `[<service>] parity: <what diverges>`. The mock and its oracle (vendor sandbox or real engine) answer the same requests differently. - [Missing feature](https://raw.githubusercontent.com/crvouga/mockingbird/main/.github/ISSUE_TEMPLATE/feature.md): title `[<service>] feature: <what is missing>`. A mock lacks an operation, parameter, event, behavior or test control you use. - [Bug](https://raw.githubusercontent.com/crvouga/mockingbird/main/.github/ISSUE_TEMPLATE/bug.md): title `[<service>] bug: <what breaks>`. A mock crashes, leaks state, contradicts its README, or does not build. - [New service](https://raw.githubusercontent.com/crvouga/mockingbird/main/.github/ISSUE_TEMPLATE/new-service.md): title `[new-service] <Vendor>: <API surface>`. No package mocks a vendor you depend on; describe the surface, auth, state, behaviors, webhooks and test controls you need. ## Ready - [@crvouga/mockingbird-service-junction](https://raw.githubusercontent.com/crvouga/mockingbird/main/packages/service/junction/README.md): Stateful mock of the Junction (Vital) user API driven by its OpenAPI contract and verified by differential property tests against the Junction sandbox. - [@crvouga/mockingbird-service-junction SUPPORT.md](https://raw.githubusercontent.com/crvouga/mockingbird/main/packages/service/junction/SUPPORT.md): coverage matrix - [@crvouga/mockingbird-service-medplum](https://raw.githubusercontent.com/crvouga/mockingbird/main/packages/service/medplum/README.md): Stateful, portable mock of the self-hosted Medplum server (FHIR R4 REST, OAuth2 and admin API) that runs anywhere JavaScript runs, proven at parity with a real self-hosted Medplum used as the oracle. - [@crvouga/mockingbird-service-medplum SUPPORT.md](https://raw.githubusercontent.com/crvouga/mockingbird/main/packages/service/medplum/SUPPORT.md): coverage matrix - [@crvouga/mockingbird-service-oauth](https://raw.githubusercontent.com/crvouga/mockingbird/main/packages/service/oauth/README.md): Portable social-login mock with Google, Apple, Microsoft, GitHub and generic OIDC profiles, private relay identities, reproducible edge cases, signed tokens and an accessible UI. - [@crvouga/mockingbird-service-oauth SUPPORT.md](https://raw.githubusercontent.com/crvouga/mockingbird/main/packages/service/oauth/SUPPORT.md): coverage matrix - [@crvouga/mockingbird-service-postgres](https://raw.githubusercontent.com/crvouga/mockingbird/main/packages/service/postgres/README.md): Pure TypeScript in-memory PostgreSQL implementation with zero WASM/native dependencies - [@crvouga/mockingbird-service-postgres COMPATIBILITY.md](https://raw.githubusercontent.com/crvouga/mockingbird/main/packages/service/postgres/COMPATIBILITY.md): coverage matrix - [@crvouga/mockingbird-service-sqlite](https://raw.githubusercontent.com/crvouga/mockingbird/main/packages/service/sqlite/README.md): Pure TypeScript in-memory SQLite implementation with zero WASM/native dependencies - [@crvouga/mockingbird-service-sqlite COMPATIBILITY.md](https://raw.githubusercontent.com/crvouga/mockingbird/main/packages/service/sqlite/COMPATIBILITY.md): coverage matrix - [@crvouga/mockingbird-service-stripe](https://raw.githubusercontent.com/crvouga/mockingbird/main/packages/service/stripe/README.md): Stateful mock of the Stripe API (accounts by key, customers, payments, subscriptions with renewals, invoices, checkout with a hosted page, a Stripe.js stand-in, signed webhooks) at API versions 2024-06-20 and 2025-02-24.acacia, verified by differential property tests against Stripe test mode. - [@crvouga/mockingbird-service-stripe SUPPORT.md](https://raw.githubusercontent.com/crvouga/mockingbird/main/packages/service/stripe/SUPPORT.md): coverage matrix ## Work in progress - [@crvouga/mockingbird-service-aha](https://raw.githubusercontent.com/crvouga/mockingbird/main/packages/service/aha/README.md): Stateful mock of the AHA at-home phlebotomy partner API: HMAC-signed create-order and cancel, raw or wrapped envelopes, idempotency keys, and the order-status webhooks (Scheduled, Check Out, …) our bloodwork handler consumes. - [@crvouga/mockingbird-service-aha SUPPORT.md](https://raw.githubusercontent.com/crvouga/mockingbird/main/packages/service/aha/SUPPORT.md): coverage matrix - [@crvouga/mockingbird-service-aws-speech](https://raw.githubusercontent.com/crvouga/mockingbird/main/packages/service/aws-speech/README.md): Stateful mock of AWS Polly (SynthesizeSpeech, StartSpeechSynthesisStream) and Transcribe (streaming over h2c, batch jobs), with exact event-stream framing and scripted transcripts. - [@crvouga/mockingbird-service-aws-speech SUPPORT.md](https://raw.githubusercontent.com/crvouga/mockingbird/main/packages/service/aws-speech/SUPPORT.md): coverage matrix - [@crvouga/mockingbird-service-bedrock](https://raw.githubusercontent.com/crvouga/mockingbird/main/packages/service/bedrock/README.md): Stateful, scriptable mock of AWS Bedrock Runtime (Converse, ConverseStream, InvokeModel incl. Titan embeddings, Nova Sonic bidirectional streams over h2c) and AgentCore InvokeHarness, with exact event-stream framing. - [@crvouga/mockingbird-service-bedrock SUPPORT.md](https://raw.githubusercontent.com/crvouga/mockingbird/main/packages/service/bedrock/SUPPORT.md): coverage matrix - [@crvouga/mockingbird-service-caretalk](https://raw.githubusercontent.com/crvouga/mockingbird/main/packages/service/caretalk/README.md): Stateful mock of CareTalk's external API: client-login tokens, GetForm definitions, SavePatientForm rounds, patient search/insert, states, free slots and appointments. - [@crvouga/mockingbird-service-caretalk SUPPORT.md](https://raw.githubusercontent.com/crvouga/mockingbird/main/packages/service/caretalk/SUPPORT.md): coverage matrix - [@crvouga/mockingbird-service-customerio](https://raw.githubusercontent.com/crvouga/mockingbird/main/packages/service/customerio/README.md): Stateful mock of Customer.io: Segment-compatible CDP (identify/track/batch, SDK drop-in), App API transactional email/SMS/inbox sends with an outbox, message catalog, link-click tracking, and signed reporting webhooks. - [@crvouga/mockingbird-service-customerio SUPPORT.md](https://raw.githubusercontent.com/crvouga/mockingbird/main/packages/service/customerio/SUPPORT.md): coverage matrix - [@crvouga/mockingbird-service-daily](https://raw.githubusercontent.com/crvouga/mockingbird/main/packages/service/daily/README.md): Stateful mock of the Daily.co REST API: rooms, presence, eject, meeting tokens (minted and self-signed HS256, verified and decodable), and transcription/recording webhooks with transcripts written to S3. - [@crvouga/mockingbird-service-daily SUPPORT.md](https://raw.githubusercontent.com/crvouga/mockingbird/main/packages/service/daily/SUPPORT.md): coverage matrix - [@crvouga/mockingbird-service-easypost](https://raw.githubusercontent.com/crvouga/mockingbird/main/packages/service/easypost/README.md): Stateful mock of the EasyPost trackers API: create/re-use trackers, EasyPost's test tracking codes, admin status transitions and EasyPost's error envelope. - [@crvouga/mockingbird-service-easypost SUPPORT.md](https://raw.githubusercontent.com/crvouga/mockingbird/main/packages/service/easypost/SUPPORT.md): coverage matrix - [@crvouga/mockingbird-service-edamam](https://raw.githubusercontent.com/crvouga/mockingbird/main/packages/service/edamam/README.md): Stateful mock of the Edamam APIs our apps call: food-database parser, nutrients and image analysis, nutrition analysis, recipe search v2, meal-planner select and shopping lists, over a built-in food and recipe corpus. - [@crvouga/mockingbird-service-edamam SUPPORT.md](https://raw.githubusercontent.com/crvouga/mockingbird/main/packages/service/edamam/SUPPORT.md): coverage matrix - [@crvouga/mockingbird-service-firstpromoter](https://raw.githubusercontent.com/crvouga/mockingbird/main/packages/service/firstpromoter/README.md): Stateful mock of the FirstPromoter v2 API: promoters (adopt-before-create by cust_id), signup tracking by tid / promoter_id / ref token, iframe login, archive, and Basic-auth lead_becomes_referral webhooks. - [@crvouga/mockingbird-service-firstpromoter SUPPORT.md](https://raw.githubusercontent.com/crvouga/mockingbird/main/packages/service/firstpromoter/SUPPORT.md): coverage matrix - [@crvouga/mockingbird-service-flex](https://raw.githubusercontent.com/crvouga/mockingbird/main/packages/service/flex/README.md): Stateful mock of the Flex HSA/FSA payments API: products (recorded catalog corpus), checkout sessions in payment, off-session and setup modes, customers, setup intents, refunds, the hosted checkout page, and Svix-signed webhooks. - [@crvouga/mockingbird-service-flex SUPPORT.md](https://raw.githubusercontent.com/crvouga/mockingbird/main/packages/service/flex/SUPPORT.md): coverage matrix - [@crvouga/mockingbird-service-formbricks](https://raw.githubusercontent.com/crvouga/mockingbird/main/packages/service/formbricks/README.md): Stateful mock of Formbricks (Geviti fork): client environment state seeded from our production survey clone, response creation with the fork's validation errors, the v1 management API, the widget script, and responseFinished webhooks. - [@crvouga/mockingbird-service-formbricks SUPPORT.md](https://raw.githubusercontent.com/crvouga/mockingbird/main/packages/service/formbricks/SUPPORT.md): coverage matrix - [@crvouga/mockingbird-service-fullscript](https://raw.githubusercontent.com/crvouga/mockingbird/main/packages/service/fullscript/README.md): Stateful mock of the Fullscript lab-ordering API: per-practitioner OAuth, clinic, session grants, forward-only lab orders with results, lab-order events, expiring result PDFs, and Fullscript-Signature webhooks. - [@crvouga/mockingbird-service-fullscript SUPPORT.md](https://raw.githubusercontent.com/crvouga/mockingbird/main/packages/service/fullscript/SUPPORT.md): coverage matrix - [@crvouga/mockingbird-service-genebygene](https://raw.githubusercontent.com/crvouga/mockingbird/main/packages/service/genebygene/README.md): Stateful mock of Gene by Gene's Nucleus API v2 and auth host: tokens with credential blocking, catalog, shipping quotes, orders, kits, demographics, three-layer cancel, results with presigned downloads and S3 writes, subscriptions, and GxG-signed webhooks. - [@crvouga/mockingbird-service-genebygene SUPPORT.md](https://raw.githubusercontent.com/crvouga/mockingbird/main/packages/service/genebygene/SUPPORT.md): coverage matrix - [@crvouga/mockingbird-service-google-calendar](https://raw.githubusercontent.com/crvouga/mockingbird/main/packages/service/google-calendar/README.md): Stateful mock of the Google Calendar v3 API and Google OAuth our EMR calls: events list/insert/update/delete/watch, channels.stop, calendarList/calendars, token exchange/refresh/revoke and userinfo, with signed-by-header push notifications. - [@crvouga/mockingbird-service-google-calendar SUPPORT.md](https://raw.githubusercontent.com/crvouga/mockingbird/main/packages/service/google-calendar/SUPPORT.md): coverage matrix - [@crvouga/mockingbird-service-google-maps](https://raw.githubusercontent.com/crvouga/mockingbird/main/packages/service/google-maps/README.md): Mock of Google Places Autocomplete / Details / Find Place, the Geocoding API and a Maps JavaScript (places) shim, over a QA address corpus, with Google's status codes and fault presets. - [@crvouga/mockingbird-service-google-maps SUPPORT.md](https://raw.githubusercontent.com/crvouga/mockingbird/main/packages/service/google-maps/SUPPORT.md): coverage matrix - [@crvouga/mockingbird-service-healthie](https://raw.githubusercontent.com/crvouga/mockingbird/main/packages/service/healthie/README.md): Stateful mock of the Healthie GraphQL API (legacy surface): signIn, users, currentUser, updateUser/updateClient (incl. multipart avatar), locations, documents and folders with served downloads, form answers, offerings, billing items, and the IP-allowlisted status webhooks. - [@crvouga/mockingbird-service-healthie SUPPORT.md](https://raw.githubusercontent.com/crvouga/mockingbird/main/packages/service/healthie/SUPPORT.md): coverage matrix - [@crvouga/mockingbird-service-intercom](https://raw.githubusercontent.com/crvouga/mockingbird/main/packages/service/intercom/README.md): Stateful mock of the Intercom REST API 2.11: contacts (search, create with 409 on duplicates, update, get), conversations (create with Idempotency-Key, reply as JSON or multipart, close/open, get, cursor search), admins, and X-Hub-Signature-signed admin reply/close/open webhooks. - [@crvouga/mockingbird-service-intercom SUPPORT.md](https://raw.githubusercontent.com/crvouga/mockingbird/main/packages/service/intercom/SUPPORT.md): coverage matrix - [@crvouga/mockingbird-service-klaviyo](https://raw.githubusercontent.com/crvouga/mockingbird/main/packages/service/klaviyo/README.md): Stateful mock of the Klaviyo events API: JSON:API event create (Ordered Product, Placed Order), event reads, unique_id dedupe, JSON:API errors and an outbox. - [@crvouga/mockingbird-service-klaviyo SUPPORT.md](https://raw.githubusercontent.com/crvouga/mockingbird/main/packages/service/klaviyo/SUPPORT.md): coverage matrix - [@crvouga/mockingbird-service-llamacloud](https://raw.githubusercontent.com/crvouga/mockingbird/main/packages/service/llamacloud/README.md): Stateful mock of the LlamaCloud platform API: project and pipeline lookup, pipeline documents, and deterministic (scripted or term-overlap) retrieval, verified against the official llama_cloud_services SDK. - [@crvouga/mockingbird-service-llamacloud SUPPORT.md](https://raw.githubusercontent.com/crvouga/mockingbird/main/packages/service/llamacloud/SUPPORT.md): coverage matrix - [@crvouga/mockingbird-service-mailosaur](https://raw.githubusercontent.com/crvouga/mockingbird/main/packages/service/mailosaur/README.md): Stateful mock of the Mailosaur email/SMS testing API (messages search, get, delete, long-poll) with an HTTP ingest so other mocks can drop mail in (Mockingbird service contract). - [@crvouga/mockingbird-service-mailosaur SUPPORT.md](https://raw.githubusercontent.com/crvouga/mockingbird/main/packages/service/mailosaur/SUPPORT.md): coverage matrix - [@crvouga/mockingbird-service-makor-cpg](https://raw.githubusercontent.com/crvouga/mockingbird/main/packages/service/makor-cpg/README.md): Stateful mock of the legacy Makor AI (CPG) API: care plans, plus-user, bloodwork webhook, subscriptions, Wholescripts orders, AI patient summaries and async-review scripts (processing → complete on the mock clock), with permissive CORS for browser-direct calls. - [@crvouga/mockingbird-service-makor-cpg SUPPORT.md](https://raw.githubusercontent.com/crvouga/mockingbird/main/packages/service/makor-cpg/SUPPORT.md): coverage matrix - [@crvouga/mockingbird-service-odx](https://raw.githubusercontent.com/crvouga/mockingbird/main/packages/service/odx/README.md): Stateful mock of the (retired) Optimal DX partner API: patients, partner links, HL7 and structured lab imports, Functional Health Reports (JSON/PDF), webhook registrations, and signed PatientTest webhooks. - [@crvouga/mockingbird-service-odx SUPPORT.md](https://raw.githubusercontent.com/crvouga/mockingbird/main/packages/service/odx/SUPPORT.md): coverage matrix - [@crvouga/mockingbird-service-otel](https://raw.githubusercontent.com/crvouga/mockingbird/main/packages/service/otel/README.md): Stateful mock of an OTLP/HTTP collector (JSON and protobuf traces and logs) and the OpenObserve search API over the same store. - [@crvouga/mockingbird-service-otel SUPPORT.md](https://raw.githubusercontent.com/crvouga/mockingbird/main/packages/service/otel/SUPPORT.md): coverage matrix - [@crvouga/mockingbird-service-payload-cms](https://raw.githubusercontent.com/crvouga/mockingbird/main/packages/service/payload-cms/README.md): Stateful mock of the Payload CMS collection REST API: paginated finds with a where-query subset, find by id, a seeded marketing collection and admin-editable documents. - [@crvouga/mockingbird-service-payload-cms SUPPORT.md](https://raw.githubusercontent.com/crvouga/mockingbird/main/packages/service/payload-cms/SUPPORT.md): coverage matrix - [@crvouga/mockingbird-service-persona](https://raw.githubusercontent.com/crvouga/mockingbird/main/packages/service/persona/README.md): Stateful mock of the Persona identity-verification API: inquiry create, list (reusable lookup), get, a hosted flow page, admin lifecycle transitions, and Persona-Signature webhooks. - [@crvouga/mockingbird-service-persona SUPPORT.md](https://raw.githubusercontent.com/crvouga/mockingbird/main/packages/service/persona/SUPPORT.md): coverage matrix - [@crvouga/mockingbird-service-pharmetika](https://raw.githubusercontent.com/crvouga/mockingbird/main/packages/service/pharmetika/README.md): Stateful mock of the Pharmetika compounding-pharmacy provider portal: clinics, patients, medication-order validate / EPCS prepare / submit / lookup, the v7 cancel, the medication-template catalog, and status webhooks. - [@crvouga/mockingbird-service-pharmetika SUPPORT.md](https://raw.githubusercontent.com/crvouga/mockingbird/main/packages/service/pharmetika/SUPPORT.md): coverage matrix - [@crvouga/mockingbird-service-plane](https://raw.githubusercontent.com/crvouga/mockingbird/main/packages/service/plane/README.md): Stateful mock of the Plane REST API v1: cursor-paginated work items, comments, links, states and labels, with Plane's rate limit and error shapes. - [@crvouga/mockingbird-service-plane SUPPORT.md](https://raw.githubusercontent.com/crvouga/mockingbird/main/packages/service/plane/SUPPORT.md): coverage matrix - [@crvouga/mockingbird-service-portal-agent](https://raw.githubusercontent.com/crvouga/mockingbird/main/packages/service/portal-agent/README.md): Stateful mock of our eRx portal agent (LifeFile/VPI browser runner): the fulfilment job endpoint with strict response rules, a job store, fault presets, and x-internal-key callbacks. - [@crvouga/mockingbird-service-portal-agent SUPPORT.md](https://raw.githubusercontent.com/crvouga/mockingbird/main/packages/service/portal-agent/SUPPORT.md): coverage matrix - [@crvouga/mockingbird-service-posthog](https://raw.githubusercontent.com/crvouga/mockingbird/main/packages/service/posthog/README.md): Stateful mock of PostHog: /flags v2 and legacy /decide evaluation with per-test flag, variant and payload control, remote config, gzip/base64 capture (/batch/, /e/, /i/v0/e/), recordings intake, and the feature-flag management and HogQL API slice. - [@crvouga/mockingbird-service-posthog SUPPORT.md](https://raw.githubusercontent.com/crvouga/mockingbird/main/packages/service/posthog/SUPPORT.md): coverage matrix - [@crvouga/mockingbird-service-prism](https://raw.githubusercontent.com/crvouga/mockingbird/main/packages/service/prism/README.md): Stateful mock of the Prism Labs body-scan API: subjects, scans, presigned capture upload, processing stages to READY, and deterministic body-composition, measurement, health-report and asset results. - [@crvouga/mockingbird-service-prism SUPPORT.md](https://raw.githubusercontent.com/crvouga/mockingbird/main/packages/service/prism/SUPPORT.md): coverage matrix - [@crvouga/mockingbird-service-resend](https://raw.githubusercontent.com/crvouga/mockingbird/main/packages/service/resend/README.md): Stateful mock of the Resend email API (send with idempotency, received emails, attachments) with an outbox and Svix-signed inbound webhooks (Mockingbird service contract). - [@crvouga/mockingbird-service-resend SUPPORT.md](https://raw.githubusercontent.com/crvouga/mockingbird/main/packages/service/resend/SUPPORT.md): coverage matrix - [@crvouga/mockingbird-service-rxvortex](https://raw.githubusercontent.com/crvouga/mockingbird/main/packages/service/rxvortex/README.md): Stateful mock of the RxVortex (Strive) pharmacy API: OAuth token, order submit, status, cancel, recovery by sender order id, preset catalog, and signed status webhooks. - [@crvouga/mockingbird-service-rxvortex SUPPORT.md](https://raw.githubusercontent.com/crvouga/mockingbird/main/packages/service/rxvortex/SUPPORT.md): coverage matrix - [@crvouga/mockingbird-service-slack](https://raw.githubusercontent.com/crvouga/mockingbird/main/packages/service/slack/README.md): Stateful mock of Slack incoming webhooks and the Web API (chat.postMessage and friends) with an outbox of every alert the app sent. - [@crvouga/mockingbird-service-slack SUPPORT.md](https://raw.githubusercontent.com/crvouga/mockingbird/main/packages/service/slack/SUPPORT.md): coverage matrix - [@crvouga/mockingbird-service-twilio](https://raw.githubusercontent.com/crvouga/mockingbird/main/packages/service/twilio/README.md): Stateful mock of Twilio Verify, Lookup v2, Messaging and Recordings on one port, with signed inbound SMS and voice webhooks (Mockingbird service contract). - [@crvouga/mockingbird-service-twilio SUPPORT.md](https://raw.githubusercontent.com/crvouga/mockingbird/main/packages/service/twilio/SUPPORT.md): coverage matrix - [@crvouga/mockingbird-service-vpi](https://raw.githubusercontent.com/crvouga/mockingbird/main/packages/service/vpi/README.md): Stateful mock of the VPI compounding pharmacy API: JWT authentication, products, clinic, patients, providers, saveNewPrescription drafts and the three paged prescription status lists. - [@crvouga/mockingbird-service-vpi SUPPORT.md](https://raw.githubusercontent.com/crvouga/mockingbird/main/packages/service/vpi/SUPPORT.md): coverage matrix - [@crvouga/mockingbird-service-wholescripts](https://raw.githubusercontent.com/crvouga/mockingbird/main/packages/service/wholescripts/README.md): Stateful mock of the Wholescripts supplement fulfilment API: product and private-label catalogs, order submit, status polling and cancel, with admin status transitions. - [@crvouga/mockingbird-service-wholescripts SUPPORT.md](https://raw.githubusercontent.com/crvouga/mockingbird/main/packages/service/wholescripts/SUPPORT.md): coverage matrix