---
title: "ListRetlWorkflowRuns"
method: GET
path: "/v1.1/retl/workflow/runs"
tags: ["ControlService"]
---

# ListRetlWorkflowRuns

`GET /v1.1/retl/workflow/runs`

## Request

- Base URL: `https://www.metarouter.io/contact`
- URL: `https://www.metarouter.io/contact/v1.1/retl/workflow/runs`
- Auth: HTTP bearer

Lists rETL workflow runs: running, then pending, then finished, newest first in each group.
 A cron tick can list multiple entries sharing the workflow_id.
 Runs with no log rows yet lead the first page. per_page defaults to 10, max 100.

## Query parameters

- `page` integer
- `perPage` integer
- `configType` 'TYPE_UNSPECIFIED' | 'TYPE_AUDIENCE_ACTIVATION' | 'TYPE_REPLAY' | 'TYPE_MATCH_TABLE'
- `configId` string
- `status` 'STATUS_UNSPECIFIED' | 'STATUS_PENDING' | 'STATUS_RUNNING' | 'STATUS_SUCCEEDED' | 'STATUS_FAILED'
- `workflowId` string

## Response `200`

OK

- ProtobufControlpbV1ListRetlWorkflowRunsResponse
  - `runs` union[], nullable
    - union
      - object, nullable
      - ProtobufRetlpbV1RetlWorkflowRun
        - `configId` string: AA and replay will have config_id, generator and matcher will be split by config_id as they support multiple.
        - `configType` 'TYPE_UNSPECIFIED' | 'TYPE_AUDIENCE_ACTIVATION' | 'TYPE_REPLAY' | 'TYPE_MATCH_TABLE'
        - `finishedAt` string, date-time, nullable: Unset while the entry is pending or running.
        - `messageId` string: The replay run id or the audience activation SNS message id. Empty for the crons.
        - `retryCount` integer: Retried attempts across the entry's steps, from repeated STATUS_STARTED rows. 0 when no step retried.
        - `rowsProcessed` string: Output delivered so far: queue events for replay, stream-events, and generate-events, match-table entries for build-match-table.
        - `source` string: Where the entry reads its records. Empty until a row of the entry carries a source. Replay: the source URI with its prefix and glob. Audience activation: the decoded object key, without the bucket. Empty while the run is queued. build-match-table: the online storage URI and prefix. Empty without config_id or online storage. generate-events: the offline storage URI and prefix. Empty without config_id.
        - `startedAt` string, date-time, nullable
        - `status` 'STATUS_UNSPECIFIED' | 'STATUS_PENDING' | 'STATUS_RUNNING' | 'STATUS_SUCCEEDED' | 'STATUS_FAILED'
        - `step` string: The step of the entry's most recent row: the active step while running, the last step once finished.
        - `workflowId` string: The workflow name of the run. The detail, stop, and delete requests take this value.
        - `writeKey` string: The write key of the entry's config. Empty for replay, which has no single write key.

## Other responses

- `4XX`: Something is wrong with your request such as missing or invalid data. Correct your request and try again.
- `5XX`: Internal server error. Try again later or reach out to MetaRouter support.

## Changes

- **2026-11-03** `aa3afac506c0`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/metarouter/apis/control-api/changes/v1.1/retl/workflow/runs/get.md)

---

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