Symbol series
GET/api/v1/families/{family}/symbols/{symbol}
Daily bars, listed fundamentals, or index membership spells for one symbol. The server trims to the plan window.
Description
Returns daily bars for one listed or delisted symbol, listed statements on us-equities-fundamentals, or constituent spells for an index on index-membership. Bars and statement dates before the plan floor are omitted. If every bar is trimmed, the response is still 200 with empty bars and emptyReason. Index membership returns spells instead of bars. There is no query string.
Authentication
v1 is client_id plus client_secret on every protected GET. A browser session is not enough. Google sign-in is for the website only — do not send a session cookie to v1.
- HTTP Basic —
Authorization: Basic base64(client_id:client_secret) - Headers —
X-Client-IdandX-Client-Secret
Create or rotate credentials on Account. Full notes are on Authentication.
Path parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
family | path | string | Yes | Family slug. us-equities and us-equities-delisted return daily bars. us-equities-fundamentals returns listed statements. index-membership returns spells. |
symbol | path | string | Yes | Ticker in that catalog. Example: IBM. Class shares work with a dash or a dot (BRK-B or BRK.B). |
Query parameters
These GETs take no query string except listed fundamentals, sector and index fundamentals, the stock universe, corporate events, dividend and split history, and valuation, which use symbols (the stock universe catalog also takes kind, sector, industry, and format; corporate events also take from and to; dividend and split history also takes types, from, and to), and FX rates, which use currencies with date or from and to. Path parameters select the family and symbol. The plan window is applied on the server.
Example request
curl -sS -u "$CLIENT_ID:$CLIENT_SECRET" \
https://barquant.dev/api/v1/families/us-equities/symbols/IBMResponse attributes
| Field | Type | Description |
|---|---|---|
family | string | Family slug. |
symbol | string | Requested ticker; class shares answer with the dash form (BRK-B). |
safeSymbol | string | File-safe form of the ticker. |
rowCount | number | Number of bars after the plan window trim. |
dateMin | string | null | First returned session. |
dateMax | string | null | Last returned session. |
lastClose | number | null | Close of the last returned bar. |
bars | object[] | Daily sessions: time, open, high, low, close, and optional volume. |
bars[].time | string | Session date, YYYY-MM-DD. |
emptyReason | "outside-plan-window" | "no-history" | null | Set when bars is empty. |
emptyMessage | string | null | Explanation when bars is empty. |
historyYears | number | null | Plan history window in years, or null on Unlimited. |
historyCutoff | string | null | First session this plan can see. |
tipStatus | string | How the published series was assembled. |
tapeJoinDate | string | null | Last session on the published archive. |
tipBarCount | number | Sessions joined after the archive. Reads use the published tape. |
Sample response
{
"family": "us-equities",
"symbol": "IBM",
"safeSymbol": "IBM",
"rowCount": 2,
"dateMin": "2026-09-10",
"dateMax": "2026-09-11",
"lastClose": 188.42,
"tipStatus": "export",
"tapeJoinDate": "2026-09-11",
"tipBarCount": 0,
"tipMessage": null,
"historyYears": 10,
"historyCutoff": "2016-09-13",
"emptyReason": null,
"bars": [
{
"time": "2026-09-10",
"open": 186.1,
"high": 187.8,
"low": 185.4,
"close": 187.2,
"volume": 4100200
},
{
"time": "2026-09-11",
"open": 187.3,
"high": 189,
"low": 186.9,
"close": 188.42,
"volume": 3881100
}
]
}Example symbol is IBM. Each bar includes time, open, high, low, close, and optional volume.
Errors
| Status | When |
|---|---|
| 401 | Missing or wrong client_id / client_secret. |
| 403 | Authenticated, but this plan does not include that family. v1 does not return a teaser catalog. |
| 404 | The family path is not a known slug. |
| 404 | The symbol is not in that family catalog. |
| 429 | Daily quota or per-minute plan quota. Read Retry-After and X-RateLimit-* headers. |
401 body:
{
"error": "Unauthorized"
}403 body:
{
"error": "This plan does not include that family.",
"plan": "free",
"requiredPlan": "unlimited"
}429 body (per-minute / daily):
{
"error": "Too many requests."
}Plan access
Same family allowlist as the catalog. History floors: Free last 10 years of listed US stocks from now and last 3 years of listed fundamentals, Basic last 25 years of listed US stocks from now, last 5 years of each delisted series from that series' last bar, and last 5 years of listed fundamentals, Pro last 40 years of listed US stocks from now, last 20 years of each delisted series from that series' last bar, and last 20 years of listed fundamentals, Unlimited full archive from 1950 for prices and full available fundamentals. Index membership has no history floor.
Daily and per-minute quotas live on Plans and limits.
© 2026–2035 Barquant