For your own data
WealthTrackr Personal Data API
Read-only REST API for accessing your personal financial data.
Overview
The WealthTrackr Personal Data API exposes your financial data as JSON over HTTPS. All endpoints are read-only and require authentication via a personal API key. Create and revoke keys from Settings → Personal API access in the app. The full wtk_… key is shown once at creation; store it in a secret manager and never commit it.
Base URL
https://server-production-c1e82.up.railway.appAuthentication
Send your API key using either header:
Authorization: Bearer wtk_your_api_key_hereor
X-API-Key: wtk_your_api_key_hereA missing, malformed, or revoked key returns 401 Unauthorized. Keys are read-only: they cannot write, delete, or modify any data. Revocation is immediate.
Example Request
curl --fail --silent --show-error \
-H "Authorization: Bearer $WEALTHTRACKR_API_KEY" \
https://server-production-c1e82.up.railway.app/v1/data/metricsEndpoints
/v1/data/summaryNet worth, asset/liability totals and counts, latest snapshot, and as_of timestamp.
Response (200 OK)
{
"net_worth": 128400.00,
"total_assets": 145000.00,
"total_liabilities": 16600.00,
"asset_count": 5,
"liability_count": 2,
"latest_snapshot": {
"id": "uuid",
"month": "2026-08",
"net_worth": 128400.00,
"total_assets": 145000.00,
"total_liabilities": 16600.00,
"category_breakdown": { "bank_accounts": 50000.00 },
"notes": null,
"timestamp": "2026-08-01T12:00:00Z"
},
"as_of": "2026-09-01T12:00:00Z"
}/v1/data/itemsAccount categories and items, including ownership-adjusted effective_value.
Parameters
typestring (optional)Filter by account type. One of "asset" or "liability".Response (200 OK)
{
"categories": [
{
"id": "bank_accounts",
"title": "Bank Accounts",
"type": "asset",
"total": 50000.00,
"items": [
{
"id": "uuid",
"label": "Checking",
"value": 5000.00,
"ownership_percentage": 100,
"effective_value": 5000.00,
"liquidity_rating": "high",
"notes": null,
"last_updated": "2026-08-01T12:00:00Z"
}
]
}
]
}/v1/data/snapshotsMonthly net-worth snapshots, newest first.
Parameters
limitinteger (optional)Number of snapshots to return. Must be between 1 and 1000. Defaults to all.Response (200 OK)
{
"snapshots": [
{
"id": "uuid",
"month": "2026-08",
"net_worth": 128400.00,
"total_assets": 145000.00,
"total_liabilities": 16600.00,
"category_breakdown": { "bank_accounts": 50000.00 },
"notes": null,
"timestamp": "2026-08-01T12:00:00Z"
}
]
}/v1/data/metricsMonthly check-in history with derived financial metrics. Credit score and each monthly money value are independently optional; every record contains at least one score or money value. Calculated fields are null when their required inputs were not recorded.
Response (200 OK)
{
"latest": {
"month": "2026-08",
"credit_score": null,
"monthly_income": 7500.00,
"monthly_expenses": 4000.00,
"monthly_debt_payments": null,
"monthly_savings": 1500.00,
"retirement_savings": null,
"debt_to_income_ratio": null,
"monthly_cash_flow": 3500.00,
"savings_rate": 20.0,
"updated_at": "2026-08-01T12:00:00Z"
},
"history": [/* same shape, newest-first */]
}Response Format
All responses use JSON with snake_case field names. Monetary values are returned as floating-point numbers in USD. The /v1/data/metrics endpoint returns the newest entry in latest and all entries newest-first in history; calculated fields (debt_to_income_ratio, monthly_cash_flow, savings_rate) are null when their required inputs were not recorded.
Errors
401Missing, malformed, or revoked API key.422Validation error (e.g. invalid query parameter).429Rate limit exceeded.500Internal server error.Rate Limiting
API endpoints are rate-limited to prevent abuse. If you exceed the limit, you will receive a 429 response. Retry with exponential backoff.
Machine-Readable Spec
An OpenAPI 3.1 specification is available at /openapi.json for code generation and tooling integration. An AI-friendly summary is available at /llms.txt.
Support
GitHub: apercallc/wealthtrackr · Email: security@apercallc.com