> ## Documentation Index
> Fetch the complete documentation index at: https://omi-codex-mobile-prompt-metadata.mintlify.site/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/GeolocationInput'
            - 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
    GeolocationInput:
      description: >-
        Released wire contract for coordinates accepted at legacy API
        boundaries.


        Bounds are enforced before any value is cached, geocoded, or persisted.
        Keeping

        this transport shape broad preserves clients released before the bound
        contract

        existed, while ``Geolocation`` remains the only usable server-side
        value.
      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: GeolocationInput
      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

````