Get started
About OHLC

A stock market data API
built to be checked.

OHLC stands for Open, High, Low, Close. It is a self-serve market data API for developers, run by OHLC LLC, an Arizona company. We provide data and the tools to read it, and nothing else.

Data only

No brokerage, no trading execution, no portfolio tools and no investment advice. OHLC returns data; what you do with it is your call.

Point in time

Every record knows when it became known, so as_of can replay what the market knew on a past date without later corrections leaking in.

Reconciled sources

Prices and corporate actions are compared across licensed sources before they are published, and disagreements are reviewed, not averaged away.

Honest limits

Hard daily caps with no overage charges, delayed prices labeled as delayed, and datasets without a connected source answer 501 instead of returning nothing.

What OHLC is

OHLC is a REST API at https://api.ohlc.io/v1 that returns JSON in a { data, meta } envelope, with cursor pagination and bearer-key authentication. It covers U.S.-listed stocks and ETFs; on Pro and above, U.S. options, U.S. dollar crypto pairs, currency pairs, index levels and the stocks and ETFs of seven exchanges outside the U.S. (Toronto, TSX Venture, Cboe Canada, London, Euronext Paris and Amsterdam, and the ASX); and on the Commercial and Scale plans, U.S. and Canadian mutual funds and U.S. corporate bonds.

The datasets include end-of-day bars back through each plan's history window, 5-minute intraday bars kept for about 30 days (with hourly bars rolled up from them), quotes delayed at least 15 minutes, dividends and splits, SEC filings, financial statements and reported facts, earnings, analyst ratings, insider transactions, institutional ownership, short interest, ETF holdings, news and an economic calendar. The dataset hub lists each one, and pricing shows which plans include it.

The same data is delivered several ways: REST, WebSocket streaming of delayed quotes and nightly flat files on Pro and above, bulk exports on Commercial and Scale, CSV for Excel and Google Sheets, and an MCP server at https://api.ohlc.io/mcp so Claude and other MCP clients can query it directly.

What OHLC is not

  • Not a broker. OHLC does not hold money or securities, route orders or execute trades.
  • Not an adviser. Nothing OHLC returns is a recommendation, and the terms say plainly not to rely on it as your only source for trading decisions.
  • Not real-time. Exchange quotes are delayed at least 15 minutes, intraday bars are delayed, and nothing is a consolidated SIP feed. Trade prints from /v1/trades are available from the day after each session.
  • Not a portfolio or charting app. There is a website and a dashboard for keys, usage and billing; everything else is the API.

How the data is built

A security master with stable instrument IDs

Every listing has an instrument_id that does not change when its ticker does. Ticker assignments are effective-dated, so symbol_at resolves which listing traded under a ticker on a given date, and symbol history returns retired tickers alongside the current one. A ticker reused by a different company does not join the two companies' price histories. Symbols are exchange-qualified as MIC:TICKER (for example XNAS:AAPL); a bare ticker resolves to the listing that trades under it. See symbols and identifiers.

Point-in-time knowledge cutoffs

Records are stored with the time they first became known, not only the date they describe. Passing as_of returns what was known at the end of that UTC day, so a backtest does not see a restatement, a late dividend or a corrected bar before it was published. known_from and known_to filter on that knowledge time. The details are in data conventions.

Reconciling licensed sources

Daily bars and corporate actions come from more than one licensed market-data source. Values are compared before publication. A primary source decides what is served, a second source checks it, and where they disagree the disagreement is recorded for review; once it is ruled on, the ruling holds through later fetches. A split must show up in the traded prices before it adjusts history, and values that are not real prices, such as placeholder bars, are withheld rather than published. Split-adjusted and total-return prices are built from those reconciled actions.

SEC EDGAR for filings and financial facts

Filing lists come from SEC EDGAR, with the true acceptance time of each filing. Financial facts are read from the XBRL data in 10-K, 10-Q, 20-F and 40-F reports and their amendments, and every fact names the filing it came from. When an earnings release date is unknown, it is taken from the company's 8-K Item 2.02 filing or left null rather than guessed.

Exchange calendars

Sessions, holidays and early closes come from published exchange calendars. U.S. calendars run from the 1950s through 2028-12-31, the end of the published NYSE holiday schedule. Daily bars are filed under the exchange-local trading date, and market status is derived from the same calendar.

Principles

  • Prices are delayed, and labeled that way. Quotes are delayed at least 15 minutes and snapshotted about every 10 minutes during the session. OHLC never describes them as live.
  • Hard limits, no overages. Each plan has a daily credit allowance that works as a cap. When it is spent, REST and MCP return 429 daily-credit-limit until 00:00 UTC. Nothing is billed beyond the plan price, and failed requests are refunded. See limits.
  • Honest availability. Some datasets are documented before a source is connected. Those are marked "Not yet available" in the docs, the OpenAPI spec, MCP tool descriptions and /v1/datasets, and they return 501 `dataset-unavailable` instead of an empty result.
  • Exact values. Prices, volumes and amounts are decimal strings, and a missing value is null, never zero.
  • Coverage you can inspect. Dataset coverage reports history_from, history_to and known gaps per symbol, and is not a promise of completeness.

Where to start

  1. Create a free account. The Free plan needs no card and includes 12,500 credits a day for AAPL, NVDA, JNJ, PEP, MSFT, SPY and QQQ.
  2. Make a first request with the quickstart.
  3. Call /v1/datasets to see which datasets your key can read and whether each has data.
  4. Compare plans on the pricing page when you need more symbols, history or datasets.

Questions, answered.

Who runs OHLC?

OHLC LLC, an Arizona company. Questions go to [email protected]; see contact.

Is OHLC a broker or an investment adviser?

No. OHLC provides market data and developer tools only. It does not execute trades, hold assets or give investment advice.

Where does OHLC's data come from?

Prices and corporate actions come from licensed market-data sources and are reconciled before publication. Filings and reported financial facts come from SEC EDGAR, and sessions and holidays from published exchange calendars.

Is OHLC data real-time?

No. Exchange quotes are delayed at least 15 minutes, crypto and currency pairs are snapshotted every few minutes, intraday bars are delayed, and daily bars are end-of-day values. OHLC does not offer real-time or SIP data.

Which markets does OHLC cover?

U.S.-listed stocks and ETFs; on Pro and above, U.S. options, U.S. dollar crypto pairs, currency pairs, index levels and seven exchanges outside the U.S.: Toronto, TSX Venture, Cboe Canada, London, Euronext Paris and Amsterdam, and the ASX; and on Commercial and Scale, U.S. and Canadian mutual funds and U.S. corporate bonds. International quotes refresh hourly, and SEC filings cover U.S. companies only.

A little JSON.
A lot of possibility.

Explore the API