API Reference
Two read-only HTTP endpoints serve daily OHLCV bars for US equities and ETFs — a survivorship-bias-free archive going back to 1990, kept current by a nightly update. Both endpoints require an API key and are intended for server-side use.
Base URL
https://api.tickerdatahouse.com
Authentication
Every request must carry an x-api-key header. The data is not
public: a missing or wrong key returns 401 with
{"error": "UNAUTHORIZED"} and nothing else.
Responses carry no CORS headers, so the API cannot be called directly from a browser. Call it from your backend and proxy the result if you need it client-side.
GET /price?symbol=SPY x-api-key: <your-key>
Endpoints
Returns the daily closing price series for one symbol. This is the lighter payload — use it when you only need a price line.
# request curl -H "x-api-key: $KEY" \ "https://api.tickerdatahouse.com/price?symbol=SPY&since=2026-06-25" # response · 200 { "symbol": "SPY", "price": [ { "date": "2026-06-25", "close": 734.3 }, { "date": "2026-07-08", "close": 745.4 } ] }
Returns the full daily candle for one symbol. Keys are abbreviated to keep
long histories small: d date, o open,
h high, l low, c close,
v volume.
# request curl -H "x-api-key: $KEY" \ "https://api.tickerdatahouse.com/stock?symbol=NVDA&since=2024-01-01" # response · 200 { "symbol": "NVDA", "bars": [ { "d": "2024-01-02", "o": 49.24, "h": 49.29, "l": 47.58, "c": 48.15, "v": 411254000 } ] }
Returns the current ticker universe — the set of storage keys the other two
endpoints will answer for, stocks as well as the tracked indices and ETFs
(SPY, $VIX, TQQQ, the sector XL*
family). By default only active issues are listed; delisted ones are frozen at
their last trading day and are included with all=1.
symbol is the storage key, base_ticker is the ticker the
daily update follows. Indices and ETFs carry no name or
exchange — the universe file does not describe them.
# request curl -H "x-api-key: $KEY" \ "https://api.tickerdatahouse.com/universe?type=Common" # response · 200 { "count": 5812, "universe": [ { "symbol": "NVDA", "base_ticker": "NVDA", "name": "NVIDIA Corp Common", "exchange": "NASDAQ", "delisted": false, "is_nasdaq": true, "security_type": "Common" } ] }
Query parameters
/price and /stock.
The storage key of the instrument, which is not always the Yahoo ticker.
Indices keep the Norgate convention — ask for $VIX, not
^VIX. Delisted issues carry a -YYYYMM suffix and
are frozen at their last trading day. Case-insensitive. Omitting it returns
400 SYMBOL_REQUIRED rather than defaulting to some other
instrument, so a typo in the parameter name fails loudly.
symbol. If both are given, symbol wins.YYYY-MM-DD. There is no upper bound
and no pagination: everything from since to the latest bar comes
back in a single response. Omit it and you get the full history, which for a
1990-vintage symbol is roughly nine thousand rows.
/universe. Set to 1 to include delisted issues
alongside the active ones. They are frozen at their last trading day, so a
screen run against today's market usually wants the default.
/universe. Restrict to one security type, case-insensitive:
Common, ETF, Index, Unit,
CEF, DepositaryReceipt, Warrant,
Preferred, Right, HOLDR,
Other. An unknown type
returns 400 SECURITY_TYPE_INVALID rather than an empty list,
so a typo fails loudly.
Status codes
symbol (or t) was supplied.type given to /universe is not one of the known security types.x-api-key header is missing or does not match.detail field for diagnostics.# error body shape { "error": "SYMBOL_NOT_FOUND", "detail": "Nincs ár-adat: XYZ" }
Data notes
Prices are split- and dividend-adjusted and rounded to four
decimals; volume is an integer, and a missing volume reads as 0.
The nightly job appends the latest session on weekdays after the US close. When a new dividend causes the provider to re-adjust an entire history, a periodic full rebuild resynchronises the affected symbols — so a bar you fetched last month may be re-adjusted, and long-lived caches should be refreshed rather than appended to.
Coverage, freshness and the outcome of the last run are published on the status page.