---
title: "Create Thread"
method: POST
path: "/v1/omni-ai/threads"
tags: ["Omni AI"]
---

# Create Thread

`POST /v1/omni-ai/threads`

Create a new conversation thread.

Atomically creates a new thread and submits the first user turn. The
response contains a `response_id` that should be polled via
`GET /omni-ai/responses/{response_id}` for assistant output.

Two creation modes are supported:
- **instant** — provide `text` with a natural-language prompt.
- **deep_insights** — provide a `target` ticker and optional `thesis`
  for long-form research.

## Request body

- CreateThreadRequest — Create-thread request body.
  - `account_id` integer, required
  - `capabilities` Capability[]
  - `target` DeepInsightsTarget — Deep-insights target payload.
    - `ticker` string, required
    - `type` 'ticker', required — Deep-insights target type. Launch supports ticker-only.
  - `text` string, nullable
  - `thesis` string, nullable
  - `type` 'instant' | 'deep_insights', required — Thread creation mode.

## Response `200`

Thread created. Poll the returned `response_id` for assistant output.

- object
  - `error` ApiError — A direct mapping of tonic::Status, for use in HTTP responses.
    - `code` integer, required — The error code is used to identify the nature of the error. It corresponds to an HTTP status code.
    - `details` object[]
    - `message` string, required — A human-readable message providing more details about the error.
  - `metadata` ResponseMetadata, required — Metadata for the response. This will always contain a request ID which can be used to identify the request to Clear Street for tracing, and optionally may include pagination data.
    - `next_page_token` string, byte, nullable — Base64URL-encoded pagination token
    - `page_number` integer, nullable — Pagination. Included if this was a GET (list) response
    - `previous_page_token` string, byte, nullable — Base64URL-encoded pagination token
    - `request_id` string, required — A unique ID for this request, generated upon ingestion of the request.
    - `total_items` integer, nullable — Total number of items available (not just in this page).
    - `total_pages` integer, nullable — Total number of pages available.
  - `data` CreateThreadResponse, required — Response payload for thread creation.
    - `response_id` string, uuid, required
    - `thread_id` string, uuid, required
    - `user_message_id` string, uuid, required

## Other responses

- `400` — Invalid request (missing required fields or invalid mode)
- `422` — Malformed request payload
- `500` — Internal server error

---

[API](https://skmtc.net/clear-street/apis/clear-street-trading-api.md) · [All operations](https://skmtc.net/clear-street/apis/clear-street-trading-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/clear-street/clear-street-trading-api/revisions/80e6fb2644e0/schema)
