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

# List conversations

> Threads and sessions with activity in the window, newest activity first, keyset paged with `after` = the previous page's `next_cursor`.



## OpenAPI

````yaml /api-reference/openapi.json get /v1/observability/conversations
openapi: 3.1.0
info:
  title: Veri API
  description: >-
    REST API for the Veri RL post-training platform. All requests require a
    Bearer API key (`vk_` prefix).
  license:
    name: ''
  version: 0.1.0
servers:
  - url: https://api.veri.studio
    description: Production
security: []
tags:
  - name: Training jobs
    description: Create, monitor, and manage training jobs.
  - name: Datasets
    description: Upload and connect training datasets.
  - name: Deployments
    description: Serve trained models and run inference.
  - name: Volumes
    description: Persistent file storage mounted into jobs.
  - name: Models
    description: Custom model registry deployments serve from.
  - name: Regions
    description: Discover available launch regions.
  - name: GPU
    description: Live GPU availability by provider and region.
  - name: Code artifacts
    description: Upload custom training script bundles.
  - name: Billing
    description: Credit balance and transaction history.
  - name: API keys
    description: Create and revoke API keys.
  - name: Account
    description: The authenticated caller's identity.
  - name: Settings
    description: Account-level integrations (Weights & Biases).
  - name: Metrics
    description: Prometheus metrics export for your own observability stack.
  - name: Evaluators
    description: 'Evaluators: versioned scoring rules (LLM judge, code, human).'
  - name: Experiments
    description: >-
      Experiments: offline runs of a pinned dataset snapshot through a target,
      scored by pinned evaluators.
  - name: Annotation queues
    description: >-
      Human review: queue traces, threads and experiment items, reserve one at a
      time, score them and feed corrections back into datasets.
  - name: Monitors
    description: >-
      Monitors: evaluators scoring a sampled share of a deployment's live
      traffic.
  - name: Observability
    description: Agent conversations, agents and their traffic.
  - name: Public runs
    description: Unauthenticated reads of runs their owners published to Explore.
paths:
  /v1/observability/conversations:
    get:
      tags:
        - Observability
      summary: List conversations
      description: >-
        Threads and sessions with activity in the window, newest activity first,
        keyset paged with `after` = the previous page's `next_cursor`.
      operationId: conversations
      parameters:
        - name: from
          in: query
          description: 'Window start (RFC 3339). Default: `to` minus 24 hours.'
          required: false
          schema:
            type: string
            format: date-time
        - name: to
          in: query
          description: 'Window end (RFC 3339). Default: now.'
          required: false
          schema:
            type: string
            format: date-time
        - name: agent
          in: query
          description: Only this agent (its `key`).
          required: false
          schema:
            type: string
        - name: deployment_id
          in: query
          required: false
          schema:
            type: string
        - name: kind
          in: query
          description: session | thread
          required: false
          schema:
            type: string
        - name: active
          in: query
          description: Only conversations live now.
          required: false
          schema:
            type: boolean
        - name: errors_only
          in: query
          description: Only conversations with errors.
          required: false
          schema:
            type: boolean
        - name: q
          in: query
          description: Case-insensitive substring of the title, preview or thread id.
          required: false
          schema:
            type: string
        - name: limit
          in: query
          description: Page size, 1..=100 (default 50).
          required: false
          schema:
            type: integer
            format: int64
        - name: after
          in: query
          description: '`next_cursor` of the previous page.'
          required: false
          schema:
            type: string
        - name: evaluator
          in: query
          description: |-
            Score filter: only threads with an ok score of this evaluator (id or
            name; any evaluator when omitted) matching every given bound.
            Sessions never match a score filter.
          required: false
          schema:
            type: string
        - name: label
          in: query
          description: |-
            Score filter: a categorical label, or `true` / `false` for a boolean
            score.
          required: false
          schema:
            type: string
        - name: min_score
          in: query
          description: |-
            Score filter: inclusive lower bound on the numeric value (a Jev noul
            score's P(yes)).
          required: false
          schema:
            type: number
            format: double
        - name: max_score
          in: query
          description: |-
            Score filter: inclusive upper bound on the numeric value (a Jev noul
            score's P(yes)).
          required: false
          schema:
            type: number
            format: double
        - name: min_confidence
          in: query
          description: 'Score filter: inclusive lower bound on the judge''s confidence, 0..1.'
          required: false
          schema:
            type: number
            format: double
        - name: max_confidence
          in: query
          description: |-
            Score filter: inclusive upper bound on the judge's confidence, 0..1
            (the dashboard's "needs review" view uses 0.5).
          required: false
          schema:
            type: number
            format: double
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConversationList'
        '400':
          description: Bad window, filter or cursor, or observability disabled
      security:
        - bearerAuth: []
components:
  schemas:
    ConversationList:
      type: object
      required:
        - object
        - has_more
        - data
      properties:
        object:
          type: string
          description: Always "list".
        has_more:
          type: boolean
        next_cursor:
          type:
            - string
            - 'null'
          description: Pass as `after` for the next page; null on the last page.
        data:
          type: array
          items:
            $ref: '#/components/schemas/Conversation'
    Conversation:
      type: object
      required:
        - id
        - kind
        - agent
        - status
        - turns
        - llm_calls
        - tool_calls
        - tool_errors
        - errors
        - prompt_tokens
        - cached_prompt_tokens
        - completion_tokens
        - started_at
        - last_activity_at
        - span_strip
        - scores
      properties:
        id:
          type: string
          description: The session id, or `{deployment_id}:{thread_id}`.
        kind:
          type: string
          description: session | thread
        title:
          type:
            - string
            - 'null'
        preview:
          type:
            - string
            - 'null'
          description: The first user message (200 chars).
        agent:
          $ref: '#/components/schemas/AgentRef'
        deployment_id:
          type:
            - string
            - 'null'
        thread_id:
          type:
            - string
            - 'null'
        session_id:
          type:
            - string
            - 'null'
        environment_id:
          type:
            - string
            - 'null'
        status:
          type: string
          description: 'thread: active | idle. session: active | paused | ended | failed.'
        turns:
          type: integer
          format: int64
        llm_calls:
          type: integer
          format: int64
        tool_calls:
          type: integer
          format: int64
        tool_errors:
          type: integer
          format: int64
        errors:
          type: integer
          format: int64
        prompt_tokens:
          type: integer
          format: int64
        cached_prompt_tokens:
          type: integer
          format: int64
        completion_tokens:
          type: integer
          format: int64
        cost_usd:
          type:
            - number
            - 'null'
          format: double
          description: 'Sessions: charged so far. Threads: null.'
        started_at:
          type: string
          format: date-time
        last_activity_at:
          type: string
          format: date-time
        span_strip:
          type: array
          items:
            $ref: '#/components/schemas/Span'
          description: Ordered, the most recent 60.
        scores:
          $ref: '#/components/schemas/ScoreSummary'
    AgentRef:
      type: object
      description: Who a conversation belongs to.
      required:
        - key
        - name
        - kind
      properties:
        key:
          type: string
          description: |-
            `env:<environment_id>` (managed), `agent:<X-Veri-Agent>`, or
            `deployment:<deployment_id>` for threads sent without an agent name.
        name:
          type: string
        kind:
          type: string
          description: managed | external
    Span:
      type: object
      description: 'One timeline segment: a model call or the tool work between two calls.'
      required:
        - kind
        - ms
      properties:
        kind:
          type: string
          description: llm | tool
        ms:
          type: integer
          format: int64
    ScoreSummary:
      type: object
      required:
        - total
        - failed
        - evaluators
      properties:
        total:
          type: integer
          format: int64
        failed:
          type: integer
          format: int64
          description: Scores with passed = false.
        evaluators:
          type: array
          items:
            type: string
          description: Distinct evaluator names (at most 5).
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: API key
      description: API key with the `vk_` prefix. Create one from the dashboard.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.