# Futures data API

> Quotes and OHLCV history for equity index, energy, metals, grain and currency futures through continuous symbols like ES=F, with back-adjusted history for index futures.

Canonical page: https://stockdataapi.com/futures-api

- Symbol format: `ES=F`: the contract root, then `=F`
- Source delay: About 10 minutes behind the exchange
- Daily history: `ES=F` from September 2000, `GC=F` from August 2000
- Sessions: Each trading day starts at the 18:00 New York reopen
- Back-adjusted: `backAdjust=true` on `ES=F`, `NQ=F`, `YM=F` and `RTY=F`

## Symbol format

A continuous contract is the root symbol plus `=F`: `ES=F` follows the current E-mini S&P 500 contract and rolls to the next one. Each quote's `underlyingSymbol` names the dated contract behind it, such as `ESZ26.CME`. Encode `=` as `%3D` in a URL.

| Symbol | What it is |
| --- | --- |
| `ES=F` | E-mini S&P 500 |
| `NQ=F` | E-mini Nasdaq 100 |
| `YM=F` | Mini Dow Jones ($5) |
| `RTY=F` | E-mini Russell 2000 |
| `CL=F` | WTI crude oil |
| `BZ=F` | Brent crude oil |
| `NG=F` | Natural gas |
| `GC=F` | Gold |
| `SI=F` | Silver |
| `ZC=F` | Corn |
| `6E=F` | Euro FX |

## Endpoints

- [Quote API](https://stockdataapi.com/docs/quote.md), `GET /v6/finance/quote`: Last price, change, open interest and expiry date of the contract behind the symbol.
- [Chart API: OHLCV history](https://stockdataapi.com/docs/chart.md), `GET /v8/finance/chart/{symbol}`: Daily and intraday OHLCV. `backAdjust=true` removes the jumps at contract rolls on the four equity index contracts.
- [Spark API: close-price series](https://stockdataapi.com/docs/spark.md), `GET /v8/finance/spark`: Close-only series for a futures board.
- [Market summary API](https://stockdataapi.com/docs/market-summary.md), `GET /v6/finance/quote/marketSummary`: Futures tiles in the market overview, alongside indices and currencies.

## Example request

```bash
curl -H "x-api-key: $KEY" "https://api.stockdataapi.com/v6/finance/quote?symbols=ES%3DF,NQ%3DF,CL%3DF,GC%3DF"
```

## Example response

```json
{
  "quoteResponse": {
    "result": [
      {
        "symbol": "ES=F",
        "shortName": "E-Mini S&P 500 Dec 26",
        "quoteType": "FUTURE",
        "exchange": "CME",
        "currency": "USD",
        "underlyingSymbol": "ESZ26.CME",
        "expireIsoDate": "2026-12-18T00:00:00Z",
        "regularMarketPrice": 7424.25,
        "regularMarketChangePercent": 0.5587,
        "openInterest": 2018149,
        "exchangeDataDelayedBy": 10
      }
    ],
    "error": null
  }
}
```

## Good to know

- Futures reach the source about 10 minutes after the exchange, and each quote's `exchangeDataDelayedBy` reads `10`.
- Without `backAdjust`, history is the plain continuous series, so the price jumps where one contract hands over to the next. With it, `meta.backAdjust` lists the rolls applied.
- Around a roll, while the quote has moved to the next contract but the daily bars have not, the live candle is withheld rather than drawn on the wrong contract.

## Questions

### Is futures data real time?

No. Futures reach the source about 10 minutes after the exchange and are served as received; each quote's `exchangeDataDelayedBy` field reads 10.

### What does =F mean in a futures symbol?

It marks a continuous contract: `ES=F` follows the current E-mini S&P 500 contract, and the quote's `underlyingSymbol` names the dated contract behind it, such as `ESZ26.CME`.

### Can I get back-adjusted continuous futures history?

Yes, for `ES=F`, `NQ=F`, `YM=F` and `RTY=F`: add `backAdjust=true` to a chart request, and `meta.backAdjust` lists the rolls applied.

### How far back does futures history go?

Daily bars for the main continuous contracts start in 2000: September 2000 for `ES=F` and August 2000 for `GC=F`.

### Which futures are covered?

Contracts the source quotes across equity indices, energy, metals, grains and currencies, such as `ES=F`, `CL=F`, `GC=F`, `ZC=F` and `6E=F`.