List workflow runs
curl --request GET \
--url https://api.deck.co/v2/workflow-runs \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.deck.co/v2/workflow-runs"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.deck.co/v2/workflow-runs', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.deck.co/v2/workflow-runs",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.deck.co/v2/workflow-runs"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.deck.co/v2/workflow-runs")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.deck.co/v2/workflow-runs")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"data": [
{
"id": "wrun_AbC123xYz456",
"object": "<string>",
"workflow_id": "wflo_AbC123xYz456",
"status": "queued",
"result": "<string>",
"runtime_ms": 123,
"session_id": "<string>",
"trigger_id": "<string>",
"steps": [
{
"name": "<string>",
"type": "task",
"status": "<string>",
"output": "<unknown>",
"task_runs": [
{
"task_run_id": "trun_AbC123xYz456",
"status": "<string>",
"result": "<string>",
"created_at": "2026-06-18T00:00:00Z",
"runtime_ms": 123,
"errors": [
{
"type": "<string>",
"code": "<string>",
"message": "<string>",
"field": "<string>"
}
],
"item": "<unknown>",
"input": "<unknown>",
"storage": [
{
"id": "stor_AbC123xYz456",
"object": "<string>",
"file_name": "<string>",
"file_type": "<string>",
"file_size": 123,
"purpose": "attachment",
"created_at": "2026-08-24T12:00:00Z",
"url": "<string>",
"extraction": "<unknown>"
}
],
"artifacts": {
"screenshots": [
{
"file_name": "<string>",
"file_type": "<string>",
"file_size": 123,
"created_at": "2026-08-24T12:00:00Z",
"url": "<string>",
"reasoning": "<string>"
}
]
}
}
]
}
],
"errors": [
{
"type": "<string>",
"code": "<string>",
"message": "<string>",
"field": "<string>",
"step": "<string>"
}
],
"created_at": "2026-06-18T00:00:00Z",
"updated_at": "2026-06-18T00:00:00Z",
"request_id": "<string>"
}
],
"has_more": true,
"next_cursor": "<string>",
"request_id": "<string>"
}{
"errors": {},
"type": "<string>",
"title": "<string>",
"status": 123,
"traceId": "<string>"
}{
"errors": [
{
"type": "<string>",
"code": "<string>",
"message": "<string>",
"field": "<string>"
}
],
"request_id": "<string>"
}{
"errors": [
{
"type": "<string>",
"code": "<string>",
"message": "<string>",
"field": "<string>"
}
],
"request_id": "<string>"
}{
"errors": [
{
"type": "<string>",
"code": "<string>",
"message": "<string>",
"field": "<string>"
}
],
"request_id": "<string>"
}{
"errors": [
{
"type": "<string>",
"code": "<string>",
"message": "<string>",
"field": "<string>"
}
],
"request_id": "<string>"
}{
"errors": [
{
"type": "<string>",
"code": "<string>",
"message": "<string>",
"field": "<string>"
}
],
"request_id": "<string>"
}Workflows
List workflow runs
Returns a paginated list of workflow runs.
GET
/
workflow-runs
List workflow runs
curl --request GET \
--url https://api.deck.co/v2/workflow-runs \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.deck.co/v2/workflow-runs"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.deck.co/v2/workflow-runs', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.deck.co/v2/workflow-runs",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.deck.co/v2/workflow-runs"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.deck.co/v2/workflow-runs")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.deck.co/v2/workflow-runs")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"data": [
{
"id": "wrun_AbC123xYz456",
"object": "<string>",
"workflow_id": "wflo_AbC123xYz456",
"status": "queued",
"result": "<string>",
"runtime_ms": 123,
"session_id": "<string>",
"trigger_id": "<string>",
"steps": [
{
"name": "<string>",
"type": "task",
"status": "<string>",
"output": "<unknown>",
"task_runs": [
{
"task_run_id": "trun_AbC123xYz456",
"status": "<string>",
"result": "<string>",
"created_at": "2026-06-18T00:00:00Z",
"runtime_ms": 123,
"errors": [
{
"type": "<string>",
"code": "<string>",
"message": "<string>",
"field": "<string>"
}
],
"item": "<unknown>",
"input": "<unknown>",
"storage": [
{
"id": "stor_AbC123xYz456",
"object": "<string>",
"file_name": "<string>",
"file_type": "<string>",
"file_size": 123,
"purpose": "attachment",
"created_at": "2026-08-24T12:00:00Z",
"url": "<string>",
"extraction": "<unknown>"
}
],
"artifacts": {
"screenshots": [
{
"file_name": "<string>",
"file_type": "<string>",
"file_size": 123,
"created_at": "2026-08-24T12:00:00Z",
"url": "<string>",
"reasoning": "<string>"
}
]
}
}
]
}
],
"errors": [
{
"type": "<string>",
"code": "<string>",
"message": "<string>",
"field": "<string>",
"step": "<string>"
}
],
"created_at": "2026-06-18T00:00:00Z",
"updated_at": "2026-06-18T00:00:00Z",
"request_id": "<string>"
}
],
"has_more": true,
"next_cursor": "<string>",
"request_id": "<string>"
}{
"errors": {},
"type": "<string>",
"title": "<string>",
"status": 123,
"traceId": "<string>"
}{
"errors": [
{
"type": "<string>",
"code": "<string>",
"message": "<string>",
"field": "<string>"
}
],
"request_id": "<string>"
}{
"errors": [
{
"type": "<string>",
"code": "<string>",
"message": "<string>",
"field": "<string>"
}
],
"request_id": "<string>"
}{
"errors": [
{
"type": "<string>",
"code": "<string>",
"message": "<string>",
"field": "<string>"
}
],
"request_id": "<string>"
}{
"errors": [
{
"type": "<string>",
"code": "<string>",
"message": "<string>",
"field": "<string>"
}
],
"request_id": "<string>"
}{
"errors": [
{
"type": "<string>",
"code": "<string>",
"message": "<string>",
"field": "<string>"
}
],
"request_id": "<string>"
}Authorizations
Secret key (sk_live_...)
Query Parameters
Maximum number of items to return (1-100, default 20)
Required range:
1 <= x <= 100Example:
20
Cursor from a previous response for pagination.
Filter by run status: queued, running, paused, completed, failed, canceling, canceled. Pass multiple values comma-separated to match any.
Scope to a single workflow. Prefixed with wflo_.
Scope to runs created by this trigger. Prefixed with trg_.
Response
OK
Array of workflow runs for the current page. List entries omit each step's task_runs.
Show child attributes
Show child attributes
true if there are more results beyond this page.
Opaque cursor string to pass as the cursor query parameter on the next request. null when there are no more pages.
Unique identifier for the API request.
Was this page helpful?