---
title: "AI explanation"
method: GET
path: "/news/stocks/v1/stock/{ticker}/explain"
tags: ["News Stocks"]
---

# AI explanation

`GET /news/stocks/v1/stock/{ticker}/explain`

## Request

- Base URL: `https://api.adanos.com`
- URL: `https://api.adanos.com/news/stocks/v1/stock/{ticker}/explain`
- Auth: API key in header `X-API-Key`

Returns an AI-generated explanation for why a stock is trending in the news dataset, anchored to article evidence.

**Includes:**
- `explanation`: 1-2 sentence summary of why the stock is trending
- `cached`: whether this was served from cache
- `generated_at`: when the explanation was generated
- `model`: the language model that wrote the explanation

## Path parameters

- `ticker` string, required: News company key: 1-32 ASCII letters/digits with an optional documented venue suffix, case-insensitive. Examples: BRK, EADSY, ABX.DE. Share classes (BRK.A, BRK.B, BRK-B), hyphens, ampersands, cashtags and unknown suffixes return 422. A documented suffix resolves only if assigned to that issuer; other well-formed keys return 404 on individual endpoints. One issuer is one time series; ETFs stay separate issuers. Venue suffixes: .AE, .AS, .AT, .AX, .BA, .BD, .BK, .BO, .BR, .CA, .CL, .CN, .CO, .DE, .DU, .F, .HA, .HE, .HK, .HM, .IC, .IR, .IS, .JK, .JO, .KL, .KQ, .KS, .KW, .L, .LS, .MC, .MI, .MU, .MX, .NE, .NS, .NZ, .OL, .PA, .PR, .PS, .QA, .RO, .SA, .SAU, .SG, .SI, .SN, .SS, .ST, .SW, .SZ, .T, .TA, .TO, .TW, .TWO, .V, .VI, .VN, .WA.

## Response `200`

Successful Response

- StockExplanationResponse: AI-generated trend explanation for a stock.
  - `ticker` string, required: Stock ticker symbol
  - `company_name` string, nullable: Company name
  - `explanation` string, required: AI-generated explanation of why this stock is trending
  - `cached` boolean, required: Whether the explanation was served from cache
  - `generated_at` string, required: Timezone-aware UTC ISO timestamp when explanation was generated
  - `model` string, nullable: LLM model used for generation

## Other responses

- `401`: Authentication failed
- `403`: Historical data limit exceeded
- `404`: Resource not found or no data available for the requested asset/window
- `422`: Invalid period or query parameters
- `429`: Rate limit exceeded
- `503`: Explanation or database service unavailable
- `504`: Analytics request deadline exceeded

## Changes

- **2026-09-28** `559b660fa744`: 1 warning
  - changed the pattern of the `path` request parameter `ticker` from `^(?=[A-Za-z0-9]{1,32}$)[A-Za-z0-9]+$(?![\s\S])` to `^(?=[A-Za-z0-9.]{1,32}$)[A-Za-z0-9]+(?:\.(?:[Aa][Ee]|[Aa][Ss]|[Aa][Tt]|[Aa][Xx]|[Bb][Aa]|[Bb][Dd]|[Bb][Kk]|[Bb][Oo]|[Bb][Rr]|[Cc][Aa]|[Cc][Ll]|[Cc][Nn]|[Cc][Oo]|[Dd][Ee]|[Dd][Uu]|[Ff]|[Hh][Aa]|[Hh][Ee]|[Hh][Kk]|[Hh][Mm]|[Ii][Cc]|[Ii][Rr]|[Ii][Ss]|[Jj][Kk]|[Jj][Oo]|[Kk][Ll]|[Kk][Qq]|[Kk][Ss]|[Kk][Ww]|[Ll]|[Ll][Ss]|[Mm][Cc]|[Mm][Ii]|[Mm][Uu]|[Mm][Xx]|[Nn][Ee]|[Nn][Ss]|[Nn][Zz]|[Oo][Ll]|[Pp][Aa]|[Pp][Rr]|[Pp][Ss]|[Qq][Aa]|[Rr][Oo]|[Ss][Aa]|[Ss][Aa][Uu]|[Ss][Gg]|[Ss][Ii]|[Ss][Nn]|[Ss][Ss]|[Ss][Tt]|[Ss][Ww]|[Ss][Zz]|[Tt]|[Tt][Aa]|[Tt][Oo]|[Tt][Ww]|[Tt][Ww][Oo]|[Vv]|[Vv][Ii]|[Vv][Nn]|[Ww][Aa]))?$(?![\s\S])`
- **2026-09-16** `a8567b417bda`: 1 warning
  - changed the pattern of the `path` request parameter `ticker` from `^(?=[A-Za-z0-9.]{1,10}$)[A-Za-z0-9]+(?:\.(?:[Cc][Nn]|[Dd][Ee]|[Nn][Ee]|[Tt][Oo]|[Vv]|[Ww][Aa]))?$(?![\s\S])` to `^(?=[A-Za-z0-9]{1,32}$)[A-Za-z0-9]+$(?![\s\S])`
- …earlier changes not shown

[Operation history](https://skmtc.dev/adanos/apis/adanos-market-sentiment-api/changes/news/stocks/v1/stock/:ticker/explain/get.md)

---

[API](https://skmtc.dev/adanos/apis/adanos-market-sentiment-api.md) - [All operations](https://skmtc.dev/adanos/apis/adanos-market-sentiment-api/llms.txt) - [OpenAPI document](https://skmtc.dev/adanos/apis/adanos-market-sentiment-api/revisions/7e8bdb1e7e75?raw)
