Account
Account endpoints let you check your credit balance and quota, understand your rate limits, and store per-key UI preferences.
Endpoints
| Method | Path | Description |
|---|---|---|
GET | /v1/account | Your balance, quota, plan, and rate-limit state |
GET | /v1/me/prefs | Get your stored UI preferences |
PUT | /v1/me/prefs | Set your UI preferences |
GET /v1/account
Returns your current account state — credit balance, quota used this period, rate-limit window, and plan details.
This endpoint is always free (0 credits, not rate-limited) because it must be readable even when you're rate-limited or out of credits. Authentication is still required.
No parameters.
GET /v1/account
Response shape
{
"plan": "pro",
"balance": 9820,
"quota": {
"used": 180,
"limit": 10000,
"resets_at": "2026-09-01T00:00:00Z"
},
"rate_limit": {
"limit_per_minute": 60,
"remaining": 58,
"reset_at": "2026-08-29T12:00:45Z"
},
"unlimited": false
}
| Field | Description |
|---|---|
balance | Remaining credits. |
quota.used | Credits consumed in the current billing period. |
quota.limit | Monthly credit allowance for your plan. |
quota.resets_at | When the monthly quota resets. |
rate_limit.limit_per_minute | Max requests per minute for your plan. |
rate_limit.remaining | Requests remaining in the current 1-minute window. |
unlimited | true for internal/unlimited API keys. |
Credit costs
Common operations and their credit costs:
| Operation | Credits |
|---|---|
GET /v1/news | 1 |
GET /v1/news/by-tickers | 1 |
GET /v1/news/search | 1 |
GET /v1/stocks (search mode) | 1 |
POST /v1/stocks/resolve | 1 |
GET /v1/financials | 1 |
GET /v1/financials/compare | 1–5 |
GET /v1/financials/find | 0 (free resolver) |
POST /v1/screen | 1–3 (by complexity) |
GET /v1/options/:ticker/sentiment | 1 |
GET /v1/positioning | 1 |
GET /v1/portfolios/:id/context | 5 |
GET /v1/themes/:id/summary | 15 |
GET /v1/brief | 15 |
GET /v1/account | 0 (always free) |
GET/PUT /v1/me/prefs | 0 (always free) |
GET /v1/me/prefs
Get your stored UI preferences. Returns an empty object {} if no preferences are saved yet.
Free — 0 credits.
GET /v1/me/prefs
Response
{
"prefs": {
"theme": "dark",
"default_currency": "USD",
"default_country": "US"
}
}
PUT /v1/me/prefs
Store UI preferences as a JSON object. The entire blob is replaced on each write — merge on the client side before sending.
Free — 0 credits. Max 16KB per key.
Request body
Send either the preferences object directly:
{
"theme": "dark",
"default_currency": "USD",
"default_country": "US"
}
Or wrap it in a prefs key:
{
"prefs": {
"theme": "dark",
"default_currency": "USD"
}
}
Both forms are accepted. The value must be a JSON object (not an array or scalar).
Response
{
"ok": true,
"prefs": { "theme": "dark", "default_currency": "USD" }
}
:::info Merge yourself
PUT /v1/me/prefs replaces the entire blob. To update one key without losing others, GET first, merge, then PUT.
:::