---
title: "Get Pattern Insights"
method: GET
path: "/api/backtest/insights/patterns"
tags: ["Backtesting", "Beta"]
---

# Get Pattern Insights

`GET /api/backtest/insights/patterns`

## Request

- Base URL: `https://api.zerogex.io` (the document declares no server; this is the origin it was published from)
- URL: `https://api.zerogex.io/api/backtest/insights/patterns`
- Auth: HTTP bearer

Strategy scoreboard: latest stats row per (catalog strategy, underlying).

Read-only roll-up of ``playbook_pattern_stats`` folded onto canonical
strategy-catalog ids — n, win rate, dollar economics, derived PF /
expectancy, window dates, most-recent ``computed_at``, plus the catalog's
name / family / tier / research stage.

``source`` picks the measurement feed: ``option_pnl`` (realized P&L from
the strategy's own live-emitted Action Cards — the default and the
strongest claim), ``bot_replay`` (realized P&L from replaying a bot-bound
strategy's entry rule over history — same pricing, reconstructed entries),
or ``underlying_touch`` (the price-touch proxy, no dollar economics).

``include_unmeasured`` (default true) appends an explicit "no data yet"
row for every catalog strategy absent from this source, so the page shows
the whole catalog rather than only what happens to have been screened.
Ignored when ``underlying`` narrows to one symbol.

## Query parameters

- `source` string
- `underlying` string, nullable
- `include_unmeasured` boolean

## Response `200`

Successful Response

- unknown[]
  - unknown

## Other responses

- `422`: Validation Error

---

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