curl --request GET \
--url https://agent.tinyfish.ai/v1/runs \
--header 'X-API-Key: <api-key>'import requests
url = "https://agent.tinyfish.ai/v1/runs"
headers = {"X-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-Key': '<api-key>'}};
fetch('https://agent.tinyfish.ai/v1/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://agent.tinyfish.ai/v1/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 => [
"X-API-Key: <api-key>"
],
]);
$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://agent.tinyfish.ai/v1/runs"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-Key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://agent.tinyfish.ai/v1/runs")
.header("X-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://agent.tinyfish.ai/v1/runs")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"data": [
{
"run_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"status": "COMPLETED",
"goal": "Find all pricing information",
"created_at": "2026-01-14T10:30:00Z",
"started_at": "2026-01-14T10:30:05Z",
"finished_at": "2026-01-14T10:31:30Z",
"num_of_steps": 5,
"result": {},
"output_schema": {
"type": "object",
"properties": {
"title": {
"type": "string"
},
"price": {
"type": "number"
}
},
"required": [
"title",
"price"
]
},
"profile_attached": true,
"profile_id": "prof_abc123",
"error": {
"message": "Browser crashed during execution",
"category": "SYSTEM_FAILURE",
"code": "service_busy",
"retry_after": 60,
"help_url": "https://docs.tinyfish.ai/prompting-guide",
"help_message": "Need help? Check out our goal prompting guide for tips and examples.",
"profile_hint": {
"message": "<string>",
"setup_url": "/profiles/prof_abc123/setup?domain=example.com&returnTo=%2Fruns%2Frun_123&ref=run_error_nudge",
"reason": "auth_wall"
}
},
"streaming_url": "https://stream.agent.tinyfish.ai/session/xyz",
"browser_config": {
"proxy_enabled": false,
"proxy_country_code": "US"
},
"profile_hint": {
"message": "<string>",
"setup_url": "/profiles/prof_abc123/setup?domain=example.com&returnTo=%2Fruns%2Frun_123&ref=run_error_nudge",
"reason": "auth_wall"
}
}
],
"pagination": {
"total": 142,
"next_cursor": "eyJpZCI6ImFiYyIsImNyZWF0ZWRBdCI6IjIwMjYtMDEtMDFUMTI6MDA6MDBaIn0=",
"has_more": true
}
}{
"error": {
"code": "INVALID_INPUT",
"message": "Field \"url\" is required and must be a string",
"details": "<unknown>"
},
"request_id": "8f9dba20-e37b-4749-a919-2269e28b4a2c"
}{
"error": {
"code": "INVALID_INPUT",
"message": "Field \"url\" is required and must be a string",
"details": "<unknown>"
},
"request_id": "8f9dba20-e37b-4749-a919-2269e28b4a2c"
}{
"error": {
"code": "INVALID_INPUT",
"message": "Field \"url\" is required and must be a string",
"details": "<unknown>"
},
"request_id": "8f9dba20-e37b-4749-a919-2269e28b4a2c"
}List and search runs
List automation runs with optional filtering by status, goal text, and date range. Returns paginated results with total count. Default sort order is newest first. A workflow key reads only records its team’s workflow keys made, never its creator’s own.
curl --request GET \
--url https://agent.tinyfish.ai/v1/runs \
--header 'X-API-Key: <api-key>'import requests
url = "https://agent.tinyfish.ai/v1/runs"
headers = {"X-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-Key': '<api-key>'}};
fetch('https://agent.tinyfish.ai/v1/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://agent.tinyfish.ai/v1/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 => [
"X-API-Key: <api-key>"
],
]);
$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://agent.tinyfish.ai/v1/runs"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-Key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://agent.tinyfish.ai/v1/runs")
.header("X-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://agent.tinyfish.ai/v1/runs")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"data": [
{
"run_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"status": "COMPLETED",
"goal": "Find all pricing information",
"created_at": "2026-01-14T10:30:00Z",
"started_at": "2026-01-14T10:30:05Z",
"finished_at": "2026-01-14T10:31:30Z",
"num_of_steps": 5,
"result": {},
"output_schema": {
"type": "object",
"properties": {
"title": {
"type": "string"
},
"price": {
"type": "number"
}
},
"required": [
"title",
"price"
]
},
"profile_attached": true,
"profile_id": "prof_abc123",
"error": {
"message": "Browser crashed during execution",
"category": "SYSTEM_FAILURE",
"code": "service_busy",
"retry_after": 60,
"help_url": "https://docs.tinyfish.ai/prompting-guide",
"help_message": "Need help? Check out our goal prompting guide for tips and examples.",
"profile_hint": {
"message": "<string>",
"setup_url": "/profiles/prof_abc123/setup?domain=example.com&returnTo=%2Fruns%2Frun_123&ref=run_error_nudge",
"reason": "auth_wall"
}
},
"streaming_url": "https://stream.agent.tinyfish.ai/session/xyz",
"browser_config": {
"proxy_enabled": false,
"proxy_country_code": "US"
},
"profile_hint": {
"message": "<string>",
"setup_url": "/profiles/prof_abc123/setup?domain=example.com&returnTo=%2Fruns%2Frun_123&ref=run_error_nudge",
"reason": "auth_wall"
}
}
],
"pagination": {
"total": 142,
"next_cursor": "eyJpZCI6ImFiYyIsImNyZWF0ZWRBdCI6IjIwMjYtMDEtMDFUMTI6MDA6MDBaIn0=",
"has_more": true
}
}{
"error": {
"code": "INVALID_INPUT",
"message": "Field \"url\" is required and must be a string",
"details": "<unknown>"
},
"request_id": "8f9dba20-e37b-4749-a919-2269e28b4a2c"
}{
"error": {
"code": "INVALID_INPUT",
"message": "Field \"url\" is required and must be a string",
"details": "<unknown>"
},
"request_id": "8f9dba20-e37b-4749-a919-2269e28b4a2c"
}{
"error": {
"code": "INVALID_INPUT",
"message": "Field \"url\" is required and must be a string",
"details": "<unknown>"
},
"request_id": "8f9dba20-e37b-4749-a919-2269e28b4a2c"
}Authorizations
API key for authentication. Get your key from the API Keys page.
Query Parameters
Filter by run status
PENDING, RUNNING, COMPLETED, FAILED, CANCELLED "COMPLETED"
Filter runs by goal text (case-insensitive partial match)
500"linkedin"
Filter runs created after this ISO 8601 timestamp
"2026-01-01T00:00:00Z"
Filter runs created before this ISO 8601 timestamp
"2026-02-01T00:00:00Z"
Sort order by created_at
asc, desc "desc"
Cursor for pagination (from previous response)
"eyJpZCI6ImFiYyIsImNyZWF0ZWRBdCI6IjIwMjYtMDEtMDFUMTI6MDA6MDBaIn0="
Maximum number of results to return (1-100)
1 <= x <= 10020
Whose records: me (default for a personal key) or team, made by the team's workflow keys (the only choice for a workflow key)
me, team "team"
Was this page helpful?