Conversation

List Conversations

Retrieve a paginated list of all conversations that belong to the current user.

GET /conversations
Headers:
  Authorization: $OTO_API_KEY
  OTO_USER_ID: {user_id}

Query-params (all optional):
  ?status=active|archived        // filter by conversation status
  ?updated_since=YYYY-MM-DDTHH:MM:SSZ // return only conversations updated after this ISO-8601 timestamp
  ?limit=50                      // max items to return (default 50, max 200)
  ?offset=0                      // pagination offset

Response

{
  "conversations": [
    {
      "id": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
      "title": "Daily stand-up",
      "created_at": "0000-00-00T00:00:00Z",
      "updated_at": "0000-00-00T00:00:00Z",
      "status": "active",          // "active" | "archived"
      "last_transcript_preview": "Yesterday we decided to …"
    }
  ]
}

Get Conversation Audio URL

Returns the signed, time-limited URL where the raw audio for the conversation can be downloaded or streamed.

GET /conversation/{conversation_id}/audio_url
Headers:
  Authorization: $OTO_API_KEY
  OTO_USER_ID: {user_id}

Response

{
  "conversation_id": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
  "audio_url": "https://storage....../audio/XXXXXXXX-XXXX-…"
}

Get Full Transcript

Fetch the complete, finalized transcript as plain text or in an alternate format (e.g. SRT).

GET /conversation/{conversation_id}/transcript
Headers:
  Authorization: $OTO_API_KEY
  OTO_USER_ID: {user_id}

Query-params (optional):
  ?format=plain|srt|vtt   // default "plain"

Response

{
  "conversation_id": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
  "format": "plain",
  "transcript": "Hi Bob, let's meet at eight o'clock …"
}

Get Conversation Summary Logs

Return a time-ordered list of high-level conversation “logs”—useful when you want a quick overview without scanning the entire transcript.

GET /conversation/{conversation_id}/logs
Headers:
  Authorization: $OTO_API_KEY
  OTO_USER_ID: {user_id}

Query-params (optional):
  ?limit=100   // number of log items to return (default 100, max 1000)
  ?offset=0

Response

{
  "conversation_id": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
  "logs": [
    {
      "start": 0,
      "end": 3500,
      "speaker": "user",
      "summary": "User greeted and described the agenda.",
      "transcript_excerpt": "Hi everyone, first I'd like to …"
    },
    {
      "start": 3500,
      "end": 7200,
      "speaker": "assistant",
      "summary": "Assistant confirmed meeting time and suggested next steps.",
      "transcript_excerpt": "Sure, let's lock the meeting for 8 PM and I'll send …"
    }
  ]
}

Last updated