---
title: "Update Scheduled Task"
api: "PUT /api/v1/scheduled-task/{task_id}"
description: "Updates a scheduled task with partial updates"
---

Updates a scheduled task with partial updates. You can update any combination of the task configuration fields without affecting the others.

## Path Parameters

<ParamField path="task_id" type="string" required>
  ID of the scheduled task to update
</ParamField>

## Request Body

<ParamField body="task" type="string">
  Instructions for what the agent should do
</ParamField>
<ParamField body="schedule_type" type="string">
  Type of schedule: "interval" or "cron"
</ParamField>
<ParamField body="interval_minutes" type="integer">
  Minutes between runs (required if schedule_type is "interval")
</ParamField>
<ParamField body="cron_expression" type="string">
  Cron expression for scheduling (required if schedule_type is "cron")
</ParamField>
<ParamField body="start_at" type="string">
  When to start the schedule (ISO 8601 format)
</ParamField>
<ParamField body="end_at" type="string">
  When to end the schedule (ISO 8601 format)
</ParamField>
<ParamField body="is_active" type="boolean">
  Whether the scheduled task is active
</ParamField>
<ParamField body="use_adblock" type="boolean">
  Whether to use an adblocker
</ParamField>
<ParamField body="use_proxy" type="boolean">
  Whether to use a proxy
</ParamField>
<ParamField body="highlight_elements" type="boolean">
  Whether to highlight elements on the page
</ParamField>
<ParamField body="llm_model" type="string">
  LLM model to use. Available options: gpt-4o, gpt-4o-mini, gpt-4.1, gpt-4.1-mini, o4-mini, o3, gemini-2.0-flash, gemini-2.0-flash-lite, gemini-2.5-flash-preview-04-17, gemini-2.5-flash, gemini-2.5-pro, claude-3-7-sonnet-20250219, claude-sonnet-4-20250514, llama-4-maverick-17b-128e-instruct
</ParamField>
<ParamField body="save_browser_data" type="boolean">
  Whether to save browser cookies and data between runs
</ParamField>
<ParamField body="structured_output_json" type="string">
  JSON schema for structured output
</ParamField>

<ParamField body="metadata" type="object">
  Optional dictionary of string key-value pairs for custom tagging. Max 10 pairs. Keys: strings (max 100 chars, non-empty). Values: strings (max 1000 chars).
</ParamField>

## Response

Returns the updated scheduled task object with the same format as the Get Scheduled Task response.

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

<ResponseField name="task" type="string">
  Instructions for what the agent should do
</ResponseField>

<ResponseField name="save_browser_data" type="boolean">
  Whether to save browser cookies and data
</ResponseField>

<ResponseField name="structured_output_json" type="string">
  JSON schema for structured output
</ResponseField>

<ResponseField name="llm_model" type="string">
  LLM model to use
</ResponseField>

<ResponseField name="use_adblock" type="boolean">
  Whether to use an adblocker
</ResponseField>

<ResponseField name="use_proxy" type="boolean">
  Whether to use a proxy
</ResponseField>

<ResponseField name="highlight_elements" type="boolean">
  Whether to highlight elements on the page
</ResponseField>

<ResponseField name="schedule_type" type="string">
  Type of schedule: "interval" or "cron"
</ResponseField>

<ResponseField name="interval_minutes" type="integer">
  Minutes between runs
</ResponseField>

<ResponseField name="cron_expression" type="string">
  Cron expression for scheduling
</ResponseField>

<ResponseField name="start_at" type="string">
  When to start the schedule
</ResponseField>

<ResponseField name="next_run_at" type="string">
  When the next run is scheduled
</ResponseField>

<ResponseField name="end_at" type="string">
  When to end the schedule
</ResponseField>

<ResponseField name="is_active" type="boolean">
  Whether the scheduled task is active
</ResponseField>

<ResponseField name="created_at" type="string">
  When the scheduled task was created
</ResponseField>

<ResponseField name="updated_at" type="string">
  When the scheduled task was last updated
</ResponseField>

<ResponseField name="metadata" type="object | null">
  Custom metadata key-value pairs associated with the scheduled task
</ResponseField>

<RequestExample>

```python python
import requests

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

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

payload = {
    "task": "Updated task description",
    "is_active": False,
    "metadata": {
        "campaign": "q4-automation",
        "team": "marketing"
    }
}

response = requests.request("PUT", url, headers=headers, json=payload)

print(response.text)
```

```bash curl
curl --request PUT \
  --url https://api.browser-use.com/api/v1/scheduled-task/{task_id} \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
    "task": "Updated task description",
    "is_active": false,
    "metadata": {
      "campaign": "q4-automation",
      "team": "marketing"
    }
  }'
```

</RequestExample>

<ResponseExample>

```json 200
{
  "id": "scheduled_task_1234567890abcdef",
  "task": "Updated task description",
  "save_browser_data": false,
  "structured_output_json": null,
  "llm_model": "gpt-4o",
  "use_adblock": true,
  "use_proxy": true,
  "highlight_elements": true,
  "schedule_type": "interval",
  "interval_minutes": 60,
  "cron_expression": null,
  "start_at": "2023-01-01T00:00:00Z",
  "next_run_at": "2023-01-01T01:00:00Z",
  "end_at": "2023-12-31T23:59:59Z",
  "is_active": false,
  "created_at": "2023-01-01T00:00:00Z",
  "updated_at": "2023-01-01T00:30:00Z",
  "metadata": {
    "campaign": "q4-automation",
    "team": "marketing"
  }
}
```

</ResponseExample> 
