---
title: "List optimization runs"
method: GET
path: "/solutions/runs"
tags: ["Solution Runs"]
---

# List optimization runs

`GET /solutions/runs`

## Request

- Base URL: `https://app.freyavoice.ai/api/v2`
- URL: `https://app.freyavoice.ai/api/v2/solutions/runs`
- Auth: HTTP bearer

Returns optimization runs for a workspace with pagination, sorting, and filtering.

## Query parameters

- `workspaceId` string, uuid, required: Workspace ID
- `limit` string: Maximum number of runs to return
- `offset` string: Number of runs to skip for pagination
- `sortBy` 'createdAt' | 'status' | 'problemCount' | 'solutionCount': Field to sort by
- `sortOrder` 'asc' | 'desc': Sort direction
- `search` string: Search term to filter runs
- `filters` string: Base64-encoded filter state for DataTable

## Response `200`

Optimization runs with pagination

- object
  - `success` true, required
  - `data` object, required
    - `message` string, required
    - `result` object, required
      - `runs` object[], required
        - `id` string, uuid, required
        - `workspaceId` string, uuid, required
        - `agentId` string, required
        - `status` 'generating' | 'pending_review' | 'completed' | 'failed', required
        - `problemCount` number, required
        - `solutionCount` number, required
        - `acceptedCount` number, required
        - `rejectedCount` number, required
        - `error` string, nullable
        - `createdAt` string, required
        - `completedAt` string, nullable
        - `solutions` object[]
          - `id` string, uuid, required
          - `runId` string, uuid, required
          - `title` string, required
          - `change` object, required
            - `path` string, required
            - `operation` 'set' | 'text_diff', required
            - `oldValue` unknown
            - `newValue` unknown
            - `diff` string
          - `explanation` string, required
          - `status` 'pending' | 'accepted' | 'rejected', required
          - `reviewedAt` string, nullable
          - `displayOrder` number, required
          - `createdAt` string, required
          - `problemIds` string[]
          - `problems` object[]
            - `id` string
            - `workspaceId` string, nullable
            - `callId` string, nullable
            - `agentId` string, nullable
            - `problem` string, required
            - `description` string, nullable
            - `type` 'system' | 'audio' | 'transcription' | 'decision' | 'general' | 'null', nullable
            - `severity` number
            - `status` string
            - `assignedTo` string, nullable
            - `createdBy` string
            - `messageId` string, nullable
            - `resolved` boolean
            - `resolvedAt` string, nullable
            - `resolvedBy` string, nullable
            - `solutionId` string, uuid, nullable
            - `createdAt` string
            - `updatedAt` string
            - `callStartedAt` string, nullable
            - `customerNumber` string, nullable
            - `agentName` string, nullable
            - `resolvedByName` string, nullable
            - `assignees` object[]
              - …
            - `commentsCount` number
            - `isArchived` boolean
          - `patchDecisions` object, nullable
        - `agentName` string, nullable
      - `pagination` object, required
        - `total` number, required
        - `limit` number, required
        - `offset` number, required
      - `summary` object, required
        - `total` number, required
        - `generating` number, required
        - `pendingReview` number, required
        - `completed` number, required
        - `failed` number, required

## Other responses

- `400`: Validation error
- `401`: Missing or invalid token
- `500`: Server error

---

[API](https://skmtc.dev/freyavoice/apis/freyavoice-api.md) - [All operations](https://skmtc.dev/freyavoice/apis/freyavoice-api/llms.txt) - [OpenAPI document](https://skmtc.dev/freyavoice/apis/freyavoice-api/revisions/153d120f0c73?raw)
