---
title: "Cross-asset correlation breaks (latest batch)"
method: GET
path: "/macro/correlations"
tags: ["macro"]
---

# Cross-asset correlation breaks (latest batch)

`GET /macro/correlations`

## Request

- Base URL: `https://kresmion.com/v1`
- URL: `https://kresmion.com/v1/macro/correlations`
- Auth: HTTP bearer

Current cross-asset correlation breaks from the LATEST computed snapshot, ranked by |delta|. Each row: the canonical pair (asset_a/asset_b) + their asset classes, the 12-month `baseline` correlation (trailing 252-day mean of 30-day rolling Pearson), the latest `current_corr`, `delta` (current − baseline), `sign_flip`, and a `reason`.

WHAT A BREAK IS. A pair ENTERS a break when |delta| exceeds 0.40 with a sign flip, a doubling or a halving of the correlation, and STAYS in break until |delta| falls back under 0.30 (hysteresis, the rule kresmion.com/tools/correlation-regime applies). Two flags per row: `in_break` = in a break under that rule on this date; `is_break` = the entry rule itself was met on this date (the raw stored flag, unchanged for existing clients). A pair held between 0.30 and 0.40 is `in_break: true, is_break: false`. `is_new_break`, `break_since` and `break_age_days` date the episode (age capped by a 120-day state window, `break_age_capped`).

`only_breaks=true` (default) keeps rows with `in_break` under `break_rule=hysteresis` (default) or rows with `is_break` under `break_rule=entry` (the pre-2026-10 behaviour of this filter). `meta.breaks_total` counts pairs in break under the hysteresis rule, `meta.entry_breaks_total` pairs meeting the entry rule, both over the whole batch before `min_delta` and `limit`.

Only the most recent COMPLETE computation batch is served (a batch with no non-crypto row is skipped as partial), so there are no stale duplicate rows and no crypto-only view. The universe is a FIXED ~45-symbol set (22 crypto + 23 ETF/index/forex/vol); pairs outside it do not exist here.

## Query parameters

- `min_delta` number: Minimum |delta| (correlation points, 0..2).
- `only_breaks` boolean: Only pairs in a break under `break_rule`.
- `break_rule` string: hysteresis = in break (enter above 0.40, exit under 0.30), the site's rule; entry = only rows meeting the entry rule on this date (`is_break`).
- `limit` integer

## 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)
