---
title: "Propose Challenge"
method: POST
path: "/challenges/proposals"
tags: ["challenges"]
---

# Propose Challenge

`POST /challenges/proposals`

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

Return a model-free exact-input/cost review without reserving anything.

## Request body

- ThesisChallengeProposalIn
  - `subject_type` 'company_thesis' | 'investment_theme', required
  - `subject_version` integer, required
  - `watchlist_id` integer, nullable
  - `ticker` string, nullable
  - `shared_thesis_id` integer, nullable
  - `schema_version` 'thesis-challenge-proposal-v1', required
  - `idempotency_key` string, uuid, required
  - `operation` 'propose_challenge', required
  - `confirmation_policy` 'explicit_approval_required', required
  - `requested_window` 'retained_evidence_90_days', required
  - `result_limit` 3, required

## Response `200`

Successful Response

- ThesisChallengeProposalOut
  - `schema_version` 'thesis-challenge-proposal-v1', required
  - `idempotency_key` string, uuid, required
  - `operation` 'propose_challenge', required
  - `confirmation_policy` 'explicit_approval_required', required
  - `requested_window` 'retained_evidence_90_days', required
  - `result_limit` 3, required
  - `proposal_status` 'confirmation_available' | 'subject_inactive' | 'pricing_unavailable' | 'insufficient_evidence' | 'allowance_exhausted', required
  - `approval_available` boolean, 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
  - `evidence_window_start` string, date-time, required
  - `evidence_window_end` string, date-time, required
  - `candidate_count` integer, required
  - `evidence` ThesisChallengeEvidenceOut[], required
    - `record_key` string, required
    - `record_type` 'alert' | 'theme_finding', required
    - `title` string, required
    - `excerpt` string, required
    - `source` string, required
    - `source_url` string, required
    - `observed_at` string, date-time, required
    - `ticker` string, nullable
    - `relationship` string, nullable
    - `materiality` string, required
  - `evidence_fingerprint` string, nullable
  - `allowance` ThesisChallengeAllowanceOut, required
    - `action` 'challenge'
    - `unit` 'challenge'
    - `daily_limit` integer, nullable, required
    - `used_today` integer, required
    - `remaining_today` integer, nullable, required
    - `monthly_limit` integer, nullable, required
    - `used_month` integer, required
    - `remaining_month` integer, nullable, required
    - `resets_at` string, date-time, required
    - `daily_resets_at` string, date-time, required
    - `admin_bypass` boolean, required
  - `reserved_cost_usd` string, nullable
  - `pricing_source` string, nullable
  - `usage_reserved` false
  - `model_calls_started` 0
  - `thesis_changed` false
  - `relationships_changed` false
  - `recovery_path` 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)
