---
title: "Create conversation"
method: POST
path: "/conversations"
tags: ["Conversations"]
---

# Create conversation

`POST /conversations`

## Request

- Base URL: `https://api.weav.com/v1`
- URL: `https://api.weav.com/v1/conversations`
- Auth: HTTP bearer

Create a new conversation. Assignment Rules: assignees must belong to the same workspace as the API key. Chat conversations can be assigned to users (or left unassigned). Agent assignment is limited to the conversation's original chat agent. Email conversations can be assigned to users, left unassigned, or assigned only to the workspace's active email agent.

## Request body

- object
  - `channel` 'email' | 'chat', required: Conversation channel type
  - `customer_id` string, uuid, required: ID of the customer
  - `subject` string, nullable
  - `status` 'open' | 'closed', nullable: Conversation status
  - `priority` 'low' | 'normal' | 'high' | 'urgent', nullable: Conversation priority
  - `assignee_id` string, uuid, nullable: ID of user or agent to assign conversation to. Must belong to the same workspace. For chat, agent assignments are limited to the conversation's original chat agent. For email, only the active email agent can be assigned as agent.
  - `assignee_type` 'user' | 'agent', nullable: Type of assignee. Defaults to 'user' when assignee_id is provided and assignee_type is omitted.

## Response `201`

Conversation created successfully

- Conversation
  - `id` string, uuid
  - `channel` 'email' | 'chat'
  - `customer_id` string, uuid
  - `subject` string, nullable
  - `status` 'open' | 'closed'
  - `priority` 'low' | 'normal' | 'high' | 'urgent'
  - `assignee_id` string, uuid, nullable: ID of the assigned user or agent. Assignees must belong to the same workspace. Chat conversations can only use the original chat agent when assigning an agent. Email conversations can only use the active email agent when assigning an agent.
  - `assignee_type` 'user' | 'agent', nullable: Type of assignee: 'user' for users or 'agent' for AI agents.
  - `closed_at` string, date-time, nullable
  - `first_response_at` string, date-time, nullable
  - `last_message_at` string, date-time, nullable
  - `is_spam` boolean
  - `spam_score` number, nullable
  - `created_at` string, date-time, nullable
  - `updated_at` string, date-time, nullable

## Other responses

- `400`: Validation error
- `401`: Unauthorized

---

[API](https://skmtc.dev/weav/apis/weav-api.md) · [All operations](https://skmtc.dev/weav/apis/weav-api/llms.txt) · [OpenAPI document](https://skmtc.dev/weav/apis/weav-api/revisions/15970f126c0e?raw)
