curl --request PATCH \
--url https://api.deck.co/v2/tasks/{task_id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"input_schema": "<unknown>",
"output_schema": "<unknown>",
"prompt": "<string>",
"storage": "<unknown>",
"settings": {
"timeout_seconds": 2,
"sensitive": true
}
}
'import requests
url = "https://api.deck.co/v2/tasks/{task_id}"
payload = {
"name": "<string>",
"input_schema": "<unknown>",
"output_schema": "<unknown>",
"prompt": "<string>",
"storage": "<unknown>",
"settings": {
"timeout_seconds": 2,
"sensitive": True
}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
input_schema: '<unknown>',
output_schema: '<unknown>',
prompt: '<string>',
storage: '<unknown>',
settings: {timeout_seconds: 2, sensitive: true}
})
};
fetch('https://api.deck.co/v2/tasks/{task_id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.deck.co/v2/tasks/{task_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'name' => '<string>',
'input_schema' => '<unknown>',
'output_schema' => '<unknown>',
'prompt' => '<string>',
'storage' => '<unknown>',
'settings' => [
'timeout_seconds' => 2,
'sensitive' => true
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.deck.co/v2/tasks/{task_id}"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"input_schema\": \"<unknown>\",\n \"output_schema\": \"<unknown>\",\n \"prompt\": \"<string>\",\n \"storage\": \"<unknown>\",\n \"settings\": {\n \"timeout_seconds\": 2,\n \"sensitive\": true\n }\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.patch("https://api.deck.co/v2/tasks/{task_id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"input_schema\": \"<unknown>\",\n \"output_schema\": \"<unknown>\",\n \"prompt\": \"<string>\",\n \"storage\": \"<unknown>\",\n \"settings\": {\n \"timeout_seconds\": 2,\n \"sensitive\": true\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.deck.co/v2/tasks/{task_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"input_schema\": \"<unknown>\",\n \"output_schema\": \"<unknown>\",\n \"prompt\": \"<string>\",\n \"storage\": \"<unknown>\",\n \"settings\": {\n \"timeout_seconds\": 2,\n \"sensitive\": true\n }\n}"
response = http.request(request)
puts response.read_body{
"id": "task_AbC123xYz456",
"object": "<string>",
"name": "<string>",
"prompt": "<string>",
"status": "<string>",
"agent_id": "<string>",
"input_schema": "<unknown>",
"output_schema": "<unknown>",
"storage": "<unknown>",
"settings": "<unknown>",
"created_at": "2026-08-24T12:00:00Z",
"updated_at": "2026-08-24T12:00:00Z",
"request_id": "<string>"
}{
"errors": {},
"type": "<string>",
"title": "<string>",
"status": 123,
"traceId": "<string>"
}{
"errors": [
{
"type": "<string>",
"code": "<string>",
"message": "<string>",
"field": "<string>"
}
],
"request_id": "<string>"
}{
"errors": [
{
"type": "<string>",
"code": "<string>",
"message": "<string>",
"field": "<string>"
}
],
"request_id": "<string>"
}{
"errors": [
{
"type": "<string>",
"code": "<string>",
"message": "<string>",
"field": "<string>"
}
],
"request_id": "<string>"
}{
"errors": [
{
"type": "<string>",
"code": "<string>",
"message": "<string>",
"field": "<string>"
}
],
"request_id": "<string>"
}{
"errors": [
{
"type": "<string>",
"code": "<string>",
"message": "<string>",
"field": "<string>"
}
],
"request_id": "<string>"
}Update a task
Updates a task’s name, schemas, prompt, or storage configuration. Only the fields you include in the request body are updated.
curl --request PATCH \
--url https://api.deck.co/v2/tasks/{task_id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"input_schema": "<unknown>",
"output_schema": "<unknown>",
"prompt": "<string>",
"storage": "<unknown>",
"settings": {
"timeout_seconds": 2,
"sensitive": true
}
}
'import requests
url = "https://api.deck.co/v2/tasks/{task_id}"
payload = {
"name": "<string>",
"input_schema": "<unknown>",
"output_schema": "<unknown>",
"prompt": "<string>",
"storage": "<unknown>",
"settings": {
"timeout_seconds": 2,
"sensitive": True
}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
input_schema: '<unknown>',
output_schema: '<unknown>',
prompt: '<string>',
storage: '<unknown>',
settings: {timeout_seconds: 2, sensitive: true}
})
};
fetch('https://api.deck.co/v2/tasks/{task_id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.deck.co/v2/tasks/{task_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'name' => '<string>',
'input_schema' => '<unknown>',
'output_schema' => '<unknown>',
'prompt' => '<string>',
'storage' => '<unknown>',
'settings' => [
'timeout_seconds' => 2,
'sensitive' => true
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.deck.co/v2/tasks/{task_id}"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"input_schema\": \"<unknown>\",\n \"output_schema\": \"<unknown>\",\n \"prompt\": \"<string>\",\n \"storage\": \"<unknown>\",\n \"settings\": {\n \"timeout_seconds\": 2,\n \"sensitive\": true\n }\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.patch("https://api.deck.co/v2/tasks/{task_id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"input_schema\": \"<unknown>\",\n \"output_schema\": \"<unknown>\",\n \"prompt\": \"<string>\",\n \"storage\": \"<unknown>\",\n \"settings\": {\n \"timeout_seconds\": 2,\n \"sensitive\": true\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.deck.co/v2/tasks/{task_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"input_schema\": \"<unknown>\",\n \"output_schema\": \"<unknown>\",\n \"prompt\": \"<string>\",\n \"storage\": \"<unknown>\",\n \"settings\": {\n \"timeout_seconds\": 2,\n \"sensitive\": true\n }\n}"
response = http.request(request)
puts response.read_body{
"id": "task_AbC123xYz456",
"object": "<string>",
"name": "<string>",
"prompt": "<string>",
"status": "<string>",
"agent_id": "<string>",
"input_schema": "<unknown>",
"output_schema": "<unknown>",
"storage": "<unknown>",
"settings": "<unknown>",
"created_at": "2026-08-24T12:00:00Z",
"updated_at": "2026-08-24T12:00:00Z",
"request_id": "<string>"
}{
"errors": {},
"type": "<string>",
"title": "<string>",
"status": 123,
"traceId": "<string>"
}{
"errors": [
{
"type": "<string>",
"code": "<string>",
"message": "<string>",
"field": "<string>"
}
],
"request_id": "<string>"
}{
"errors": [
{
"type": "<string>",
"code": "<string>",
"message": "<string>",
"field": "<string>"
}
],
"request_id": "<string>"
}{
"errors": [
{
"type": "<string>",
"code": "<string>",
"message": "<string>",
"field": "<string>"
}
],
"request_id": "<string>"
}{
"errors": [
{
"type": "<string>",
"code": "<string>",
"message": "<string>",
"field": "<string>"
}
],
"request_id": "<string>"
}{
"errors": [
{
"type": "<string>",
"code": "<string>",
"message": "<string>",
"field": "<string>"
}
],
"request_id": "<string>"
}Authorizations
Secret key (sk_live_...)
Headers
Optional key that makes the request idempotent. Retrying with the same key returns the original response instead of repeating the operation; keys expire after 24 hours. Any string up to 256 characters. See Idempotency.
256"550e8400-e29b-41d4-a716-446655440000"
Path Parameters
Unique identifier for the task (prefixed with task_).
^task_"task_AbC123xYz456"
Body
Request body for updating a task. Only include fields you want to change.
Updated display name.
Updated JSON Schema for task run input.
Updated JSON Schema for task run output.
Updated agent instructions.
Updated storage configuration.
Task-level settings. Supports timeout_seconds and sensitive. When included, settings replaces the task's settings as a whole, so send every key you want to keep.
Show child attributes
Show child attributes
Response
OK
A task object. Tasks are defined actions an agent can perform.
Unique identifier for the task, prefixed with task_.
^task_"task_AbC123xYz456"
Always task.
Display name for the task.
Instructions for the agent describing what this task should do.
Task status: learning, test, or live.
The agent this task belongs to. Prefixed with agt_.
JSON Schema defining the expected input for task runs.
JSON Schema defining the expected output for task runs.
Storage configuration for file capture during task execution.
Task-level settings. Supports timeout_seconds (the per-run timeout, in seconds) and sensitive (when true, the Console hides the live browser view, agent reasoning, and screenshots for this task's runs). null when no settings were set on the task, in which case runs use your plan's default timeout and the task is not sensitive.
ISO 8601 timestamp of when the resource was created.
"2026-08-24T12:00:00Z"
ISO 8601 timestamp of when the resource was last updated.
"2026-08-24T12:00:00Z"
Unique identifier for the API request. Include this when contacting support.
Was this page helpful?