Browser Agents
List browser runs
Browse your browser task history with filters and offset pagination.
curl --fail-with-body 'https://api.pre.dev/list-browser-agents?limit=20&skip=0' \
-H "Authorization: Bearer $PREDEV_API_KEY"The response contains batches, total, and hasMore. Entries are sorted newest first. Increase skip by your page size while hasMore is true. limit defaults to 20 and is clamped to 1–100. Use a nonnegative skip.
The status filter accepts processing or completed; omit it to include all stored statuses, including failed runs.
Summary rows
Rows include the run id, task count total, finished-task completed count, status, totalCreditsUsed, and available names and timestamps. Their results arrays can contain null slots. The first slot may be a partial task stub to identify the run before results arrive.
Fetch run status for full task details and timelines. List summaries and detailed run snapshots have different behavior for the completed count; use status to decide whether a run is terminal.
Node: client.listBrowserAgents({ limit: 20, skip: 0 }). Python: client.list_browser_agents(limit=20, skip=0) returns a dictionary.
Errors
| Status | When |
|---|---|
401 | Missing or invalid key |
500 | Unexpected error |
Each status has an example body in the response examples. See errors and retries.
curl -X GET "https://api.pre.dev/list-browser-agents"fetch("https://api.pre.dev/list-browser-agents", { method: "GET"})package mainimport ( "fmt" "net/http" "io/ioutil")func main() { url := "https://api.pre.dev/list-browser-agents" req, _ := http.NewRequest("GET", url, nil) res, _ := http.DefaultClient.Do(req) defer res.Body.Close() body, _ := ioutil.ReadAll(res.Body) fmt.Println(res) fmt.Println(string(body))}import requestsurl = "https://api.pre.dev/list-browser-agents"response = requests.request("GET", url)print(response.text)import java.net.URI;import java.net.http.HttpClient;import java.net.http.HttpRequest;import java.net.http.HttpResponse;import java.net.http.HttpResponse.BodyHandlers;import java.time.Duration;HttpClient client = HttpClient.newBuilder() .connectTimeout(Duration.ofSeconds(10)) .build();HttpRequest.Builder requestBuilder = HttpRequest.newBuilder() .uri(URI.create("https://api.pre.dev/list-browser-agents")) .GET() .build();try { HttpResponse<String> response = client.send(requestBuilder.build(), BodyHandlers.ofString()); System.out.println("Status code: " + response.statusCode()); System.out.println("Response body: " + response.body());} catch (Exception e) { e.printStackTrace();}using System;using System.Net.Http;using System.Text;var client = new HttpClient();var response = await client.GetAsync("https://api.pre.dev/list-browser-agents");var responseBody = await response.Content.ReadAsStringAsync();use reqwest::{Result, Client};async fn main() -> Result<()> { let client = Client::new(); let url = "https://api.pre.dev/list-browser-agents"; let res = client .get(url) .send() .await? .text() .await?; println!("{}", res); Ok(())}{ "batches": [ { "id": "507f1f77bcf86cd799439011", "name": "Example heading", "status": "completed", "total": 1, "completed": 1, "totalCreditsUsed": 0.1, "createdAt": "2026-09-27T12:00:00.000Z", "completedAt": "2026-09-27T12:00:21.000Z", "results": [] } ], "total": 1, "hasMore": false}Your pre.dev workspace API key (pdk_...) from Integrations, Built-in tab: https://pre.dev/projects/integrations?tab=built-in
In: header
Query Parameters
1 <= value <= 100200 <= value0Value in
- "processing"
- "completed"
- "failed"
Response Body
application/json
Paginated run summaries.
TypeScript Definitions
Use the response body type in TypeScript.
application/json
Missing, invalid, or ineligible authentication.
TypeScript Definitions
Use the response body type in TypeScript.
application/json
Request failed.
TypeScript Definitions
Use the response body type in TypeScript.