Skip to content
Trove

Developer

API reference

The planned REST API. Not available yet. This page describes the intended shape, not something you can call today.

Not available yet. There is no /api/v1 namespace and no way to issue a key. Everything below is the intended design, published so it can be argued with early. It is not a contract you can code against. The endpoints the app uses internally are session-authenticated and not stable.

Authentication (planned)

API requests will require a key in the Authorization header:

Authorization: Bearer trove_live_sk_...

There is no key issuance UI, and no keys to issue.

Base URL

https://trove.cool/api/v1

Endpoints

Transactions

GET    /transactions              List transactions (paginated)
POST   /transactions              Create a transaction
GET    /transactions/:id          Get one
PATCH  /transactions/:id          Update
DELETE /transactions/:id          Delete

Accounts

GET    /accounts                  List accounts
POST   /accounts                  Create
PATCH  /accounts/:id              Update
DELETE /accounts/:id              Soft delete

Subscriptions

GET    /subscriptions             List detected subscriptions
PATCH  /subscriptions/:id         Pause / resume / cancel

Insights (Pro only)

POST   /insights/generate         Trigger an insight (rate-limited 20/min)
GET    /insights                  Last 10 cached insights

Webhooks

POST   /webhooks                  Register a webhook
GET    /webhooks                  List webhooks
DELETE /webhooks/:id              Remove

Events: transaction.created, subscription.detected, budget.exceeded, goal.achieved.

Rate limits

Limits are sliding-window, returned in headers: X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset.

Errors

Standard HTTP status codes. JSON body:

{ "error": { "code": "validation_error", "message": "amount must be positive" } }