---
title: "Create Conversation"
method: POST
path: "/v1/dev/user/conversations"
tags: ["Conversations"]
---

# Create Conversation

`POST /v1/dev/user/conversations`

Create a new conversation from text for the authenticated user.

This endpoint processes the provided text through the full conversation pipeline:
- Generates structured data (title, overview, category, emoji)
- Extracts action items (with deduplication)
- Extracts memories (with quality filtering)
- Determines if conversation should be discarded
- Triggers app integrations
- Triggers webhooks

**Request Parameters:**
- **text**: The conversation text/transcript (1-100,000 characters)
- **text_source**: Source type - audio_transcript, message, or other_text (default: other_text)
- **text_source_spec**: Additional source info (e.g., 'email', 'slack')
- **started_at**: When conversation started (defaults to now)
- **finished_at**: When conversation finished (defaults to started_at + 5 minutes)
- **language**: Language code (default: 'en')
- **geolocation**: Optional geolocation data

**Response:**
- Returns the created conversation ID and status
- Use GET /v1/dev/user/conversations/{id} to retrieve full details

## Request body

- CreateConversationRequest
  - `finished_at` string, date-time, nullable — When the conversation finished (defaults to started_at + 5 minutes)
  - `geolocation` Geolocation
    - `address` string, nullable
    - `google_place_id` string, nullable
    - `latitude` number, required
    - `location_type` string, nullable
    - `longitude` number, required
  - `language` string, nullable — Language code (ISO 639-1, e.g., 'en', 'es', 'fr')
  - `started_at` string, date-time, nullable — When the conversation started (defaults to now)
  - `text` string, required — The conversation text/transcript
  - `text_source` 'audio_transcript' | 'message' | 'other_text'
  - `text_source_spec` string, nullable — Additional source specification (e.g., 'email', 'slack', 'whatsapp')

## Response `200`

Successful Response

- ConversationCreateResponse
  - `discarded` boolean, required
  - `id` string, required
  - `status` string, required

## Other responses

- `401` — Missing or invalid authentication credentials.
- `403` — Authenticated, but the token does not grant the required scope.
- `422` — Validation Error

## Changes

- **2026-06-30** `fbfe4956e141` — 2 warning
  - removed the optional property `detail/items/ctx` from the response with the `422` status
  - removed the optional property `detail/items/input` from the response with the `422` status
- **2026-06-30** `c2ab717efdbc` — 2 info
  - added the optional property `detail/items/ctx` to the response with the `422` status
  - added the optional property `detail/items/input` to the response with the `422` status
- **2026-06-30** `fbfe4956e141` — 2 warning
  - removed the optional property `detail/items/ctx` from the response with the `422` status
  - removed the optional property `detail/items/input` from the response with the `422` status
- **2026-06-30** `c2ab717efdbc` — 2 info
  - added the optional property `detail/items/ctx` to the response with the `422` status
  - added the optional property `detail/items/input` to the response with the `422` status
- **2026-06-30** `fbfe4956e141` — 2 warning
  - removed the optional property `detail/items/ctx` from the response with the `422` status
  - removed the optional property `detail/items/input` from the response with the `422` status

[Full history](https://skmtc.dev/basedhardware/apis/omi-developer-api/changes/v1/dev/user/conversations/post.md)

---

[API](https://skmtc.dev/basedhardware/apis/omi-developer-api.md) · [All operations](https://skmtc.dev/basedhardware/apis/omi-developer-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/basedhardware/omi-developer-api/revisions/fbfe4956e141/schema)
