---
title: "Get Task"
api: "GET /api/v1/task/{task_id}"
description: "Get comprehensive information about a task"
---

Returns comprehensive information about a task, including its current status, steps completed, output, and other metadata.

## Path Parameters
<ParamField path="task_id" type="string" required>
  ID of the task to retrieve
</ParamField>


## Response

<ResponseField name="id" type="string" required>
  The unique identifier for the task
</ResponseField>

<ResponseField name="task" type="string" required>
  The original task instructions
</ResponseField>

<ResponseField name="output" type="string | null" required>
  The final output or result from the task (if completed)
</ResponseField>

<ResponseField name="status" type="enum<string>" required>
  Enumeration of possible task states.

  - created: Task is initialized but not yet started
  - running: Task is currently executing
  - finished: Task has completed successfully
  - stopped: Task was manually stopped
  - paused: Task execution is temporarily paused
  - failed: Task encountered an error and could not complete
  
  Available options: `created`, `running`, `finished`, `stopped`, `paused`, `failed`
</ResponseField>

<ResponseField name="created_at" type="string" required>
  ISO 8601 timestamp of when the task was created
</ResponseField>

<ResponseField name="steps" type="TaskStepResponse · object[]" required>
  List of task steps with execution details
  
  <Expandable title="Hide child attributes">
    <ResponseField name="id" type="string" required>
      Unique identifier for the step
    </ResponseField>
    <ResponseField name="step" type="integer" required>
      Step number in the execution sequence
    </ResponseField>
    <ResponseField name="evaluation_previous_goal" type="string" required>
      Assessment of the previous goal's completion
    </ResponseField>
    <ResponseField name="next_goal" type="string" required>
      Description of what the next step aims to achieve
    </ResponseField>
    <ResponseField name="url" type="string" required>
      URL of the page where the step was executed
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="live_url" type="string | null">
  URL to view live task execution. To preview the url you can directly integrate it in `<iframe>` tag. For example:
  `<iframe src={live_url} width="600" height="450"></iframe>`
  Which will display the task execution and allows you to control the agent live. It is pure VNC implementation.
</ResponseField>

<ResponseField name="finished_at" type="string | null">
  ISO 8601 timestamp of when the task finished (if completed)
</ResponseField>

<ResponseField name="browser_data" type="object | null">
  Browser session data (if save_browser_data was enabled)
  
  This field is only available if save_browser_data is set to True in the request.
  
  <Expandable title="Hide child attributes">
    <ResponseField name="browser_data.cookies" type="Cookies · object[]" required>
      List of cookies from the browser session
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="user_uploaded_files" type="string[] | null">
  List of files uploaded by the user for this task
</ResponseField>

<ResponseField name="output_files" type="string[] | null">
  List of files generated during task execution
</ResponseField>

<ResponseField name="public_share_url" type="string | null">
  Public URL for sharing the task (if public sharing was enabled)
</ResponseField>

<RequestExample>

```python python
import requests

url = "https://api.browser-use.com/api/v1/task/{task_id}"

headers = {"Authorization": "Bearer <token>"}

response = requests.request("GET", url, headers=headers)

print(response.text)
```

```bash curl
curl --request GET \
  --url https://api.browser-use.com/api/v1/task/{task_id} \
  --header 'Authorization: Bearer <token>'
```

```javascript javascript 
const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};

fetch('https://api.browser-use.com/api/v1/task/{task_id}', options)
  .then(response => response.json())
  .then(response => console.log(response))
  .catch(err => console.error(err));
```
</RequestExample>

<ResponseExample>
    ```json 200
    {
  "id": "<string>",
  "task": "<string>",
  "live_url": "<string>",
  "output": "<string>",
  "status": "created",
  "created_at": "2023-11-07T05:31:56Z",
  "finished_at": "2023-11-07T05:31:56Z",
  "steps": [
    {
      "id": "<string>",
      "step": 123,
      "evaluation_previous_goal": "<string>",
      "next_goal": "<string>",
      "url": "<string>"
    }
  ],
  "browser_data": {
    "cookies": [
      {}
    ]
  },
  "user_uploaded_files": [
    "<string>"
  ],
  "output_files": [
    "<string>"
  ],
  "public_share_url": "<string>"
}
    ```

    ```json 422
    {
    "detail": [
        {
        "loc": [
            "<string>"
        ],
        "msg": "<string>",
        "type": "<string>"
        }
    ]
    }
    ```
</ResponseExample>
