---
title: "Get Thesis History"
method: GET
path: "/watchlists/{watchlist_id}/theses/{ticker}/history"
tags: ["thesis history"]
---

# Get Thesis History

`GET /watchlists/{watchlist_id}/theses/{ticker}/history`

## 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}/history`
- Auth: one of:
  - HTTP bearer
  - API key in header `X-API-Key`

## Path parameters

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

## Response `200`

Successful Response

- ThesisVersionHistoryOut
  - `ticker` string, required
  - `versions` ThesisVersionOut[]
    - `version_number` integer, required
    - `narrative_text` string, required
    - `components` ThesisVersionComponentOut[]
      - `id` integer, required
      - `kind` 'claim' | 'expectation' | 'invalidation', required
      - `statement` string, required
      - `position` integer, required
    - `change_kind` 'initial_snapshot' | 'narrative_saved' | 'structure_saved', required
    - `effective_at` string, date-time, required
    - `recorded_at` string, date-time, required
    - `is_current` boolean, required
    - `changes` ThesisVersionChangeOut, required
      - `narrative_changed` boolean, required
      - `added_components` ThesisVersionComponentOut[]
        - `id` integer, required
        - `kind` 'claim' | 'expectation' | 'invalidation', required
        - `statement` string, required
        - `position` integer, required
      - `removed_components` ThesisVersionComponentOut[]
        - `id` integer, required
        - `kind` 'claim' | 'expectation' | 'invalidation', required
        - `statement` string, required
        - `position` integer, required
      - `revised_components` ThesisVersionComponentRevisionOut[]
        - `before` ThesisVersionComponentOut, required: A component exactly as it appeared in one immutable thesis version.
          - `id` integer, required
          - `kind` 'claim' | 'expectation' | 'invalidation', required
          - `statement` string, required
          - `position` integer, required
        - `after` ThesisVersionComponentOut, required: A component exactly as it appeared in one immutable thesis version.
          - `id` integer, required
          - `kind` 'claim' | 'expectation' | 'invalidation', required
          - `statement` string, required
          - `position` integer, required
      - `reordered_components` ThesisVersionComponentRevisionOut[]
        - `before` ThesisVersionComponentOut, required: A component exactly as it appeared in one immutable thesis version.
          - `id` integer, required
          - `kind` 'claim' | 'expectation' | 'invalidation', required
          - `statement` string, required
          - `position` integer, required
        - `after` ThesisVersionComponentOut, required: A component exactly as it appeared in one immutable thesis version.
          - `id` integer, required
          - `kind` 'claim' | 'expectation' | 'invalidation', required
          - `statement` string, required
          - `position` integer, required
    - `revision_note` ThesisRevisionNoteOut
      - `version_number` integer, required
      - `rationale` string, nullable
      - `updated_at` string, date-time, nullable
      - `causes` ThesisRevisionCauseOut[]
        - `id` integer, required
        - `kind` 'alert' | 'source_event' | 'theme_finding', required
        - `referent_id` integer, nullable
        - `title` string, required
        - `occurred_at` string, date-time, required
        - `available_at` string, date-time, required
        - `source_url` string, nullable
        - `detail` string, nullable
        - `thesis_impact` 'strengthened' | 'weakened' | 'broken' | 'uncertain', nullable
        - `relationship` 'support' | 'contradict' | 'neutral', nullable
        - `evaluation_version` string, nullable
        - `referent_available` boolean, required
        - `asserted_by_user` true
    - `market_context_end_at` string, date-time, nullable
    - `market_performance` ThesisMarketPerformanceOut: Price context around an exact saved interval, never a thesis-quality score.
      - `ticker` string, required
      - `benchmark_ticker` string, required
      - `benchmark_label` string, required
      - `status` 'ready' | 'partial' | 'unavailable', required
      - `status_reason` 'complete_window' | 'starts_after_context' | 'ticker_history_unavailable' | 'benchmark_history_unavailable' | 'insufficient_shared_sessions', required
      - `requested_start_date` string, date, required
      - `requested_end_date` string, date, nullable
      - `start_date` string, date, nullable
      - `end_date` string, date, nullable
      - `trading_sessions` integer
      - `ticker_return_pct` number, nullable
      - `benchmark_return_pct` number, nullable
      - `relative_return_pct` number, nullable
    - `record_entry` RecordEntrySummaryOut
      - `moderation` RecordModerationOut
        - `id` string, uuid, nullable
        - `status` 'pending' | 'approved' | 'rejected' | 'needs_review', required
        - `reason` string, required
        - `category` string, nullable
        - `content_sha256` string, required
        - `can_appeal` boolean
      - `publicly_visible` boolean
      - `publication_status` 'sealed' | 'withheld' | 'published'
      - `id` string, uuid, required
      - `sequence_number` integer, required
      - `kind` 'thesis_version' | 'theme_version' | 'evidence_trail' | 'replay' | 'revision' | 'correction' | 'retraction' | 'review' | 'tracked_thesis', required
      - `visibility` 'sealed' | 'open', required
      - `ticker` string, nullable, required
      - `version_number` integer, nullable, required
      - `payload_sha256` string, required
      - `entry_sha256` string, required
      - `recorded_at` string, date-time, required
      - `opened_at` string, date-time, nullable, required
      - `public_url` string, required
      - `subject_entry_id` string, uuid, nullable
      - `as_of` string, date-time, nullable
      - `subject_type` 'company' | 'theme'
      - `shared_thesis_id` integer, nullable
      - `title` string, nullable
      - `verdict` 'stands' | 'weakening' | 'superseded', nullable
      - `watchlist_id` integer, nullable
    - `record_derived_entries` RecordEntrySummaryOut[]
      - `moderation` RecordModerationOut
        - `id` string, uuid, nullable
        - `status` 'pending' | 'approved' | 'rejected' | 'needs_review', required
        - `reason` string, required
        - `category` string, nullable
        - `content_sha256` string, required
        - `can_appeal` boolean
      - `publicly_visible` boolean
      - `publication_status` 'sealed' | 'withheld' | 'published'
      - `id` string, uuid, required
      - `sequence_number` integer, required
      - `kind` 'thesis_version' | 'theme_version' | 'evidence_trail' | 'replay' | 'revision' | 'correction' | 'retraction' | 'review' | 'tracked_thesis', required
      - `visibility` 'sealed' | 'open', required
      - `ticker` string, nullable, required
      - `version_number` integer, nullable, required
      - `payload_sha256` string, required
      - `entry_sha256` string, required
      - `recorded_at` string, date-time, required
      - `opened_at` string, date-time, nullable, required
      - `public_url` string, required
      - `subject_entry_id` string, uuid, nullable
      - `as_of` string, date-time, nullable
      - `subject_type` 'company' | 'theme'
      - `shared_thesis_id` integer, nullable
      - `title` string, nullable
      - `verdict` 'stands' | 'weakening' | 'superseded', nullable
      - `watchlist_id` integer, nullable
  - `truncated` boolean

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