---
title: "Get Historical Replay"
method: GET
path: "/watchlists/{watchlist_id}/theses/{ticker}/historical-replay"
tags: ["historical thesis replay"]
---

# Get Historical Replay

`GET /watchlists/{watchlist_id}/theses/{ticker}/historical-replay`

## 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/watchlists/{watchlist_id}/theses/{ticker}/historical-replay`
- Auth: one of:
  - HTTP bearer
  - API key in header `X-API-Key`

Return cached replay results plus the number of public candidates available.

The read path may populate the global ledger from existing local documents, but it
does not call a model. Explicit POST is required before any event is evaluated.

## Path parameters

- `watchlist_id` integer, required
- `ticker` string, required

## Query parameters

- `window_days` integer

## Response `200`

Successful Response

- HistoricalReplayOut
  - `ticker` string, required
  - `thesis_text` string, required
  - `thesis_updated_at` string, date-time, required
  - `window_days` 90 | 365, required
  - `window_start` string, date-time, required
  - `transcript_window_start` string, date-time, required
  - `candidate_count` integer, required
  - `newly_evaluated_count` integer
  - `warmup` ReplayWarmupOut, required: Tenant-safe status for shared public-evidence preparation.
    - `status` 'not_started' | 'pending' | 'running' | 'complete' | 'partial' | 'failed', required
    - `ready` boolean, required
    - `candidate_count` integer
    - `added_count` integer
    - `attempt_count` integer
    - `requested_at` string, date-time, nullable
    - `started_at` string, date-time, nullable
    - `finished_at` string, date-time, nullable
    - `last_success_at` string, date-time, nullable
    - `error_code` string, nullable
  - `evaluation_job` ReplayEvaluationJobOut
    - `id` integer, required
    - `window_days` 90 | 365, required
    - `status` 'pending' | 'running' | 'complete' | 'failed', required
    - `stage` 'queued' | 'evaluating' | 'complete' | 'failed', required
    - `requested_at` string, date-time, required
    - `started_at` string, date-time, nullable, required
    - `finished_at` string, date-time, nullable, required
    - `attempt_count` integer, required
    - `candidate_count` integer, required
    - `completed_count` integer, required
    - `created_count` integer, required
    - `error_code` 'dispatch_failed' | 'task_failed' | 'source_unavailable' | 'release_mismatch', nullable
    - `updated_at` string, date-time, required
  - `track_record` TrackRecordBoundaryOut: IA-11. Where the investor's claim ends and TickerTrac's observation begins. ``asserted_source`` is fixed rather than inferred so no client can render the date as anything but the user's own claim. ``witnessed_since`` is the first moment the product actually monitored this thesis; everything before it is reconstructed after the fact and must be labeled that way.
    - `ticker` string, required
    - `asserted_formation_date` string, date, nullable
    - `asserted_formation_recorded_at` string, date-time, nullable
    - `asserted_source` 'user_claim'
    - `witnessed_since` string, date-time, required
    - `witnessed_since_source` 'version_history' | 'thesis_updated_at', required
    - `reconstructed_days` integer
  - `replay_reaches_asserted_start` boolean
  - `events` HistoricalReplayEventOut[], required
    - `id` integer, required
    - `assessment_status` 'assessed' | 'failed'
    - `source_event_id` integer, required
    - `ticker` string, required
    - `provider_code` 'sec_edgar' | 'company_ir' | 'earningscalls_dev', required
    - `source_kind` 'filing' | 'ir_presentation' | 'earnings_call', required
    - `title` string, required
    - `evidence_excerpt` string, required
    - `original_url` string, required
    - `effective_at` string, date-time, required
    - `published_at` string, date-time, required
    - `observed_at` string, date-time, required
    - `ingested_at` string, date-time, required
    - `source_content_hash` string, required
    - `source_snapshot_basis` 'evaluation_input' | 'legacy_captured_before_repair', nullable
    - `thesis_text` string, required
    - `thesis_updated_at` string, date-time, required
    - `relevant` boolean, required
    - `relationship` 'support' | 'contradict' | 'neutral', required
    - `materiality` 'material' | 'immaterial' | 'uncertain' | 'unknown', required
    - `citation_valid` boolean, required
    - `directness` 'direct' | 'indirect' | 'none' | 'unknown', required
    - `source_quality` 'primary' | 'reputable_secondary' | 'weak' | 'invalid' | 'unknown', required
    - `bridge_valid` boolean, required
    - `thesis_factor` string, nullable, required
    - `evidence_factor` string, nullable, required
    - `causal_bridge` string, nullable, required
    - `thesis_component_id` integer, nullable
    - `thesis_component_kind` 'claim' | 'expectation' | 'invalidation', nullable
    - `thesis_component_statement` string, nullable
    - `source_artifact_version_id` integer, nullable
    - `evidence_source_segment_id` integer, nullable
    - `evidence_quote` string, nullable
    - `evidence_speaker_name` string, nullable
    - `evidence_section` 'prepared_remarks' | 'questions_and_answers' | 'other' | 'unknown', nullable
    - `evidence_source_locator` string, nullable
    - `thesis_factor_kind` 'claim' | 'expectation' | 'invalidation' | 'narrative' | 'unknown'
    - `thesis_impact` 'strengthened' | 'weakened' | 'broken' | 'uncertain'
    - `reasoning` string, required
    - `evaluator_model` string, required
    - `evaluator_version` string, required
    - `evaluated_at` string, date-time, required
    - `feedback_labels` string[]
    - `is_historical_replay` true
    - `observation_status` 'witnessed' | 'reconstructed'

## 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)
