---
title: "List published signals"
method: GET
path: "/api/v1/signals"
tags: ["Signals"]
---

# List published signals

`GET /api/v1/signals`

## Request

- Base URL: `https://tradewink-signals.fly.dev`
- URL: `https://tradewink-signals.fly.dev/api/v1/signals`
- Auth: HTTP bearer

Returns the most recent published signal objects, newest first. Requires a Signals API key on an active Pro or Elite subscription.

## Query parameters

- `limit` integer
- `signal_type` string
- `ticker` string: US stock ticker symbol (1-5 uppercase letters, optional .X suffix)

## Response `200`

Signal objects

- object
  - `signals` SignalObject[], required
    - `id` string
    - `ticker` string
    - `signal_type` string: Currently published values: momentum_alert, market_outlook, exit_alert, macro_alert, weekly_digest. Other values appear only on historical rows.
    - `direction` 'bullish' | 'bearish' | 'neutral'
    - `confidence` number: 0-100 setup score: how much support the setup has, adjusted against how similar past signals resolved. Not a forecast or a win probability.
    - `timeframe` string
    - `entry_low` number
    - `entry_high` number
    - `stop_loss` number
    - `target_price` number
    - `risk_reward` number
    - `analysis` string: Written reasoning
    - `catalysts` string[]
    - `outcome` 'active' | 'win' | 'loss' | 'expired' | 'cancelled' | 'advisory'
    - `outcome_pnl_pct` number, nullable
    - `created_at` string, date-time
    - `expires_at` string, date-time, nullable

## Other responses

- `401`: Missing or malformed Signals API key (`code: unauthorized`)
- `403`: Key not linked to an active Pro or Elite subscriber (`code: forbidden` or `forbidden_tier`)
- `503`: Signals database unavailable (`code: service_unavailable`)

---

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