Price
FreeValueStandardPro
Fetch intraday price history for an index.
- Retrieves historical indices price reports. Exchanges typically generate a price report every second for popular indices like SPX.
- When the
intervalparameter is specified, the returned data represents the price at the exact time of each timestamp. If the timestamp in the response is 10:30:00, the price field represents the price at that exact time of the day. - A price update from the exchange is omitted if the price remained the same from the previous update.
- Multi-day requests are limited to 1 month of data.
rust
pub fn index_history_price(&self, symbol: &str, date: &str) -> IndexHistoryPriceBuilder<'_>Optional parameters chain on the builder: .interval(&str), .start_time(&str), .end_time(&str), .start_date(&str), .end_date(&str). Execute with .await → Result<Vec<PriceTick>, Error>, or decode chunk-by-chunk with .stream(handler).
Example
rust
let rows = tdx
.index_history_price("SPX", "20250303")
.interval("1m")
.await?;
for t in &rows {
println!("date={} ms_of_day={} price={}", t.date, t.ms_of_day, t.price);
}Parameters
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
symbol | string | yes | — | Ticker symbol (e.g. AAPL) |
date | date | yes | — | Date YYYYMMDD |
interval | string | no | 1s | Interval preset or millisecond string. Defaults to 1s when omitted — matching the upstream ThetaData Python library. Accepted values: tick, 10ms, 100ms, 500ms, 1s, 5s, 10s, 15s, 30s, 1m, 5m, 10m, 15m, 30m, 1h. |
start_time | string | no | 09:30:00 | Start time filter |
end_time | string | no | 16:00:00 | End time filter |
start_date | date | no | — | Start date YYYYMMDD |
end_date | date | no | — | End date YYYYMMDD |
timeout_ms | int | no | — | Per-request deadline in milliseconds. 0 means no deadline. |
Response
Rows of PriceTick:
| Field | Type | Description |
|---|---|---|
ms_of_day | i32 | Milliseconds since midnight Eastern Time. |
price | f64 | Index value. |
date | i32 | Trading date as a YYYYMMDD integer. |