---
title: "L1 canonical active signal (engine 의도 → user 단일 진실)"
method: GET
path: "/api/v1/public/signals/{symbol}/active"
tags: ["Public — Signals"]
---

# L1 canonical active signal (engine 의도 → user 단일 진실)

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

## Request

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

active_user_signal VIEW 위 thin wrapper. 사용자가 받는 active signal 단일 진실. (symbol, horizon) PK. v3 game_signal > v2 consumer_signal_snapshot 우선순위. provenance 컬럼이 source row 추적. X-API-Key 필수.

정본: docs/SIGNAL_LAYER_ARCHITECTURE.md §3

## Path parameters

- `symbol` string, required

## Query parameters

- `horizon` string, nullable: scalp(30m) | swing(1h) | position(4h/1d). 미지정 시 모든 horizon 반환.

## Headers

- `X-API-Key` string, nullable

## Response `200`

Active signal returned (rows = 1 또는 N per horizon)

- object

## Other responses

- `400`: Invalid horizon
- `401`: Invalid or missing X-API-Key
- `404`: No active signal for this (symbol, horizon)
- `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)
