> ## Documentation Index
> Fetch the complete documentation index at: https://docs.omi.me/llms.txt
> Use this file to discover all available pages before exploring further.

# Create Conversation

> 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



## OpenAPI

````yaml /api-reference/openapi.json post /v1/dev/user/conversations
openapi: 3.1.0
info:
  contact:
    name: Omi
    url: https://omi.me/
  description: >-
    Programmatic access to your Omi data - memories, conversations, action
    items, goals, folders, and API keys. Build custom integrations, analytics
    dashboards, and automation workflows.
  license:
    name: MIT
    url: https://github.com/BasedHardware/omi/blob/main/LICENSE
  title: Omi Developer API
  version: 1.0.0
servers:
  - description: Production
    url: https://api.omi.me
security: []
tags:
  - description: Read and write user memories - timeless facts, preferences, and insights.
    name: Memories
  - description: Create and retrieve conversation transcripts with AI-generated summaries.
    name: Conversations
  - description: Retrieve user-defined folders for organizing conversations.
    name: Folders
  - description: Manage tasks and to-dos extracted from conversations or created manually.
    name: Action Items
  - description: Manage user goals and progress history.
    name: Goals
  - description: Create, list, and revoke developer API keys.
    name: API Keys
paths:
  /v1/dev/user/conversations:
    post:
      tags:
        - Conversations
      summary: Create Conversation
      description: >-
        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
      operationId: createConversation
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateConversationRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConversationCreateResponse'
          description: Successful Response
        '401':
          $ref: '#/components/responses/Error401'
        '403':
          $ref: '#/components/responses/Error403'
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      security:
        - developerApiKey: []
components:
  schemas:
    CreateConversationRequest:
      properties:
        finished_at:
          anyOf:
            - format: date-time
              type: string
            - type: 'null'
          description: When the conversation finished (defaults to started_at + 5 minutes)
          title: Finished At
        geolocation:
          anyOf:
            - $ref: '#/components/schemas/Geolocation'
            - type: 'null'
          description: Geolocation where conversation occurred
        language:
          anyOf:
            - type: string
            - type: 'null'
          default: en
          description: Language code (ISO 639-1, e.g., 'en', 'es', 'fr')
          title: Language
        started_at:
          anyOf:
            - format: date-time
              type: string
            - type: 'null'
          description: When the conversation started (defaults to now)
          title: Started At
        text:
          description: The conversation text/transcript
          maxLength: 100000
          minLength: 1
          title: Text
          type: string
        text_source:
          $ref: '#/components/schemas/ExternalIntegrationConversationSource'
          default: other_text
          description: 'Source type: audio_transcript, message, or other_text'
        text_source_spec:
          anyOf:
            - type: string
            - type: 'null'
          description: Additional source specification (e.g., 'email', 'slack', 'whatsapp')
          title: Text Source Spec
      required:
        - text
      title: CreateConversationRequest
      type: object
    ConversationCreateResponse:
      properties:
        discarded:
          title: Discarded
          type: boolean
        id:
          title: Id
          type: string
        status:
          title: Status
          type: string
      required:
        - id
        - status
        - discarded
      title: ConversationCreateResponse
      type: object
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          title: Detail
          type: array
      title: HTTPValidationError
      type: object
    Geolocation:
      properties:
        address:
          anyOf:
            - type: string
            - type: 'null'
          title: Address
        google_place_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Google Place Id
        latitude:
          title: Latitude
          type: number
        location_type:
          anyOf:
            - type: string
            - type: 'null'
          title: Location Type
        longitude:
          title: Longitude
          type: number
      required:
        - latitude
        - longitude
      title: Geolocation
      type: object
    ExternalIntegrationConversationSource:
      enum:
        - audio_transcript
        - message
        - other_text
      title: ExternalIntegrationConversationSource
      type: string
    ErrorResponse:
      properties:
        detail:
          anyOf:
            - type: string
            - type: array
            - type: object
          description: Error detail returned by the API.
      required:
        - detail
      title: ErrorResponse
      type: object
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          title: Location
          type: array
        msg:
          title: Message
          type: string
        type:
          title: Error Type
          type: string
      required:
        - loc
        - msg
        - type
      title: ValidationError
      type: object
  responses:
    Error401:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
      description: Missing or invalid authentication credentials.
    Error403:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
      description: Authenticated, but the token does not grant the required scope.
  securitySchemes:
    developerApiKey:
      bearerFormat: Omi Developer API key
      description: 'Send `Authorization: Bearer <omi_developer_api_key>`.'
      scheme: bearer
      type: http

````