Skip to main content
GET
/
runs
/
{run_id}
/
status
Get Run Status
const options = {method: 'GET', headers: {'X-Browser-Use-API-Key': '<api-key>'}};

fetch('https://api.browser-use.com/api/v4/runs/{run_id}/status', options)
  .then(res => res.json())
  .then(res => console.log(res))
  .catch(err => console.error(err));
curl --request GET \
  --url https://api.browser-use.com/api/v4/runs/{run_id}/status \
  --header 'X-Browser-Use-API-Key: <api-key>'
import requests

url = "https://api.browser-use.com/api/v4/runs/{run_id}/status"

headers = {"X-Browser-Use-API-Key": "<api-key>"}

response = requests.get(url, headers=headers)

print(response.text)
{}
{
  "detail": [
    {
      "loc": [
        "<string>"
      ],
      "msg": "<string>",
      "type": "<string>"
    }
  ]
}

Authorizations

X-Browser-Use-API-Key
string
header
required

Path Parameters

run_id
string<uuid>
required

Response

Successful Response

Minimal poll target: just the run's status. Poll this until terminal (cheap indexed lookup, tiny payload — never the task/result text), then fetch the full RunSummary once via GET /runs/{id}. Mirrors v2's GET /tasks/{id}/status.

status
enum<string>
required
Available options:
queued,
dispatching,
running,
completed,
failed,
cancelled