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

# List requests

> The request log, newest first: one row per chat turn, workflow run or experiment item, with who asked, what ran, what it cost, how long it took, the user's vote and any scores. Filters are ANDed. Scorer runs are left out unless `kind=score`; each row reports them under `scoring`. The window defaults to the last 30 days; `limit` goes up to 1000 for exports.



## OpenAPI

````yaml /api-reference/openapi.json get /v1/requests
openapi: 3.1.0
info:
  title: Sidenet API
  version: 1.0.0
  description: >-
    Sidenet HTTP endpoints exposed by the Sidenet Studio. All routes require an
    api key that can be generated through the studio in studio.sidenet.ai.
servers:
  - url: https://api.sidenet.ai
security:
  - bearerAuth: []
paths:
  /v1/requests:
    get:
      tags:
        - Observability
      summary: List requests
      description: >-
        The request log, newest first: one row per chat turn, workflow run or
        experiment item, with who asked, what ran, what it cost, how long it
        took, the user's vote and any scores. Filters are ANDed. Scorer runs are
        left out unless `kind=score`; each row reports them under `scoring`. The
        window defaults to the last 30 days; `limit` goes up to 1000 for
        exports.
      parameters:
        - name: from
          in: query
          required: false
          schema:
            type: string
            format: date-time
            example: '2026-10-01T00:00:00Z'
          description: 'Start of the window (inclusive). Default: 30 days before `to`.'
        - name: to
          in: query
          required: false
          schema:
            type: string
            format: date-time
            example: '2026-11-01T00:00:00Z'
          description: 'End of the window (exclusive). Default: now.'
        - name: kind
          in: query
          required: false
          schema:
            type: string
            enum:
              - chat
              - workflow
              - experiment
              - score
          description: Only this kind of request.
        - name: status
          in: query
          required: false
          schema:
            type: string
            enum:
              - success
              - error
          description: Only requests that failed, or only those that did not.
        - name: environment
          in: query
          required: false
          schema:
            type: string
            example: prod,staging
          description: Comma-separated environments.
        - name: group_id
          in: query
          required: false
          schema:
            type: string
            example: grp_84f20c19
          description: Comma-separated billing group ids (your stable ids).
        - name: agent_id
          in: query
          required: false
          schema:
            type: string
            example: 6f1c0f4e-2b7a-4a51-9a2f-0c9d1b3e5a10
          description: Comma-separated agent ids; every version of the agent matches.
        - name: agent_version_id
          in: query
          required: false
          schema:
            type: string
            example: b3f7a2c8-5d19-4e6b-8f02-1a4c9e7d3b55
          description: One agent version.
        - name: workflow_id
          in: query
          required: false
          schema:
            type: string
            example: 4c2f9e18-7a63-4d05-b1e8-93a7c0f2d641
          description: Comma-separated workflow ids; every version matches.
        - name: workflow_version_id
          in: query
          required: false
          schema:
            type: string
            example: e81b4a72-0c95-4f38-a6d2-5b17e9c4038f
          description: One workflow version.
        - name: copilot_id
          in: query
          required: false
          schema:
            type: string
            example: cccccccc-0000-4000-8000-000000000001
          description: Comma-separated copilot ids.
        - name: experiment_id
          in: query
          required: false
          schema:
            type: string
            example: exp_7f31a9c2
          description: The items of one experiment.
        - name: model
          in: query
          required: false
          schema:
            type: string
            example: openai/gpt-4o
          description: Comma-separated served models.
        - name: source
          in: query
          required: false
          schema:
            type: string
            example: SDK-v2
          description: Comma-separated sources.
        - name: user_id
          in: query
          required: false
          schema:
            type: string
            example: user_4821
          description: Comma-separated end user ids (your ids for them).
        - name: thread_id
          in: query
          required: false
          schema:
            type: string
            example: thread_2f81c04a
          description: One conversation.
        - name: search
          in: query
          required: false
          schema:
            type: string
            example: 8f2c1d4e6a7b4c9d
          description: >-
            A request id, message id or trace id, or a prefix of a request or
            message id.
        - name: order
          in: query
          required: false
          schema:
            type: string
            enum:
              - desc
              - asc
            default: desc
          description: By start time.
        - name: page
          in: query
          required: false
          schema:
            type: integer
            minimum: 0
            default: 0
          description: 0-based page.
        - name: limit
          in: query
          required: false
          schema:
            type: integer
            default: 50
            maximum: 1000
      responses:
        '200':
          description: The requests
          content:
            application/json:
              schema:
                type: object
                properties:
                  requests:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                          description: >-
                            The request id: one per inbound request or run,
                            shared by everything it did.
                        kind:
                          type: string
                          enum:
                            - chat
                            - workflow
                            - experiment
                            - score
                          description: >-
                            What ran: a chat turn, a workflow run, an experiment
                            item, or a scorer run.
                        status:
                          type: string
                          enum:
                            - success
                            - error
                        error:
                          type: object
                          nullable: true
                          description: >-
                            The error that ended the turn or run, when it
                            failed.
                        started_at:
                          type: string
                          format: date-time
                        ended_at:
                          type: string
                          format: date-time
                          nullable: true
                        latency_ms:
                          type: integer
                          nullable: true
                          description: Start to end of the turn or run.
                        environment:
                          type: string
                          nullable: true
                          description: >-
                            `dev`, `staging` or `prod` for chat; `production` or
                            `preview` for workflow runs; `experiment` for
                            experiment items.
                        source:
                          type: string
                          nullable: true
                          description: >-
                            What the client declared (`X-Source`), or the run
                            trigger for workflows.
                        group:
                          type: object
                          properties:
                            id:
                              type: string
                              nullable: true
                              description: >-
                                Your id for the billing group (null for groups
                                created before stable ids existed).
                            name:
                              type: string
                              nullable: true
                          nullable: true
                          description: The billing group the request was attributed to.
                        user_id:
                          type: string
                          nullable: true
                          description: >-
                            The end user the request ran for (your id for them,
                            as sent on the session mint or `X-User-Id`).
                        thread_id:
                          type: string
                          nullable: true
                        message_id:
                          type: string
                          nullable: true
                          description: The assistant message this turn produced.
                        prompt:
                          type: object
                          properties:
                            message_id:
                              type: string
                              description: The user message that started the turn.
                            text:
                              type: string
                              description: >-
                                Its text. The list clips it to 1 000 characters;
                                `GET /v1/requests/{id}` returns it whole.
                            truncated:
                              type: boolean
                              description: True when `text` was clipped.
                          nullable: true
                          description: >-
                            What the user asked: the user message saved just
                            before the assistant message in its thread. Null for
                            runs, experiment items and turns whose user message
                            is not in the thread.
                        trace_ids:
                          type: array
                          items:
                            type: string
                          description: >-
                            The traces the request produced (a routed chat turn
                            has two: the classifier and the answer).
                        agent:
                          type: object
                          properties:
                            id:
                              type: string
                            name:
                              type: string
                              nullable: true
                            version_id:
                              type: string
                            version:
                              type: integer
                              nullable: true
                          nullable: true
                          description: The agent version that answered, when one did.
                        workflow:
                          type: object
                          properties:
                            id:
                              type: string
                            name:
                              type: string
                              nullable: true
                            version_id:
                              type: string
                            version:
                              type: integer
                              nullable: true
                          nullable: true
                          description: The workflow version that ran, when one did.
                        copilot:
                          type: object
                          properties:
                            id:
                              type: string
                            environment:
                              type: string
                              nullable: true
                            network:
                              type: object
                              properties:
                                id:
                                  type: string
                                name:
                                  type: string
                                  nullable: true
                              nullable: true
                          nullable: true
                          description: >-
                            The copilot the request came through, for routed
                            chat.
                        experiment_id:
                          type: string
                          nullable: true
                        target:
                          type: string
                          nullable: true
                          description: >-
                            For built-in targets without a version:
                            `Clarification`, `Dashboard`, `Score: <scorerId>`.
                        model:
                          type: string
                          nullable: true
                          description: >-
                            The model that actually served the main answer
                            (after any routing policy).
                        model_profile:
                          type: string
                          nullable: true
                          description: >-
                            The model profile the copilot's model classifier
                            chose for the turn (`default` included), which is
                            what put the turn on `model` when it differs from
                            the agent's own. Null when no classifier ran.
                        cost:
                          type: number
                          nullable: true
                          description: >-
                            USD spend of the request, every participant
                            included.
                        usage:
                          type: object
                          properties:
                            input_tokens:
                              type: number
                              nullable: true
                            output_tokens:
                              type: number
                              nullable: true
                            total_tokens:
                              type: number
                              nullable: true
                          nullable: true
                        cost_breakdown:
                          type: object
                          description: >-
                            Per participant (`main`, `handoff-agent`,
                            `followup-agent`, `step:<stepId>`…): `{ cost, usage,
                            model }`.
                          additionalProperties: true
                        participants:
                          type: array
                          nullable: true
                          items:
                            type: object
                            additionalProperties: true
                          description: >-
                            The agents and tools that ran, each with a success
                            flag.
                        feedback:
                          type: object
                          properties:
                            rating:
                              type: number
                              nullable: true
                            comment:
                              type: string
                              nullable: true
                          nullable: true
                          description: The user's vote on the answer, when they gave one.
                        scores:
                          type: array
                          items:
                            type: object
                            properties:
                              id:
                                type: string
                              scorer_id:
                                type: string
                              name:
                                type: string
                                nullable: true
                              score:
                                type: number
                          description: The scores recorded on the request's traces.
                        scoring:
                          type: object
                          properties:
                            runs:
                              type: integer
                            cost:
                              type: number
                          description: >-
                            The scorer runs that scored this request and what
                            they cost.
                  pagination:
                    type: object
                    properties:
                      total:
                        type: integer
                      page:
                        type: integer
                      limit:
                        type: integer
                      hasMore:
                        type: boolean
              example:
                requests:
                  - id: 8f2c1d4e6a7b4c9d
                    kind: chat
                    status: success
                    error: null
                    started_at: '2026-10-27T10:00:00.000Z'
                    ended_at: '2026-10-27T10:00:04.210Z'
                    latency_ms: 4210
                    environment: prod
                    source: SDK-v2
                    group:
                      id: grp_84f20c19
                      name: Acme
                    user_id: user_4821
                    thread_id: thread_2f81c04a
                    message_id: msg_9c41b0e7
                    prompt:
                      message_id: 3b9e1c7a-5d2f-4e8b-9a6c-1f0d2e3a4b5c
                      text: Where is my order 4821?
                      truncated: false
                    trace_ids:
                      - 0af7651916cd43dd8448eb211c80319c
                      - 5c1e9a2b7d3f4e6a8b9c0d1e2f3a4b5c
                    agent:
                      id: 6f1c0f4e-2b7a-4a51-9a2f-0c9d1b3e5a10
                      name: Support
                      version_id: b3f7a2c8-5d19-4e6b-8f02-1a4c9e7d3b55
                      version: 4
                    workflow: null
                    copilot:
                      id: cccccccc-0000-4000-8000-000000000001
                      environment: prod
                      network:
                        id: '12'
                        name: Acme network
                    experiment_id: null
                    target: null
                    model: openai/gpt-4o
                    model_profile: default
                    cost: 0.0123
                    usage:
                      input_tokens: 1210
                      output_tokens: 188
                      total_tokens: 1398
                    cost_breakdown:
                      main:
                        cost: 0.0118
                        usage:
                          inputTokens: 1180
                          outputTokens: 184
                        model: openai/gpt-4o
                      handoff-agent:
                        cost: 0.0005
                        usage:
                          inputTokens: 30
                          outputTokens: 4
                        model: openai/gpt-4o-mini
                    participants:
                      - type: agent
                        id: support-agent
                        name: Support
                      - type: tool
                        id: Acme_CRM_get_customer
                        name: Acme_CRM_get_customer
                        success: true
                    feedback:
                      rating: 1
                      comment: null
                    scores:
                      - id: f2c1a7e4-6b3d-4a95-8e10-c7d2b9f4a301
                        scorer_id: answer-relevancy
                        name: Answer Relevancy
                        score: 0.85
                    scoring:
                      runs: 1
                      cost: 0.0021
                pagination:
                  total: 1
                  page: 0
                  limit: 50
                  hasMore: false
        '400':
          description: Bad window or filter
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    description: The class of failure.
                  details:
                    type: string
                    description: What specifically went wrong.
              example:
                error: Bad request
                details: kind must be one of chat, workflow, experiment, score
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: >-
        Organization API key, generated in studio.sidenet.ai. Backend only —
        never in a browser.

````

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