---
title: "List Template Runs"
method: GET
path: "/v1/flows/templates/{template_id}/runs"
tags: ["Flows", "Templates"]
---

# List Template Runs

`GET /v1/flows/templates/{template_id}/runs`

List this template's runs created through this API, newest first.

## Path parameters

- `template_id` string, required — The ID of the template, as shown in the ElevenLabs app or by `GET /v1/flows/templates`.

## Query parameters

- `cursor` string, nullable — Pagination cursor: the `next_cursor` value of the previous page's response. Omit it for the first page.
- `page_size` integer — How many runs to return per page.
- `version_id` string, nullable — Only return runs of this template version id.

## Headers

- `xi-api-key` string, nullable — Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.

## Response `200`

Successful Response

- TemplateRunListResponse — One page of the caller's public-API template runs, newest first.
  - `runs` TemplateRunResponse[], required — The runs on this page, newest first. Each item has the same shape as `GET /v1/flows/templates/{template_id}/runs/{run_id}`.
    - `id` string, required — The unique identifier of the run.
    - `template_id` string, required — The template this run executed, so a webhook consumer running several templates can tell their runs apart without keeping a run-to-template map.
    - `version_id` string, required — The template version this run executed. Resolved when the run is created, so a run started with `latest` records the concrete version it ran.
    - `status` 'pending' | 'generating' | 'completed' | 'failed', required — Where a run, or one of its outputs, is in its lifecycle. The run's is rolled up from its outputs' (``aggregate_output_statuses``). A class rather than a ``Literal`` so it publishes as one named enum instead of being inlined into every kind.
    - `outputs` object, required — The run's outputs, keyed by output port id. Each is a `TemplateOutput` discriminated on `type`, the `type` of its port's `content_schema`.
  - `next_cursor` string, nullable, required — Pass as `cursor` to fetch the next page. `null` when there is no further page.
  - `has_more` boolean, required — Whether more runs exist beyond this page.

## Other responses

- `422` — Validation Error

## Changes

- **2026-09-22** `6fb9be1a19f5` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/elevenlabs/apis/elevenlabs-api-documentation/changes/v1/flows/templates/:template_id/runs/get.md)

---

[API](https://skmtc.dev/elevenlabs/apis/elevenlabs-api-documentation.md) · [All operations](https://skmtc.dev/elevenlabs/apis/elevenlabs-api-documentation/llms.txt) · [OpenAPI document](https://skmtc.dev/elevenlabs/apis/elevenlabs-api-documentation/revisions/48a38e3b0dbd?raw)
