TLT historical data: 1-minute to daily bars, 2002 to 2026
TLT is the iShares 20+ Year Treasury Bond ETF; it tracks long-dated US Treasury bonds. MarketParquet holds TLT as a US ETF with 1-minute, 5-minute, 30-minute, 1-hour and daily OHLCV bars from 2002-07-30 to 2026-09-10 (6,069 daily bars), split-adjusted (dividends not embedded), as one Parquet file per trading day.
TLT is the go-to instrument for duration exposure in stock-bond allocation, risk-parity and regime backtests.
TLT at a glance
| Instrument | iShares 20+ Year Treasury Bond ETF (TLT) |
| Asset class | ETF |
| First bar | 2002-07-30 |
| Latest bar | 2026-09-10 |
| Daily bars | 6,069 |
| Timeframes | 1-minute, 5-minute, 30-minute, 1-hour, daily |
| Adjustment | split-adjusted (dividends not embedded) |
| Timezone | US/Eastern bar open time; intraday files include pre-market and after-hours bars where available |
| Format | Apache Parquet, one file per trading day containing every ETF symbol |
Sample: TLT 30-minute bars on 2026-09-16
The first regular-session bars from the newest 30-minute file, read live from the archive. Prices are the values as published; the full session has many more rows.
| timestamp | open | high | low | close | volume |
|---|---|---|---|---|---|
| 09:30 | 80.94 | 81.10 | 80.94 | 81.03 | 2,756,037 |
| 10:00 | 81.03 | 81.08 | 80.97 | 81.04 | 1,636,762 |
| 10:30 | 81.04 | 81.14 | 81.01 | 81.14 | 1,905,674 |
| 11:00 | 81.15 | 81.21 | 81.08 | 81.09 | 1,625,792 |
| 11:30 | 81.09 | 81.22 | 81.08 | 81.16 | 1,536,004 |
| 12:00 | 81.16 | 81.17 | 81.05 | 81.06 | 1,296,712 |
| 12:30 | 81.07 | 81.18 | 81.07 | 81.17 | 1,135,173 |
| 13:00 | 81.17 | 81.22 | 81.14 | 81.21 | 1,177,786 |
Corporate actions in the changelog
No split adjustment for TLT appears in the published changelog, which lists every repair applied since it began. Earlier splits are already reflected in the archive: TLT prices are split-adjusted (dividends not embedded), so bars before any historical split sit on today's share basis. Dividends are deliberately not embedded; see data quality.
Load TLT in Python
Files are partitioned by trading day, so pulling one symbol means filtering across files. DuckDB reads the whole daily history in one statement; union_by_name and the COALESCE cover the older daily files, which carry a timestamp column where newer ones carry date:
import duckdb
tlt = duckdb.sql("""
SELECT COALESCE(date, CAST(timestamp AS DATE)) AS date,
open, high, low, close, volume
FROM read_parquet('by_date/etf_daily/*/*.parquet', union_by_name=true)
WHERE symbol = 'TLT'
ORDER BY 1
""").df()
Intraday files all share one schema, so Polars can scan a year of 5-minute bars lazily and keep only TLT:
import polars as pl
bars = (
pl.scan_parquet("by_date/etf_5min/2025/*.parquet")
.filter(pl.col("symbol") == "TLT")
.select(["timestamp", "open", "high", "low", "close", "volume"])
.sort("timestamp")
.collect()
)
Timestamps are US/Eastern bar open times. The Polars guide, the DuckDB guide and the backtrader guide take it from here: multi-year loads, resampling and feeding a backtest engine.
Available ETF files
| Timeframe | Files | Date range |
|---|---|---|
| 1-Min | 6,717 | 2000-01-03 to 2026-09-16 |
| 5-Min | 6,717 | 2000-01-03 to 2026-09-16 |
| 30-Min | 6,717 | 2000-01-03 to 2026-09-16 |
| 1-Hour | 6,717 | 2000-01-03 to 2026-09-16 |
| Daily | 6,717 | 2000-01-03 to 2026-09-16 |
Every file holds all ETF symbols for that day, TLT included.
Get TLT data
Free: a free account can download roughly the last year of daily ETF files, which include TLT, from the daily browse page or by API key. Complete Archive: every timeframe and the full history back to 2002-07-30 for TLT and every other symbol, $79 one-time.
> Download the free daily sample > See pricingFAQ
Is TLT history split-adjusted?
Yes. Prices are split-adjusted so the series is continuous across splits; dividends are not embedded, which keeps the bars equal to the prices that actually traded.
How far back does TLT go?
The first TLT bar in the archive is dated 2002-07-30 and the newest is 2026-09-10. New sessions are added the same night, typically by midnight ET.
What timezone are the intraday bars in?
US/Eastern. Regular hours are 9:30 AM to 4:00 PM ET; 1-minute files also carry pre-market from 4:00 AM and after-hours to 8:00 PM where trades occurred.
Can I download only TLT?
Files are per day, not per symbol, so you download the daily or intraday files for the dates you need and filter on symbol == "TLT". A year of daily files is small; the snippets above do the filtering in one pass.
Related
ETF data hub · browse ETF daily · all symbol pages · pricing
Other ETF pages: SPY · QQQ · IWM · DIA · GLD · SLV · XLF · ARKK · TQQQ · SQQQ · SOXL · UVXY · VXX