Skip to Content
BlitzPulse docs are live. Looking for the app? Visit https://app.blitzglobalcapital.com.
Api ReferenceSignals API

Signals API

Auto-generated from openapi-snapshot.json. Do not edit by hand — changes are overwritten by scripts/docs/generate_api_reference.py.

3 endpoints in this group.

GET /api/signals/feed

List latest trading signals

Return the most recent trading signals from the agent_signals table.

P0-8: limit capped at 100. P0-9: typed response — Signal is now emitted as a $ref in the OpenAPI schema so openapi-typescript codegen produces a proper Signal[] type instead of unknown. Raw DB columns (signal_type, confidence, indicator_data) are mapped to the wire contract (type, score, payload) via row_to_signal so the feed and the WS stream publish the same shape.

TA-018 (issue #89): source filtering is applied at SQL level using the calling user’s signal_sources preference map. New TA sources are OFF by default so existing users see no behavior change on upgrade.

Parameters

NameInTypeRequiredDescription
tenant_idqueryintegeroptional
agent_idqueryoptional
symbolqueryoptional
limitqueryintegeroptionalPage size (max 100).
cursorqueryoptionalOpaque pagination cursor from a previous page’s next_cursor.

Responses

CodeDescription
200Successful Response
422Validation Error

POST /api/signals/generate

Generate Signals

Run the signal engine for the given agent/strategy/symbol list. Inserts new rows into agent_signals, then publishes each new signal to the Redis Pub/Sub channel so WebSocket clients receive it in real time.

Request body: application/json

Responses

CodeDescription
200Successful Response
422Validation Error

GET /api/signals/{signal_id}

Fetch a single signal with structured rationale

ML-SIGNAL-REFINE (#102): return one signal including rationale_json so the signal-detail drawer can render per-citation reasoning. 404 if the signal does not exist for the given tenant.

Parameters

NameInTypeRequiredDescription
signal_idpathintegerrequired
tenant_idqueryintegeroptional

Responses

CodeDescription
200Successful Response
422Validation Error