Intraday data

30-minute historical stock data

30-minute OHLCV bars for 6,924 US stocks back to January 2000, built from our 1-minute record. 13 bars per regular session, starting exactly at the 9:30 open.

Get a free API key See pricing Download free samples

What 30-minute bars look like

AAPL 30-minute bars, October 19, 2026 (US Eastern, start-stamped, unadjusted)
TimeOpenHighLowCloseVolume
09:30340.77344.90340.12344.643,853,031
10:00344.63346.00344.51345.202,338,747
10:30345.19345.44343.64343.991,245,287
11:00343.96344.04342.37343.101,530,915
11:30343.10343.13341.90341.961,159,553

13 30-minute bars cover a regular session; AAPL had 32 on October 19, 2026 counting pre-market and after-hours. A year of regular-session 30-minute bars is about 3,276 rows per stock. Download a free sample file.

Get 30-minute bars in Python

import finzdata as yf

# yfinance-style
df = yf.Ticker("AAPL").history(start="2015-01-01", end="2015-02-01", interval="30m")

# or the client, with split- and dividend-adjusted prices
c = yf.Client()
bars = c.minutes("AAPL", start="2015-01-02", end="2015-01-31", interval="30min", adjust="all")

Or call the REST API directly:

curl -H "X-API-Key: $FINZDATA_API_KEY" "https://data.finzdata.com/v1/prices/minute?symbol=AAPL&start=2024-01-02&end=2024-01-05&interval=30min&format=csv"

What 30-minute bars are used for

Half-hour seasonality

Study the open, lunchtime lull and closing auction run-up in 13 even half-hour steps.

Lower-frequency intraday signals

For signals that hold for hours, 30-minute bars cut noise and data size while keeping the shape of the day.

Overnight versus intraday returns

Separate the gap at the open from moves during the session, using pre-market and after-hours bars.

Portfolio-level intraday backtests

About 3,300 regular-session rows per stock per year, so a 20-year test across thousands of stocks fits on a laptop.

Coverage

6,924 US stocks listed on the NYSE and Nasdaq have intraday history. How many start by each year:

Intraday history starting byUS stocks
20001,070
20051,528
20102,393
20153,103
20204,320
Today6,924

Daily bars go further: every one of 16,000+ US stocks since 2000, delisted names included. See historical stock data.

How the bars are built

Every intraday bar is built from FinzData's 1-minute record. Bars are aligned to the clock and stamped at the start of the interval in US Eastern time. Open is the first minute's open, close the last minute's close, high and low the extremes, volume the sum. Minutes with no trades are left out, never forward-filled. Sessions: pre-market 4:00 to 9:30, regular 9:30 to 4:00, after-hours 4:00 to 8:00 p.m. Prices are stored as traded; ask for split- and dividend-adjusted prices with adjust="all".

Plans

1-minute, 5-minute, 15-minute and 30-minute bars come with the 25-year ($575), 30-year ($670) and Institutional ($975) history bundles, or for a single stock from $19 in the shop. Tick-level trades come with Institutional.

Frequently asked questions

How many 30-minute bars are there per day?

13 in the regular session and up to 32 with pre-market and after-hours. AAPL had 32 on October 19, 2026.

Do 30-minute bars start at 9:30?

Yes. Bars are aligned to the clock, so regular-session bars start at 9:30, 10:00, 10:30 and so on, each stamped at its start.

How far back does 30-minute data go?

To January 2000 for 1,070 stocks and 2010 for 2,393; each stock starts with its 1-minute record.

Can I get 30-minute bars as CSV?

Yes: from the API with format=csv, through the Python client as a pandas DataFrame, or as bulk Parquet files on paid plans.