---
title: "Structural narrative"
method: GET
path: "/api/v1/public/signals/{symbol}/narrative"
tags: ["Public — Signals"]
---

# Structural narrative

`GET /api/v1/public/signals/{symbol}/narrative`

## Request

- Base URL: `https://api.decker-ai.com`
- URL: `https://api.decker-ai.com/api/v1/public/signals/{symbol}/narrative`
- Auth: none declared

Returns a plain-language summary of the current structural state. `mode=rule` (default): deterministic rule-based, $0 LLM cost. `mode=ai`: LLM-powered narrative via reading_view synthesis (DB-cached per bar).

## Path parameters

- `symbol` string, required: Full symbol — e.g. BTCUSDT · ETHUSDT · XYZ_GOLDUSD (not 'BTC')

## Query parameters

- `timeframe` string
- `mode` string: rule | ai

## Headers

- `X-API-Key` string, nullable

## Response `200`

Narrative returned

- object

## Other responses

- `401`: Invalid or missing X-API-Key
- `404`: No active signal for this symbol/timeframe
- `422`: Validation Error
- `429`: Rate limit exceeded

---

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