Skip to content

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 interval parameter 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 .awaitResult<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

NameTypeRequiredDefaultDescription
symbolstringyesTicker symbol (e.g. AAPL)
datedateyesDate YYYYMMDD
intervalstringno1sInterval 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_timestringno09:30:00Start time filter
end_timestringno16:00:00End time filter
start_datedatenoStart date YYYYMMDD
end_datedatenoEnd date YYYYMMDD
timeout_msintnoPer-request deadline in milliseconds. 0 means no deadline.

Response

Rows of PriceTick:

FieldTypeDescription
ms_of_dayi32Milliseconds since midnight Eastern Time.
pricef64Index value.
datei32Trading date as a YYYYMMDD integer.

Released under the Apache-2.0 License.