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

# List Signals

`GET /signals`

## Request

- Base URL: `https://api.tickertrac.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.tickertrac.com/signals`
- Auth: one of:
  - HTTP bearer
  - API key in header `X-API-Key`

Page alerts and market-wide theme findings in one ordered feed.

Ticker and company-thesis-impact filters intentionally select alert rows only.
A market-wide theme finding has neither attribute, and inferring either from the
theme's company links would turn context into a company-level judgment.

## Query parameters

- `limit` integer
- `offset` integer
- `ticker` string, nullable
- `source` string, nullable
- `impact` string, nullable
- `sort_order` 'newest' | 'oldest'

## Response `200`

Successful Response

- SignalOut[]
  - `record_type` 'alert' | 'theme_finding', required
  - `alert` AlertOut
    - `id` integer, required
    - `watchlist_id` integer, nullable, required
    - `ticker` string, required
    - `source` string, required
    - `title` string, required
    - `summary` string, required
    - `source_url` string, nullable, required
    - `company_transcript_url` string, nullable
    - `detected_at` string, date-time, required
    - `evidence` string, nullable
    - `thesis_text` string, nullable
    - `materiality` 'material' | 'immaterial' | 'uncertain' | 'unknown'
    - `relevance_model` string, nullable
    - `evaluation_version` string, nullable
    - `relationship` 'support' | 'contradict' | 'neutral'
    - `directness` 'direct' | 'indirect' | 'none' | 'unknown'
    - `source_quality` 'primary' | 'reputable_secondary' | 'weak' | 'invalid' | 'unknown'
    - `novelty` 'new' | 'known' | 'duplicate' | 'unknown'
    - `citation_valid` boolean
    - `bridge_valid` boolean
    - `thesis_factor` string, nullable
    - `evidence_factor` string, nullable
    - `causal_bridge` string, nullable
    - `thesis_factor_kind` 'claim' | 'expectation' | 'invalidation' | 'narrative' | 'unknown'
    - `thesis_impact` 'strengthened' | 'weakened' | 'broken' | 'uncertain'
    - `source_locator` string, nullable
    - `source_artifact_version_id` integer, nullable
    - `source_segment_id` integer, nullable
    - `source_speaker_name` string, nullable
    - `source_section` string, nullable
    - `source_provider_code` string, nullable
    - `source_provider_item_id` string, nullable
    - `thesis_context_type` 'ticker' | 'shared'
    - `shared_thesis_id` integer, nullable
    - `shared_thesis_version_id` integer, nullable
    - `shared_thesis_version_number` integer, nullable
    - `shared_thesis_title` string, nullable
    - `shared_thesis_effect` 'tailwind' | 'headwind' | 'mixed' | 'uncertain', nullable
    - `shared_thesis_rationale` string, nullable
    - `feedback_labels` string[]
    - `has_thesis` boolean
    - `call_drift_thesis_impacts` CallDriftThesisImpactOut[]
      - `id` integer, required
      - `thesis_context_type` 'ticker' | 'shared', required
      - `shared_thesis_id` integer, nullable
      - `shared_thesis_title` string, nullable
      - `shared_thesis_effect` 'tailwind' | 'headwind' | 'mixed' | 'uncertain', nullable
      - `shared_thesis_rationale` string, nullable
      - `thesis_text` string, required
      - `reasoning` string, required
      - `materiality` 'material' | 'immaterial' | 'uncertain', required
      - `relationship` 'support' | 'contradict' | 'neutral', required
      - `thesis_factor` string, nullable
      - `evidence_factor` string, nullable
      - `causal_bridge` string, nullable
      - `thesis_factor_kind` 'claim' | 'expectation' | 'invalidation' | 'narrative' | 'unknown', required
      - `thesis_impact` 'strengthened' | 'weakened' | 'broken' | 'uncertain', required
      - `relevance_model` string, required
      - `evaluation_version` string, required
      - `evaluated_at` string, date-time, required
      - `is_backfill` boolean
      - `feedback_labels` string[]
    - `result_thesis_implications` ResultThesisImplicationsOut: Summary-first IA contract for a tenant judgment beneath shared evidence.
      - `artifact_id` integer, required
      - `source` 'ask' | 'call_drift' | 'filing_diff' | 'price_move', required
      - `state` 'not_evaluated' | 'pending' | 'ready', required
      - `implications` ResultThesisImplicationOut[]
        - `id` integer, required
        - `alert_id` integer, nullable
        - `status` 'pending' | 'relevant' | 'irrelevant' | 'abstained' | 'failed', required
        - `conclusion` 'supports' | 'weakens' | 'unrelated' | 'uncertain', required
        - `thesis_context_type` 'ticker' | 'shared', required
        - `shared_thesis_id` integer, nullable
        - `shared_thesis_title` string, nullable
        - `thesis_text` string, required
        - `reasoning` string, nullable
        - `materiality` 'material' | 'immaterial' | 'uncertain', nullable
        - `relationship` 'support' | 'contradict' | 'neutral', nullable
        - `thesis_impact` 'strengthened' | 'weakened' | 'broken' | 'uncertain', nullable
        - `thesis_factor` string, nullable
        - `evidence_factor` string, nullable
        - `causal_bridge` string, nullable
        - `evaluated_at` string, date-time, nullable
        - `is_backfill` boolean
        - `thesis_narrative` string, required
        - `thesis_components` ThesisComponentSnapshotOut[], required
          - `kind` 'claim' | 'expectation' | 'invalidation', required
          - `heading` string, required
          - `statement` string, required
  - `theme_finding` SharedThesisFindingOut: Market-wide evidence judged against a theme, not against a company. Carries the linked tickers so a company page can show it marked as theme-level. It is context there, never a company alert: the finding is about the view, and the reader's own link is what connects it to the holding.
    - `id` integer, required
    - `shared_thesis_id` integer, required
    - `shared_thesis_version_id` integer, nullable
    - `shared_thesis_version_number` integer, nullable
    - `shared_thesis_title` string, required
    - `source` string, required
    - `title` string, required
    - `summary` string, required
    - `source_url` string, nullable
    - `evidence` string, nullable
    - `detected_at` string, date-time, required
    - `materiality` string
    - `relationship` string, nullable
    - `is_backfill` boolean
    - `linked_tickers` string[]

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/tickertrac/apis/tickerrag-api.md) · [All operations](https://skmtc.dev/tickertrac/apis/tickerrag-api/llms.txt) · [OpenAPI document](https://skmtc.dev/tickertrac/apis/tickerrag-api/revisions/3c7eb0f6425d?raw)
