Internal Endpoints
Everything on this page exists to serve the monetr app and can change in any release without notice. It's documented so you know it's there, not so you can build on it.
These endpoints get a request line, an auth line, and one sentence. No parameter tables, no examples. Withholding the full template is deliberate: a documented request and response shape reads as a promise, and these don't come with one.
If you want to know what one of these does, read the handler in server/controller/. That's the only thing that's
current. Everything not on this page is covered by the support posture.
GET App configuration
Tells the web app what this server has turned on: whether sign-up is allowed, whether Plaid is configured, which features exist, and what build is running.
Auth: None.
The response struct is declared inline in the handler and changes whenever the app needs something new from it.
POST Proof of work challenge
Issues a challenge that the browser has to solve before it's allowed to submit sign-in, registration, password reset or API key creation. Returns 404 when proof of work is off.
Auth: None.
Only meaningful paired with the solver in the web app, which is why the endpoints that consume its output are the ones you'd otherwise reach for.
POST Icon search
Looks up a merchant icon by name for the app's icon picker. Returns 204 when there's no match and 404 when icons weren't compiled into the build.
Auth: API key, subscription required.
GET Institution details
Proxies Plaid's institution lookup so the app can show a bank's name and logo. The response is Plaid's shape, passed through unchanged, so monetr isn't in a position to promise anything about it.
Auth: Not available to API keys.
Plaid Link
These six are one conversation, not six endpoints. Plaid's browser SDK holds the other half of it, and the whole exchange only makes sense in a browser that can run it. This is the archetype for everything on this page.
All six return 406 on a server without Plaid configured.
Get a link token to hand to Plaid's SDK to start connecting a bank:
Auth: Not available to API keys.
Exchange the public token the SDK gives you back for a real connection:
Auth: Not available to API keys.
Start the re-authentication flow for a link whose credentials went stale:
Auth: Not available to API keys.
Finish that re-authentication flow:
Auth: Not available to API keys.
Long poll while monetr sets up a newly connected link, so the app can show a spinner rather than an empty budget:
Auth: Not available to API keys.
Trigger a manual sync of a Plaid link:
Auth: Not available to API keys.
Transaction imports and mappings
An unfinished feature. These five endpoints only register when Features.TransactionImports is enabled, and nothing in
the monetr app calls any of them yet. There's a TypeScript model for import mappings in the frontend and no code using
it.
Documenting them with the full template would describe a contract that isn't settled. When the feature ships they'll move onto a real page.
If you want to import transactions today, use the file upload flow, which is finished and does work.
List the saved column mappings used to interpret an import file:
Auth: API key, subscription required.
Save a new column mapping:
Auth: API key, subscription required.
Start an import on a bank account:
Auth: API key, subscription required.
Check on an import:
Auth: API key, subscription required.
Update an in-progress import:
Auth: API key, subscription required.