---
title: "Organize Dictated Thesis Revision"
method: POST
path: "/thesis-commands/revision-organizations"
tags: ["thesis commands"]
---

# Organize Dictated Thesis Revision

`POST /thesis-commands/revision-organizations`

## 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/thesis-commands/revision-organizations`
- Auth: one of:
  - HTTP bearer
  - API key in header `X-API-Key`

Organize one dictated transcript into proposed wording the investor approves.

Deliberately declares no ``Depends(get_conn)``: FastAPI holds a yield dependency
until the response completes and this route waits on a model. It takes explicitly
scoped connections instead -- one to reserve, one afterwards to settle -- with the
provider call between them holding nothing.

## Request body

- ThesisRevisionOrganizeIn: Ask for one dictated transcript to be organized into proposed wording. The transcript is named, never supplied: the server reads it from the durable voice receipt this user owns. A client that could post arbitrary text here would be able to hand the model words the investor never said and get them back wearing "organized from your words", which is the exact provenance claim this workflow exists to make true. Unknown fields fail closed so approval, save authority and a proposed narrative cannot be smuggled into a boundary whose entire output is a proposal.
  - `schema_version` 'thesis-revision-organize-v1', required
  - `idempotency_key` string, uuid, required
  - `operation` 'organize_dictated_revision', required
  - `confirmation_policy` 'explicit_approval_required', required
  - `subject_type` 'company_thesis' | 'investment_theme', required
  - `subject_version` integer, required
  - `watchlist_id` integer, nullable
  - `ticker` string, nullable
  - `shared_thesis_id` integer, nullable
  - `transcription_id` integer, required

## Response `200`

Successful Response

- ThesisRevisionOrganizeOut: Proposed wording, plus everything needed to disbelieve it. ``exact_transcript`` and ``supporting_quotes`` are not decoration: ADR-047 requires the investor's own words to stay inspectable next to anything a model wrote from them. ``organized_narrative`` is a proposal and nothing else -- it becomes thesis wording only when the investor approves it, and only through the existing revision proposal and confirmation.
  - `schema_version` 'thesis-revision-organize-v1', required
  - `idempotency_key` string, uuid, required
  - `operation` 'organize_dictated_revision', required
  - `confirmation_policy` 'explicit_approval_required', required
  - `policy_version` string, required
  - `organize_id` integer, required
  - `subject` ThesisReadSubjectOut, required
    - `subject_type` 'company_thesis' | 'investment_theme', required
    - `subject_key` string, required
    - `label` string, required
    - `narrative` string, required
    - `version_number` integer, required
    - `updated_at` string, date-time, required
    - `is_active` boolean, required
    - `workspace_path` string, required
  - `generated_at` string, date-time, required
  - `exact_transcript` string, required
  - `organized_narrative` string, required
  - `is_paraphrase` boolean, required
  - `supporting_quotes` string[], required
  - `unresolved` ThesisRevisionOrganizeUnresolvedOut[], required
    - `unresolved_id` string, required
    - `question` string, required
  - `model` string, required
  - `allowance_statement` string, required
  - `calls_used_today` integer, required
  - `daily_limit` integer, required
  - `cached` boolean, required

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