---
title: "List test runs"
method: GET
path: "/api/apps/{app_id}/testing-agent/executions"
---

# List test runs

`GET /api/apps/{app_id}/testing-agent/executions`

<Info>This API is in beta. Endpoints, fields, and behavior may still change, so avoid depending on it in production.</Info>

Returns the app's 100 most recent test runs, newest first. Set `flow_id` to get only one test's runs. Older runs can't be listed.

This is limited to 6000 requests per minute per caller for each app. Some workspaces have a different limit.

<Note>This endpoint accepts a personal API key belonging to a user with access to the app. Read-only keys are refused even though this endpoint only reads, and workspace API keys are not accepted.</Note>

<Warning>The response includes fields beyond the ones documented here. Don't rely on undocumented response fields, as they can change at any time.</Warning>

## Path parameters

- `app_id` string, required — ID of the app.

## Query parameters

- `flow_id` string, nullable — Only return runs of this test.

## Response `200`

The runs, newest first.

- TestRun[]
  - `id` string, required — ID of the run.
  - `app_id` string, required — ID of the app.
  - `flow_id` string, required — ID of the test this run belongs to.
  - `flow_goal` string, required — The test's goal when the run started.
  - `flow_role` string, nullable, required — Role the run signs in as, including one Base44 picked from the test's name or goal. Set once the run starts. `null` when the run uses no role.
  - `site_url` string, required — URL the run opened.
  - `status` 'pending' | 'running' | 'analyzing' | 'success' | 'failed' | 'timeout' | 'cancelled' | 'paused', required — Where the run is. `pending`, `running` and `analyzing` mean it's still going. `success` means the browser session finished, and `failed` means it didn't. `timeout`, `cancelled` and `paused` mean the run stopped early. The test passed when `goal_accomplished` is `true` and `failure_reason` isn't `platform` or `internal`.
  - `actions` TestRunStep[], required — Steps the agent took. Empty until the run finishes.
    - `step_title` string, required — Short description of the step.
    - `step_summary` string, required — What the agent did in this step and why.
  - `result_message` string, nullable, required — The agent's account of how the run went, or `null` before the run finishes.
  - `goal_accomplished` boolean, nullable, required — Whether the agent accomplished the goal, or `null` before the run finishes. Can be `true` on a run whose `failure_reason` is `platform` or `internal`, which counts as a technical failure.
  - `live_status` string, nullable, required — Short progress message for display, or `null` before the run starts.
  - `analysis_status` 'pending' | 'completed' | 'failed', nullable, required — Progress of the run's report. `completed` means [Get test run report](/api-reference/get-test-run-report) has it. `null` before the run reaches analysis.
  - `failure_reason` 'app' | 'platform' | 'internal' | 'out_of_credits', nullable, required — Why the run didn't pass, or `null` when no reason was recorded. `app` is a problem in your app. `platform` and `internal` are problems on Base44's side, so rerun the test. `out_of_credits` comes with status `paused`.
  - `credits_charged` number, nullable, required — Credits the run cost, or `null` before it's charged.
  - `started_at` string, nullable, required — When the browser session started, as an ISO 8601 UTC timestamp, or `null` while pending.
  - `completed_at` string, nullable, required — When the run ended, as an ISO 8601 UTC timestamp, or `null` while it's still going.
  - `created_date` string, required — When the run was requested, as an ISO 8601 UTC timestamp.
  - `updated_date` string, required — When the run last changed, as an ISO 8601 UTC timestamp.

## Other responses

- `401` — Missing or invalid credentials.
- `403` — You don't have access to this app, the app is blocked, or your API key is read-only or a workspace API key.
- `404` — App not found.
- `409` — Your workspace requires an unlocked SSO session.
- `429` — Rate limit exceeded.

## Changes

- **2026-09-30** `63675fa5257c` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/idealspot/apis/base44-app-management-api/changes/api/apps/:app_id/testing-agent/executions/get.md)

---

[API](https://skmtc.dev/idealspot/apis/base44-app-management-api.md) · [All operations](https://skmtc.dev/idealspot/apis/base44-app-management-api/llms.txt) · [OpenAPI document](https://skmtc.dev/idealspot/apis/base44-app-management-api/revisions/e58d4ff7b1f8?raw)
