---
title: "The volatility layer"
description: "Six releases in one pass put a full volatility and options-statistics layer on Sugra Finance: the volatility futures curve, a six-tenor term structure, twenty years of Cboe put/call history, a 2,481-index catalog, per-minute options flow, and full-size cash-settled index chains. Notes on what shipped and on the data-honesty rules that shaped every endpoint."
slug: the-volatility-layer
status: published
published_at: 2026-08-10
author: Arman Obosyan
author_url: https://sugra.systems/about
section: general
primary_keyword: volatility api put call ratio options flow futures curve
hero_image: /blog/images/posts/the-volatility-layer-hero.jpg
hero_alt: "Twenty-one hairline ridgelines on a dark surface, one per year of the Cboe exchange-wide put/call ratio from 2006 to 2026, with 2008 and 2020 drawn in amber and visibly running above the rest. The headline reads The volatility layer."
og_image: /blog/images/posts/the-volatility-layer-hero.jpg
tags:
  - api
  - markets
  - options
  - volatility
  - engineering
---

## Six releases, one pass

Volatility was the quiet corner of Sugra Finance. We served the spot
indices and a five-point term structure, and that was the polite way of
saying: if you traded volatility rather than merely watching it, you went
somewhere else.

That corner is now a layer. In one release pass, Sugra Finance gained:

- **The volatility futures curve.** The `VX` root joins `/api/v2/futures`
  with the same four routes as every other root: the curve with a contango
  flag, the contract chain, per-contract daily history back to 2013, and
  contract metadata. Weekly expirations join the curve on request.
- **A six-tenor term structure.** The ladder now starts at the 1-day tenor
  and runs to one year, fetched concurrently.
- **Exchange-wide put/call statistics.** The latest session's ratios for
  every listed product family, with per-product volume and open interest -
  and a daily history stitched back to 2006.
- **The full index catalog.** 2,481 indices, paged and filterable, each
  with daily history on demand. The previous curated set was 35.
- **Per-minute options flow.** One-minute bars for any optionable US
  symbol with the options volume inside every minute: calls, puts, total.
- **Full-size cash-settled index chains.** S&P 500, Nasdaq-100 and
  Russell 2000 option chains with Greeks, an always-included expirations
  list, and expiry slicing so you take one expiration instead of thirteen
  megabytes.

One key, one envelope, one bill. Here is the shape of the new surface,
and the engineering rules that made it slower to ship and better to use.

## Twenty years of fear and greed in one request

The put/call ratio is the oldest sentiment gauge that still works: when
puts outnumber calls, somebody is paying for protection. The numbers come
from Cboe, and that matters more than a footnote suggests. Cboe opened as
the Chicago Board Options Exchange in 1973, the first listed options
market in the United States; it created the VIX in 1993, rebuilt the
methodology with Goldman Sachs in 2003, and listed VIX futures in 2004.
The volatility complex this layer serves is not measured at Cboe, it is
defined there.

Which is why we take it first-hand. These are the venue's own published
statistics, read from the venue, not a vendor's re-derivation of them.
Nobody in the middle rounds a number, renames a field, drops a session or
quietly restates last month. That is what data sovereignty means in
practice: one hop from the source of record to your request, and a name
you can check the numbers against.

Cboe publishes the daily statistics; what it does not publish is a
continuous series. The modern feed starts in October 2019. Before that,
the numbers live in frozen archive files that end, to the day, where the
feed begins.

So we stitched them. The archives carry the series from 2006 (the S&P 500
family from 2010), the daily statistics carry it from 2019, and the seam
is tested in CI against golden values measured on both sides. The result
is one request:

```bash
BASE="https://sugra.ai/api/v1/cboe"
curl -H "x-api-key: YOUR_API_KEY" \
  "$BASE/put-call-ratio/history\
?family=total"
```

![Cboe exchange-wide put/call ratio 2006-2026, daily values faint with the 21-day mean in amber: the 2008 and 2011 spikes, the long complacency of 2013-2014 and 2017, the March 2020 shock, and the drift lower since 2021](/blog/images/posts/the-volatility-layer/put-call-twenty-years.jpg)

*Data: [Sugra API](https://sugra.ai) - one request, nothing else:
`GET /api/v1/cboe/put-call-ratio/history?family=total`.*

Two decades of market mood: 2008 pinned above 1.0 for months, the March
2020 spike, and the long call-heavy drift since. Six families ship -
total, index, equity, ETP, the volatility complex and the S&P 500
complex - each as its own continuous series.

The series is honest about its own seams. Where the reporting definitions
changed - exchange-traded products became their own category in 2012, the
source switches in 2019 - the payload says so, in a machine-readable
`definition_changes` block. A continuous line that quietly changes meaning
halfway through is worse than a gap; this one tells you where to be
careful.

## The minute the index moved and the tape knew

The newest signal on the platform is also the fastest one: per-minute
options flow.

```bash
curl -H "x-api-key: YOUR_API_KEY" \
  "https://sugra.ai/api/v1/cboe\
/intraday/_VIX"
```

```json
{
  "time": "2026-08-07T09:31:00",
  "close": null,
  "calls_volume": 469,
  "puts_volume": 116,
  "total_options_volume": 585
}
```

That is the first minute of a real session, and it is worth reading
slowly. The index value had not printed yet - the feed publishes 0.0
placeholders until it does - but 585 option contracts had already traded
in that minute, and four times as many calls as puts.

Notice what the API did with the placeholder: it served `null`, not 0.0.
A volatility index at zero is not a small number, it is a lie, and a
chart that plots it will invent a crash at 9:31 every morning. The volume
zeros, by contrast, are real zeros and stay. Both cases live in the same
bar. This is the data-honesty rule the whole layer is built on: nothing
fabricated, absences declared, placeholders converted to `null`, and a
missing series answering 404 rather than an empty 200 pretending
everything is fine.

## A catalog you can actually walk

The index catalog grew from 35 curated symbols to 2,481 - sector
baskets, country indices, single-stock volatility gauges, buy-write and
target-outcome families, each with metadata and daily history on demand:

```bash
curl -H "x-api-key: YOUR_API_KEY" \
  "https://sugra.ai/api/v1/cboe\
/indices/all?q=buywrite&limit=20"
```

Honesty shows up here too, in a smaller way. The upstream metadata marks
currency for some indices with the literal word "dollar" - and it turns
out a measurable slice of those are Canadian. So the API does not guess:
`currency` is an ISO code only when the source publishes one, and the
verbatim published value always rides along in `currency_raw`. If we
cannot know, you get `null` and the raw string, not a plausible wrong
answer.

## Chains sized for indices

The cash-settled index chains - S&P 500, Nasdaq-100, Russell 2000 - are
large. The S&P 500 complex alone is thousands of contracts across dozens
of expirations. The chain endpoint now carries them properly: an
`expirations` list is always included, and `expiry=YYYY-MM-DD` slices a
single expiration out of the chain, with the contract count following the
slice.

```bash
curl -H "x-api-key: YOUR_API_KEY" \
  "https://sugra.ai/api/v1/cboe\
/options/_SPX?expiry=2026-09-18"
```

On a recent Friday that slice returned 1,970 contracts of one
expiration, out of 55 expirations on the full chain - with implied
volatility, Greeks, volume and open interest on every one.

## The curve, declared

Volatility futures are settlement-basis instruments: the number that
matters is fixed once a day. Rather than dress that up as a live quote,
the `VX` payloads declare it - `price_type: "settlement"`, with the
settlement date alongside, and the date is only stated when it can be
verified against two independent files. When it cannot, the field is
`null` and the data still serves.

```bash
curl -H "x-api-key: YOUR_API_KEY" \
  "https://sugra.ai/api/v2/futures\
/VX/curve"
```

The curve comes back with a `structure` label - contango or
backwardation - computed front to back, the same way it works for crude,
gold and every other root on the futures surface. Roll cost and term
premium stop being a spreadsheet you maintain and become a field you
read.

## Why the honesty rules matter for agents

Every endpoint in this layer was built for a reader that does not squint
at charts: an AI agent, or a pipeline that acts on what it parses. Squint
and you can forgive a 0.0 placeholder; parse and you cannot. The rules
this layer ships with - placeholders become `null`, zeros are only served
when they are true zeros, definition changes are declared in-band,
absences are 404s, T-1 data says it is T-1 - exist because an agent
believes what you return. The API's job is to make that belief safe.

The volatility layer is live now, on every plan, behind the same key as
everything else. The [API reference](https://docs.sugra.ai) has the
endpoint-by-endpoint detail, and the free tier is enough to pull every
example in this post.
