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

# Send message

> Send a message to Mavio AI and receive a response with citations.

Sends a user message to an AI conversation and returns the AI's response, including citations to specific meetings and transcript timestamps.

<ParamField path="conversation_id" type="string" required>
  The ID of the conversation to send the message to.
</ParamField>

<ParamField body="content" type="string" required>
  The user's question or message in natural language.
</ParamField>

<ParamField body="search_all_meetings" type="boolean" default="false">
  When `true`, Mavio AI searches across all accessible meetings regardless of conversation scope. When `false`, searches are limited to the conversation's scoped meeting (if any).
</ParamField>

### Response

<ResponseField name="id" type="string">
  Unique message identifier.
</ResponseField>

<ResponseField name="role" type="string">
  Always `assistant` for the response message.
</ResponseField>

<ResponseField name="content" type="string">
  The AI's response text in markdown format.
</ResponseField>

<ResponseField name="citations" type="array">
  Array of citations grounding the response.

  <Expandable title="Citation object">
    <ResponseField name="meeting_id" type="string">
      The meeting the citation references.
    </ResponseField>

    <ResponseField name="meeting_title" type="string">
      Title of the cited meeting.
    </ResponseField>

    <ResponseField name="timestamp" type="string">
      Timestamp in the meeting (e.g., `00:14:32`).
    </ResponseField>

    <ResponseField name="speaker" type="string | null">
      The speaker name at this moment, if identified.
    </ResponseField>

    <ResponseField name="text" type="string">
      The relevant transcript segment.
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="credits_used" type="integer">
  Number of AI credits consumed by this query.
</ResponseField>

<ResponseField name="created_at" type="string">
  ISO 8601 timestamp.
</ResponseField>

<RequestExample>
  ```bash cURL theme={null}
  curl -X POST https://api.mavioapp.com/v1/ai/conversations/conv_f6g7h8i9j0/messages \
    -H "Authorization: Bearer mvo_live_abc123" \
    -H "Content-Type: application/json" \
    -d '{
      "content": "What did the team decide about the launch date?",
      "search_all_meetings": false
    }'
  ```

  ```python Python theme={null}
  response = client.ai.send_message(
      conversation_id="conv_f6g7h8i9j0",
      content="What did the team decide about the launch date?",
      search_all_meetings=False
  )
  ```

  ```javascript Node.js theme={null}
  const response = await client.ai.sendMessage('conv_f6g7h8i9j0', {
    content: 'What did the team decide about the launch date?',
    search_all_meetings: false,
  });
  ```
</RequestExample>

<ResponseExample>
  ```json 200 theme={null}
  {
    "id": "msg_k1l2m3n4o5",
    "role": "assistant",
    "content": "The team decided to push the launch date to **May 15, 2026**. Sarah proposed the delay due to incomplete QA testing, and the team agreed unanimously during the discussion at the 14-minute mark.",
    "citations": [
      {
        "meeting_id": "mtg_8f3k2j1m4n5p",
        "meeting_title": "Weekly Product Sync",
        "timestamp": "00:14:32",
        "speaker": "Sarah Chen",
        "text": "I think we need to push the launch to May 15th. QA hasn't finished the regression suite and I don't want to ship with known gaps."
      },
      {
        "meeting_id": "mtg_8f3k2j1m4n5p",
        "meeting_title": "Weekly Product Sync",
        "timestamp": "00:15:10",
        "speaker": "James Park",
        "text": "Agreed. Let's lock in May 15th and communicate the updated timeline to stakeholders today."
      }
    ],
    "credits_used": 1,
    "created_at": "2026-04-14T11:21:05Z"
  }
  ```
</ResponseExample>

<Note>
  Each message consumes 1 AI credit. The response may take 2-8 seconds depending on the complexity of the question and the amount of meeting data to search.
</Note>
