---
title: "List Sessions"
method: GET
path: "/sessions"
tags: ["Sessions"]
---

# List Sessions

`GET /sessions`

## Request

- Base URL: `https://api.browser-use.com/api/v4`
- URL: `https://api.browser-use.com/api/v4/sessions`
- Auth: API key in header `X-Browser-Use-API-Key`

List the project's V4 sessions — one row per session (its most recent
run), most-recent first.

A session is a conversation: follow-up runs reuse the same
public_session_id, so GET /api/v4/runs would list one row per RUN. This
collapses to one row per SESSION directly in Postgres with DISTINCT ON, so a
chatty session with 100 runs is still a single row (no scan amplification),
and selects only the slim columns the session list needs — never the heavy
per-run text/token/cost fields.

Keyset-paginated on the latest run's (created_at, id): pass `next_cursor`
back as `cursor` to page. Offset/COUNT was dropped — it doesn't scale on
projects with many sessions.

## Query parameters

- `limit` integer: Max sessions per page (max 100).
- `cursor` string, nullable: Keyset cursor from a prior response.

## Response `200`

Successful Response

- SessionListResponse: One entry per session (the session's most recent run), most-recent first. A V4 session is a conversation: every follow-up run reuses the same public_session_id. GET /api/v4/runs returns one row per RUN, so callers that want a list of distinct *sessions* (e.g. the recent-sessions panel) should use this instead of de-duplicating runs client-side.
  - `sessions` SessionInfo[], required
    - `sessionId` string, uuid, required
    - `workspaceId` string, uuid, nullable, required
    - `latestRunId` string, uuid, required
    - `task` string, required
    - `title` string, nullable, required
    - `status` 'queued' | 'dispatching' | 'running' | 'completed' | 'failed' | 'cancelled', required
    - `createdAt` string, date-time, required
    - `updatedAt` string, date-time, required
  - `nextCursor` string, nullable
  - `hasMore` boolean

## Other responses

- `400`: Malformed pagination cursor.
- `403`: Zero Data Retention is enabled on the project (V4 unsupported).
- `422`: Validation Error

---

[API](https://skmtc.dev/browser-use/apis/browser-use-public-api-v4.md) · [All operations](https://skmtc.dev/browser-use/apis/browser-use-public-api-v4/llms.txt) · [OpenAPI document](https://skmtc.dev/browser-use/apis/browser-use-public-api-v4/revisions/cd7b1eee1102?raw)
