---
title: "Ingest Conversation"
method: POST
path: "/api/v1/conversations"
tags: ["conversations"]
---

# Ingest Conversation

`POST /api/v1/conversations`

Ingest a multi-turn conversation. The conversation is stored as a single source and segmented at ingestion into windows of 4 turns; each window is extracted independently with the prior window as lookback context for pronoun resolution.

## Request body

- IngestConversationRequest
  - `space_id` string, uuid, required
  - `messages` ConversationMessage[], required
    - `role` string, required
    - `content` string, required
  - `session_id` string
  - `session_date` string
  - `visibility` 'private' | 'org'
  - `meta` object, nullable

## Response `202`

Accepted — job enqueued

- IngestConversationResponse
  - `job_id` string, uuid, required
  - `status` 'pending', required
  - `source_id` string, uuid, required

## Other responses

- `400` — Bad request
- `401` — Unauthorized
- `404` — Not found
- `429` — Rate limited / quota / pending cap
- `503` — Queue full

---

[API](https://skmtc.net/crosmos/apis/crosmos-api.md) · [All operations](https://skmtc.net/crosmos/apis/crosmos-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/crosmos/crosmos-api/versions/a828d1399648/schema)
