---
title: "Subscribe to strategy signal alerts"
method: POST
path: "/api/v1/subscriptions/signal-alert"
tags: ["Live-Subscriptions"]
---

# Subscribe to strategy signal alerts

`POST /api/v1/subscriptions/signal-alert`

## Request

- Base URL: `https://tradingstrategies.work`
- URL: `https://tradingstrategies.work/api/v1/subscriptions/signal-alert`
- Auth: HTTP bearer

Fires when an existing Ampel-Config's `last_signal` changes (BUY ↔ SELL). User must first create the Ampel via Web `/dashboard/ampel`, then reference its UUID. [API Pro tier — Pro 3 active, Power 20]

## Request body

- object
  - `ampel_config_id` string, uuid, required: Existing ampel_config UUID from the same user.
  - `signal_types` string[]: Optional filter.
  - `delivery_method` 'polling' | 'webhook'
  - `webhook_url` string, uri: HTTPS-only. Required when delivery_method=webhook.
  - `expires_at` string, date-time: ISO timestamp; subscription auto-deactivates after.

## Response `201`

Subscription created.

- object
  - `subscription` LiveSubscription
    - `id` string, uuid, required
    - `api_key_id` string, uuid, required
    - `subscription_type` 'signal_alert' | 'cycle_band' | 'pulse_score' | 'bullmarket_stage', required
    - `config` object, required
    - `delivery_method` 'polling' | 'webhook', required
    - `webhook_url` string, uri, nullable
    - `active` boolean, required
    - `expires_at` string, date-time, nullable
    - `created_at` string, date-time, required
    - `last_triggered_at` string, date-time, nullable
    - `last_state` object, nullable

## Other responses

- `400`: Invalid input — fehlt Pflichtfeld oder Wert außerhalb des erlaubten Bereichs.
- `401`: Unauthenticated — kein gültiger Bearer-Token im Authorization-Header.
- `403`: Tier-Insufficient — Endpoint braucht höheren API-Tier. Response enthält upgrade_url.
- `404`: Not-Found — Resource existiert nicht oder gehört nicht dem aktuellen User.
- `429`: Rate-Limit überschritten — Tier-Quota (hourly/daily) oder Per-Endpoint-Quota erreicht. Retry-After-Header gesetzt.
- `500`: Internal Error.
- `503`: Upstream-Failure — Datenquelle nicht erreichbar (Binance, EODHD, etc.).

---

[API](https://skmtc.dev/tradingstrategies/apis/backtesting-arena-public-api.md) · [All operations](https://skmtc.dev/tradingstrategies/apis/backtesting-arena-public-api/llms.txt) · [OpenAPI document](https://skmtc.dev/tradingstrategies/apis/backtesting-arena-public-api/revisions/f82e8d6eecd7?raw)
