GET/api/v1/me
Get the account and credential. Who the credential belongs to, the plan, the scopes it can use now, and the plan limits. Scope: read.
curl "https://worthtracker.net/api/v1/me" \
-H "Authorization: Bearer $WORTHTRACKER_API_KEY"Documentation
Read your net worth, assets, liabilities, history, goals, income and expenses, and keep values up to date from your own scripts. The API speaks JSON over HTTPS.
https://worthtracker.net/api/v1The machine-readable description is at /api/v1/openapi.json (OpenAPI 3.1). To use worthtracker from Claude or ChatGPT, read the MCP guide.
Create an API key in Settings, under API and AI apps. Keys start with wt_ and are shown once, when you create them. We store only a hash, so a lost key cannot be shown again: revoke it and create a new one.
Send the key in the Authorization header of every request:
curl https://worthtracker.net/api/v1/me \
-H "Authorization: Bearer wt_your_key_here"Apps you connect through OAuth (for example Claude) get access tokens that work the same way. Keep keys out of source code and browser code: anyone with a key can read your financial data.
| Scope | Allows |
|---|---|
read | See your net worth, assets, liabilities, snapshots, goals, income and expenses. Every key has it. |
write | Add and change assets and liabilities, and take snapshots, and delete assets and liabilities. |
The Free plan has read-only API access. Pro and Family can also write. The plan is checked on every request, so if a plan ends, existing keys keep reading but writes return 403 upgrade_required until you upgrade again. Creating things through the API counts against the same plan limits as the app.
Each key, and each connected app, may make 60 requests per minute. Every response carries the current state:
| Header | Meaning |
|---|---|
RateLimit-Limit | Requests allowed in the window |
RateLimit-Remaining | Requests left in the window |
RateLimit-Reset | Seconds until the window resets |
RateLimit-Policy | The limit and window, for example 60;w=60 |
Past the limit you get 429 rate_limited with a Retry-After header in seconds.
A single item comes back as a plain JSON object. Lists come back as { "data": [ ... ] }. Dates are ISO 8601 in UTC, and amounts are plain numbers in the currency shown on each item.
Every error has the same shape:
{
"error": {
"code": "insufficient_scope",
"message": "This API key does not have the write scope."
}
}| Status | Code | Meaning |
|---|---|---|
| 400 | invalid_request | A field is missing, has the wrong type, or is not allowed. |
| 400 | invalid_json | The body is not valid JSON. |
| 401 | unauthorized | No credentials were sent. |
| 401 | invalid_token | The key or token is wrong, revoked or expired. |
| 403 | insufficient_scope | The key or connection does not have the scope this call needs. |
| 403 | upgrade_required | Writing needs a Pro or Family plan. |
| 403 | plan_limit_reached | The plan limit for this kind of item was reached. |
| 404 | not_found | No item with that id on your account. |
| 429 | rate_limited | Too many requests. Wait for the number of seconds in Retry-After. |
| 500 | internal_error | Something went wrong on our side. |
Get the account and credential. Who the credential belongs to, the plan, the scopes it can use now, and the plan limits. Scope: read.
curl "https://worthtracker.net/api/v1/me" \
-H "Authorization: Bearer $WORTHTRACKER_API_KEY"Get current net worth. Current totals and the breakdown by category, worked out the same way as the dashboard. Scope: read.
curl "https://worthtracker.net/api/v1/net-worth" \
-H "Authorization: Bearer $WORTHTRACKER_API_KEY"List assets. Scope: read.
curl "https://worthtracker.net/api/v1/assets" \
-H "Authorization: Bearer $WORTHTRACKER_API_KEY"Add an asset. Counts against the plan's asset limit, like adding an asset in the app. Scope: write.
curl -X POST "https://worthtracker.net/api/v1/assets" \
-H "Authorization: Bearer $WORTHTRACKER_API_KEY" \
-H "Content-Type: application/json" \
-d '{"name":"Brokerage account","category":"STOCKS","value":25000}'Get an asset. Scope: read.
curl "https://worthtracker.net/api/v1/assets/ASSET_ID" \
-H "Authorization: Bearer $WORTHTRACKER_API_KEY"Change an asset. Send only the fields to change. A new value is recorded in the asset's value history. Scope: write.
curl -X PATCH "https://worthtracker.net/api/v1/assets/ASSET_ID" \
-H "Authorization: Bearer $WORTHTRACKER_API_KEY" \
-H "Content-Type: application/json" \
-d '{"value":26500}'Delete an asset. Scope: write.
curl -X DELETE "https://worthtracker.net/api/v1/assets/ASSET_ID" \
-H "Authorization: Bearer $WORTHTRACKER_API_KEY"List liabilities. Scope: read.
curl "https://worthtracker.net/api/v1/liabilities" \
-H "Authorization: Bearer $WORTHTRACKER_API_KEY"Add a liability. Scope: write.
curl -X POST "https://worthtracker.net/api/v1/liabilities" \
-H "Authorization: Bearer $WORTHTRACKER_API_KEY" \
-H "Content-Type: application/json" \
-d '{"name":"Mortgage","category":"MORTGAGE","balance":180000}'Get a liability. Scope: read.
curl "https://worthtracker.net/api/v1/liabilities/LIABILITY_ID" \
-H "Authorization: Bearer $WORTHTRACKER_API_KEY"Change a liability. Send only the fields to change. Scope: write.
curl -X PATCH "https://worthtracker.net/api/v1/liabilities/LIABILITY_ID" \
-H "Authorization: Bearer $WORTHTRACKER_API_KEY" \
-H "Content-Type: application/json" \
-d '{"balance":178500}'Delete a liability. Scope: write.
curl -X DELETE "https://worthtracker.net/api/v1/liabilities/LIABILITY_ID" \
-H "Authorization: Bearer $WORTHTRACKER_API_KEY"List net worth history. Snapshots, newest first. Scope: read.
curl "https://worthtracker.net/api/v1/snapshots?limit=12" \
-H "Authorization: Bearer $WORTHTRACKER_API_KEY"Take a snapshot. Records the current net worth. Counts against the plan's monthly snapshot limit; the automatic monthly snapshot does not count. Scope: write.
curl -X POST "https://worthtracker.net/api/v1/snapshots" \
-H "Authorization: Bearer $WORTHTRACKER_API_KEY" \
-H "Content-Type: application/json" \
-d '{"notes":"After the bonus"}'List goals. Goals with progress against the current net worth. Scope: read.
curl "https://worthtracker.net/api/v1/goals" \
-H "Authorization: Bearer $WORTHTRACKER_API_KEY"List income streams. Scope: read.
curl "https://worthtracker.net/api/v1/income" \
-H "Authorization: Bearer $WORTHTRACKER_API_KEY"List expenses. Scope: read.
curl "https://worthtracker.net/api/v1/expenses" \
-H "Authorization: Bearer $WORTHTRACKER_API_KEY"Get this OpenAPI document. Public; needs no credentials.
curl "https://worthtracker.net/api/v1/openapi.json"