---
title: "Replace Thesis Structure"
method: PUT
path: "/watchlists/{watchlist_id}/theses/{ticker}/structure"
tags: ["thesis structure"]
---

# Replace Thesis Structure

`PUT /watchlists/{watchlist_id}/theses/{ticker}/structure`

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

Replace the *current* map while preserving factor identity and archived rows.

## Path parameters

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

## Request body

- ThesisStructureIn
  - `components` ThesisComponentIn[]
    - `id` integer, nullable
    - `kind` 'claim' | 'expectation' | 'invalidation', required
    - `statement` string, required

## Response `200`

Successful Response

- ThesisStructureOut
  - `ticker` string, required
  - `thesis_updated_at` string, date-time, required
  - `components` ThesisComponentOut[], required
    - `id` integer, required
    - `kind` 'claim' | 'expectation' | 'invalidation', required
    - `statement` string, required
    - `position` integer, required
    - `created_at` string, date-time, required
    - `updated_at` string, date-time, required
  - `has_claims` boolean, required
  - `has_expectations` boolean, required
  - `has_invalidations` boolean, required
  - `is_testable` boolean, required
  - `is_active` 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)
