---
title: "Why the market is moving: cross-asset context in one call"
method: GET
path: "/v1/context"
tags: ["Rates and curve"]
---

# Why the market is moving: cross-asset context in one call

`GET /v1/context`

## Request

- Base URL: `https://api.helious.io`
- URL: `https://api.helious.io/v1/context`
- Auth: one of:
  - none
  - HTTP bearer
  - OAuth 2 (authorization code, authorization URL `https://helious.io/oauth/authorize`, token URL `https://api.helious.io/oauth/token`, scopes: `market:read`)

The whole cross-asset board (equities, the Treasury curve with its regime, FX, volatility, commodities and credit ETF proxies), every scored economic release behind it, and the Helious desk's read on what is driving the session. The read characterises the session rather than grading itself: event-driven (a print explains it and the tape confirms), event-adjacent (a print landed but the tape has not confirmed it), flow-driven (no scheduled catalyst, so positioning rather than data) or quiet. It is framed by the regime yields and stocks have actually been trading in, measured over Helious's own reaction archive. Start here for any 'why is the market doing this' question: it replaces five separate calls. Credit spreads ride along as measured high-yield and investment-grade OAS (daily index closes from FRED); HYG and LQD appear beside them as clearly labelled ETF price proxies, never as spreads. Prices in this answer are live on Pro and Ultimate; below those plans the price boards answer with the upgrade steps instead of numbers, though Starter still gets the Treasury curve 60 minutes behind.

## Query parameters

- `fresh` boolean

## Response `200`

summary + source + data + meta envelope

- Envelope: Every /v1 response. `summary` states the answer as one plain-English sentence and `source` says who to credit for it, both before the raw `data`, so the finished claim is the first thing a reader meets.
  - `summary` string: The answer as a sentence, with the numbers in it. Identical to the sentence the matching MCP tool returns.
  - `source` object: Who to credit and where a reader can check the number.
    - `name` string
    - `url` string, uri: The Helious page backing this answer.
    - `cite_as` string
    - `attribution` string
    - `live` string: How current these numbers are on YOUR plan, and how to ask for them again. Says the data is live only on a tier that serves it live.
  - `data` object: The dataset itself.
  - `meta` object: When it was true, and what your plan allows.
  - `plan_limit` object: Present only when your plan moved the window. Says this is a plan limit rather than missing data, what Helious holds behind it, and the exact step to relay to the person you work for.

## Other responses

- `429`: Over the per-minute limit (code rate_limited, Retry-After the rest of the minute) or the wallet cannot pay (code out_of_credits: credits_left, resets_on, retry_after_seconds, packs, topup_url, upgrade_url, and fresh_costs on a held plan). Nothing is charged for a refusal.

## Changes

- **2026-10-20** `06bada17ad7a`: 2 info
  - added the new optional `query` request parameter `fresh`
  - added the non-success response with the status `429`

[Operation history](https://skmtc.dev/helious/apis/helious-public-api/changes/v1/context/get.md)

---

[API](https://skmtc.dev/helious/apis/helious-public-api.md) · [All operations](https://skmtc.dev/helious/apis/helious-public-api/llms.txt) · [OpenAPI document](https://skmtc.dev/helious/apis/helious-public-api/revisions/06bada17ad7a?raw)
