get_daily_prices
Returns daily end-of-day closing-price history for one US-listed ticker (stocks, ETFs, mutual funds — including delisted tickers, so historical analysis is survivorship-bias-free). Coverage extends back as far as 1962 for the oldest names, subject to plan history limits. PAID PLANS ONLY. Each row: date, close (as-traded), adj_close (split+dividend adjusted — use THIS for charts and return calculations), div_cash (dividend with that ex-date), split_factor (e.g. 4 = 4:1 split that session). price_currency (top level) is the ISO currency of EVERY price in the response: USD. KeyVex covers US-listed securities priced in US dollars (foreign companies listed on US exchanges included); a ticker listed only elsewhere, e.g. a Shanghai or Shenzhen A-share, answers 'Not covered' with no prices. null means the currency is not known. asset_type is the listing's type (Stock, ETF, Mutual Fund). The freshness block grades THIS ticker too: its newest bar (last_available) against the newest US sessions, in sessions behind (mutual-fund NAVs post later, so funds have a wider tolerance). last_trade is the newest session with volume > 0: present for a series marked as no longer trading; otherwise only when the window includes its newest year (and absent for funds, which price at NAV with no volume). An inactive ticker reads 'no trades since <last_trade>', plus 'the vendor repeats the last price at zero volume' when it still prints bars after that trade. delisted_since appears only where an SEC delisting or deregistration filing (Form 25 / Form 15 families) is on file for the ticker, with delisting_form naming it; it is never inferred from prices. When a symbol was retired because its issuer moved to another symbol, continues_as names that symbol and the day it took effect (e.g. PSKY → SKYD from 2026-10-07). adjustment_hold appears only while a vendor split or dividend is held for review and not yet applied to earlier adjusted prices: for a split or a dividend of 10%+ of the prior close, every adjusted price before adj_withheld_before is null (close is as traded); for a smaller dividend, adj_close is served and the notice says it is off by that dividend. include_ohlc=true adds the session's open / high / low / volume and their adjusted variants — the day's RANGE, which is what a stop or a target is actually tested against. On weekly/monthly these are aggregated over the period (first open, highest high, lowest low, summed volume), not the last session's values. Omit the flag and the response is unchanged. At most 5,000 rows per call (5,000 daily rows is about 20 years). When the window holds more, the response says truncated=true. Without since, you get the NEWEST 5,000 and prev_until: call again with until=prev_until for the page before. With since, you get the 5,000 from since onward and next_since: call again with since=next_since for the page after. Rows are never dropped silently. For multi-year ranges prefer frequency='weekly' or 'monthly' (last bar per period; dividends summed, split factors compounded), which never page: 10 years daily ≈ 2,500 rows vs ~120 monthly. One call = one ticker. Compare securities with multiple calls. Close Prices from Tiingo.com.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"ticker": "<ticker>"
},
"name": "get_daily_prices"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| since | No | ISO date YYYY-MM-DD inclusive. Default: earliest your plan allows. Setting since pages FORWARD from it: to read the next page of a long window, pass the previous response's next_since. | |
| until | No | ISO date YYYY-MM-DD inclusive. Default: latest available. Without since a long window returns its newest 5,000 rows; to read the page before, pass the previous response's prev_until here. | |
| ticker | Yes | Ticker symbol, e.g. 'AAPL', 'SPY', 'BRK-B' (hyphen for share classes). | |
| frequency | No | Downsampling. Default daily. Use weekly/monthly for multi-year charts. | |
| include_ohlc | No | Add open/high/low/volume (+ adjusted variants) to each row. Default false. Aggregated per period on weekly/monthly. |