---
title: "Compound multi-product brief for one symbol"
method: GET
path: "/brief/{asset_class}/{symbol}"
tags: ["brief"]
---

# Compound multi-product brief for one symbol

`GET /brief/{asset_class}/{symbol}`

## Request

- Base URL: `https://kresmion.com/v1`
- URL: `https://kresmion.com/v1/brief/{asset_class}/{symbol}`
- Auth: HTTP bearer

One request that fans across every Kresmion product server-side and returns a single structured digest for one symbol: so an agent spends one round-trip instead of eight. Purpose-built for LLM agents and apps that need a fast, broad situational read before deciding where to drill down.

**When to use this vs the per-product endpoints**: Call the brief FIRST to get the lay of the land for a symbol: what signals fired, who is trading it, where the flows and positioning sit, what the crowd is pricing, and the macro backdrop. Each section is a small digest capped at 5-10 rows, NOT a full dump. When a section looks interesting, drill down via its dedicated endpoint (named below) for the full, filterable, windowed series.

**Path**: `asset_class` is `crypto` or `equity` (anything else → 422). `symbol` is uppercased and bounded to 12 chars. A crypto symbol is a bare ticker (BTC, ETH, SOL, XRP, …); an equity symbol is a stock ticker (NVDA, AAPL, …).

**crypto sections**: `signals` (→ `/v1/signals`, `/v1/equities/signals` for equities), `whale_transfers` (≥ $1M on-chain, 72h, self-transfer artifact excluded → `/v1/crypto/whales`), `etf_flows` (BTC/ETH/SOL spot-ETF AUM and flows → `/v1/crypto/etf/flows`; BTC/ETH NYSE-session flows are withheld there and here, `total_kind` 'withheld', `withheld_reason` 'source_not_licensed'), `derivatives` (aggregate OI + OI-weighted funding → `/v1/crypto/derivatives/{symbol}`), `funding` (latest settled funding per exchange → `/v1/crypto/derivatives/{symbol}/funding-history`), `prediction_markets` (top 5 by volume → `/v1/prediction/markets`), `regime` (shared macro backdrop → `/v1/macro/regime`).

**equity sections**: `signals` (→ `/v1/equities/signals`), `insider_clusters` (→ `/v1/equities/insider-clusters`), `congress` (→ `/v1/equities/congress`), `institutional` (latest 13F quarter → `/v1/equities/institutional`), `short_volume` (→ `/v1/equities/short-volume`), `gamma` (modeled dealer GEX; present only for tickers in the options gamma table → `/v1/equities/gamma`), `prediction_markets` (→ `/v1/prediction/markets`), `regime` (→ `/v1/macro/regime`).

**Shape**: `data` maps each section name to `{data, as_of, count?}` (list sections carry `count`; some carry a `caveat` string). Top-level `as_of` is the max of the section timestamps. `meta.sections_empty` lists sections with no data for this symbol; `meta.sections_degraded` (present only if non-empty) lists sections whose query failed: a degraded section is `{"error": "unavailable"}` and never fails the whole brief.

**Unknown / no-data symbol**: returns 200 with every section empty and all listed in `meta.sections_empty` (agents handle empties better than a 404). Only an invalid `asset_class` returns 422.

**Framing**: event data only; no advice, no buy/sell. `direction` fields are machine tags. Read the `caveat` on `whale_transfers` (BTC netflow) and `institutional` (13F resolution / lag) before interpreting.

## Path parameters

- `asset_class` 'crypto' | 'equity', required: Supported asset classes. An out-of-enum value → FastAPI 422 (documented allowed values in the spec), exactly the task's ``422 on invalid asset_class``.
- `symbol` string, required: Ticker; uppercased, ≤ 12 chars.

## Headers

- `authorization` string, nullable

## Response `200`

Successful Response

- object

## Other responses

- `422`: Validation Error

---

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