Overview
The Walletguide REST API: one base URL, JSON in and out, every route scoped to a wallet, described by an OpenAPI 3.1 document.
https://api.walletguide.com. JSON in, JSON out, bearer token on every request. Around a hundred endpoints, all of them scoped to one wallet apart from GET /wallets itself.
Endpoint reference
Every route, with a playground.
Authentication
Wallets and ids
Metrics
Where the real numbers come from.
Errors
The shape of it
Routes read as /wallets/{walletId}/<resource>, and each resource behaves the way you would guess:
GET /wallets/{walletId}/assets | list them |
GET /wallets/{walletId}/assets/{id} | one of them |
POST /wallets/{walletId}/assets | create one |
PATCH /wallets/{walletId}/assets/{id} | change one |
DELETE /wallets/{walletId}/assets/{id} | remove one |
Some routes are POSTs that only read, because their input is a filter too structured for a query string: transactions/search, data/batch, transactions/selection_summary. They are marked read-only in the MCP catalogue for exactly that reason.
The document
The OpenAPI 3.1 document is the contract, and it is generated from the route definitions rather than written next to them. So are these reference pages, the CLI and the MCP tools. That is the whole reason the three agree with each other.
curl https://api.walletguide.com/openapi.json/openapi serves the same document. Every operation has an operationId, and it is the name of the matching MCP tool: GET /wallets/{walletId}/assets is assets_list in both.
Discovery
Software that knows only the host can find the rest from it, without a credential:
GET https://api.walletguide.com/ | A JSON map of the api (a browser gets a short page instead) |
/.well-known/api-catalog | An RFC 9727 API catalog pointing at the OpenAPI document |
/.well-known/oauth-protected-resource | What a token for the REST routes needs, per RFC 9728 |
/.well-known/mcp, /.well-known/ai-catalog.json | The MCP server card, and the AI catalog that points at the server's own card on mcp.walletguide.com (see connecting a client) |
A path that does not exist answers 404 with a pointer to the document, as JSON, or as Markdown if you send Accept: text/markdown. It is a 404 even without a credential, so a typo never looks like an authentication problem.
Conventions
Ids are uuids everywhere a client can see them. Dates are YYYY-MM-DD; timestamps are ISO 8601 in UTC. Money carries its currency alongside the value, and a wallet has a base currency that cross-currency totals are converted into. Lists that can grow take limit and offset.