verification
use it
# add to stunt.yaml
services:
plaid:
adapter: embedded:plaid-style
# then
$ stunt upThe embedded: source extracts this adapter from the binary — no git clone, fully offline.
how to mock the Plaid API locally
Install stunt, paste the service block above into stunt.yaml, run stunt up — then point your client at localhost instead of Plaid API. It works offline, keeps state across requests and restarts, and every response is synthetic: the route shapes, status codes, pagination, and webhook delivery follow the real Plaid API 2020-09-14 surface — the data is fake, the behavior is real.
backing stores
itemsaccountstransactionspublic_tokensaccess_tokenslink_tokens
api surface (13)
generated from the adapter manifest — exactly what boots, nothing more · covers 4% of the real API's 294 routes (derived from sdk plaid-node @ 32.0.0 (floor))
13 routes
POST/link/token/create
POST/item/public_token/exchange
POST/accounts/balance/get
POST/accounts/get
POST/transactions/sync
POST/identity/get
POST/item/get
POST/item/remove
POST/institutions/get
POST/institutions/get_by_id
POST/sandbox/public_token/create
POST/sandbox/item/reset_login
POST/sandbox/item/fire_webhook
SDK-verified behaviors (4)
- ✓link/token/create mints a session
- ✓sandbox public_token -> exchange -> item with accounts
- ✓accounts/balance/get over the SDK's typed response
- ✓transactions/sync cursor round-trip
Not implemented (5)
- No /auth/get (account and routing numbers)
- No legacy POST /transactions/get endpoint
- No /institutions/search endpoint
- No /item/webhook/update or /item/token/invalidate
- No liabilities, assets, investments, or income products
Differs from the real API (3)
- X-Plaid-Signature JWT-style webhook signature is documented but never enforced
- fire_webhook SYNC_UPDATES_AVAILABLE doubles as transaction mutation (one posted, one removed)
- client_id/secret credentials are presence-checked only, never validated
want more of the Plaid API surface? adapters are YAML + Starlark — the authoring guide covers adding routes, fixtures, and state machines. Open an issue for anything big first, or just file a PR — merged routes ship in the next release.