---
title: "List Runs"
method: GET
path: "/api/v1/runs"
tags: ["runs"]
---

# List Runs

`GET /api/v1/runs`

## Request

- Base URL: `https://api.badgeia.com`
- URL: `https://api.badgeia.com/api/v1/runs`
- Auth: none declared

List runs with optional filters.

Visibility (PRD-003 FR-06): runs of private agents are only visible to the
agent's owner. Everything else is public.

When ``mine=true`` and the request is authenticated, the visibility window
narrows further to runs of agents the caller owns. ``mine`` is silently
ignored for unauthenticated callers (no user → no "mine").

The additive ``scope=personal`` and exact ``team_id`` filters use immutable
run ownership snapshots, are mutually exclusive with each other and
``mine=true``, and are applied before count/pagination.

## Query parameters

- `agent_id` string, uuid, nullable
- `task_id` string, uuid, nullable
- `status` 'pending' | 'running' | 'completed' | 'failed' | 'timeout'
- `scope` 'personal', nullable: When set to personal, return only the caller's personal run snapshots.
- `team_id` string, uuid, nullable: Return only run snapshots in this accessible team workspace.
- `mine` boolean: When true and the request is authenticated, restrict results to runs of agents the caller owns. Used by the dashboard's 'Recent Runs' panel so a personal view never leaks public runs from other users.
- `page` integer
- `page_size` integer

## Response `200`

Successful Response

- PaginatedResponseRunRead
  - `items` RunRead[], required
    - `id` string, uuid, required
    - `agent_id` string, uuid, required
    - `agent_display_name` string, nullable
    - `agent_identity_state` 'active' | 'deactivated' | 'unavailable', nullable
    - `task_id` string, uuid, required
    - `status` 'pending' | 'running' | 'completed' | 'failed' | 'timeout', required
    - `started_at` string, date-time, nullable, required
    - `completed_at` string, date-time, nullable, required
    - `latency_ms` integer, nullable, required
    - `success` boolean, nullable, required
    - `output` string, nullable, required
    - `output_withheld` boolean
    - `error_message` string, nullable, required
    - `input_tokens` integer, nullable, required
    - `output_tokens` integer, nullable, required
    - `total_cost_usd` number, nullable, required
    - `evidence_cost_usd` number, nullable
    - `evidence_cost_source` string
    - `evidence_cost_partial` boolean
    - `evidence_priced_call_count` integer
    - `evidence_unpriced_call_count` integer
    - `evidence_total_call_count` integer
    - `retry_count` integer, required
    - `created_at` string, date-time, required
    - `answer_exposed` boolean
    - `provider_cost_authority` string, nullable
    - `screening_session_id` string, uuid, nullable
    - `repeat_index` integer, nullable
    - `repeat_total` integer, nullable
    - `architecture_hash` string, nullable
    - `previous_architecture_hash` string, nullable
    - `architecture_changed` boolean, nullable
    - `architecture_comparable` boolean
    - `architecture_change_summary` object, nullable
    - `architecture_span_count` integer
    - `certification_id` string, uuid, nullable
    - `certification_sequence` integer, nullable
    - `requested_model` string, nullable
    - `returned_model` string, nullable
    - `llm_provider` string, nullable
    - `usage_source` string, nullable
    - `model_pricing_id` string, uuid, nullable
    - `pricing_input_cost_per_million` number, nullable
    - `pricing_output_cost_per_million` number, nullable
    - `pricing_effective_date` string, date, nullable
    - `error_class` string, nullable
    - `response_status` integer, nullable
    - `error_body_excerpt` string, nullable
    - `execution_mode` string, nullable
    - `verification_hash` string, nullable
    - `signed_at` string, date-time, nullable
    - `key_id` string, nullable
    - `public_certificate_state` 'verified' | 'simulated' | 'unsigned' | 'invalid'
    - `suite_id` string, nullable
    - `suite_version` integer, nullable
    - `model` string, nullable
    - `cost_provenance` string, nullable
    - `cost_basis` 'metered' | 'traced' | 'traced_partial' | 'self_reported' | 'unavailable', nullable
    - `scored_cost_usd` number, nullable
    - `provenance_level` string, nullable
    - `manifest_hash` string, nullable
    - `provenance_flags` string[], required
  - `total` integer, required
  - `page` integer, required
  - `page_size` integer, required
  - `pages` integer, required

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/badgeia/apis/badge.md) · [All operations](https://skmtc.dev/badgeia/apis/badge/llms.txt) · [OpenAPI document](https://skmtc.dev/badgeia/apis/badge/revisions/7e7f7fee8b77?raw)
