---
title: "MARKET SCAN: Rankings Proactivos por Estrategia"
method: GET
path: "/quant/market-scan"
tags: ["Market Scan"]
---

# MARKET SCAN: Rankings Proactivos por Estrategia

`GET /quant/market-scan`

## Request

- Base URL: `https://api.cryptocapi.com/v1`
- URL: `https://api.cryptocapi.com/v1/quant/market-scan`
- Auth: API key in header `x-api-key`

**Motor Market Scan** — Ranking ordenado de activos por señal Quant Plus. **Requiere plan PRO.**

Lee señales pre-computadas de la DB (sin latencia de cálculo) y devuelve los top N activos
del universo de Quant Plus.


Un `z_score` crudo no es comparable entre activos: está normalizado contra la historia de
**cada uno**, así que el 0.66 de una stablecoin y el 1.37 de bitcoin miden desvíos de
distribuciones de tamaños distintos. El ranking usa dos magnitudes que sí son comparables:

- **`threshold_proximity`** = `|z_score| / z_score_anomaly_boundary`. Adimensional. Mide
  cuán cerca está el activo de disparar **su propio** umbral de anomalía (t-Student con
  alpha=0.001, calculado por activo según su tamaño de muestra). `1.0` significa que está
  disparando; `0.4`, que va por el 40% del camino.
- **`evidence_weight`** = `min(data_points_analyzed / 50, 1.0)`. Cuánta muestra sostiene la
  medición. Es **independiente** del z-score, y por eso aporta un eje real y no una copia.

Ambos viajan en cada resultado: si ordenamos por ellos, podés reproducir el orden.


- **aggressive**: `threshold_proximity` desc. Convicción pura, sin ponderar cuánta evidencia
  la sostiene.
- **conservative**: `evidence_weight` desc, desempata por proximidad. La evidencia manda.
- **balanced** (default): `threshold_proximity * evidence_weight` desc, desempata por
  proximidad. Convicción ponderada por evidencia.

**La estrategia cambia el orden, no filtra.** Las tres devuelven el mismo conjunto de
activos (los que tienen señal Quant Plus de menos de 24 h y `market_cap_rank` conocido) y
varían solo el criterio de ranking. Si necesitás un subconjunto, filtrá del lado del
cliente por `signal`, `threshold_proximity` o `market_regime`.

**Alcance.** El universo es el curado de Quant Plus (hasta ~15 activos), no el mercado
completo. Un activo sin umbral o sin muestra persistidos devuelve el eje en `null` y cae al
final del ranking: no se le inventa un valor por defecto.

**Activos anclados.** Las stablecoins quedan fuera del ranking mientras su ancla aguanta.
Un z-score sobre un activo pegged mide ruido alrededor del ancla (su desviación estándar es
minúscula, así que un movimiento irrelevante produce un z alto) y le robaría el puesto a un
activo con señal real. **Si se despegan más de un 1% en 24 h vuelven a entrar**, porque en
ese caso el depeg es la señal más importante que pueden dar.

Ideal para dashboards, newsletters automáticas y bots que siguen ese universo sin hacer una
llamada por cada activo.

## Query parameters

- `strategy` 'aggressive' | 'balanced' | 'conservative'
- `limit` integer

## Response `200`

Ranking generado exitosamente

- object
  - `status` 'success'
  - `version` string
  - `timestamp` string, date-time
  - `data` object
    - `strategy` string
    - `count` integer
    - `results` QuantScanItem[]
      - `asset` object
        - `id` string
        - `symbol` string: Ticker en minúsculas (`btc`, `eth`), NO el par de trading.
      - `signal` 'STRONG_BUY' | 'BUY' | 'BUY_WATCH' | 'HOLD' | 'SELL_WATCH' | 'SELL' | 'STRONG_SELL' | 'ALERT', nullable
      - `sentiment` 'bullish' | 'bearish' | 'neutral', nullable
      - `z_score` number, nullable
      - `market_regime` 'BULLISH_TREND' | 'BEARISH_TREND' | 'RANGING_CHOP' | 'UNUSUAL_VOLATILITY' | 'EXTREME_VOLATILITY', nullable
      - `threshold_proximity` number, nullable: Eje primario del ranking. `|z_score| / z_score_anomaly_boundary`, adimensional y comparable entre activos: cuán cerca está de disparar su propio umbral de anomalía. 1.0 = está disparando. `null` si el umbral no está persistido (la fila cae al final).
      - `evidence_weight` number, nullable: Segundo eje del ranking, independiente del z-score. `min(data_points_analyzed / 50, 1.0)`: cuánta muestra sostiene la medición. `null` si no hay muestra persistida.
      - `confidence` object
        - `score` number
        - `label` 'HIGH' | 'MEDIUM' | 'LOW'
      - `risk_level` 'LOW' | 'MEDIUM' | 'HIGH' | 'CRITICAL', nullable
      - `trigger_condition` string, nullable
      - `summary` string, nullable
      - `current_price` number, nullable
      - `price_change_percentage_24h` number, nullable
      - `generated_at` string, date-time

## Other responses

- `401`: Unauthorized - API key missing
- `403`: Forbidden - PRO plan required

---

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