Update a task
curl --request PUT \
--url https://api.salesive.com/api/v1/tasks/{id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"title": "Restock best-sellers (updated)",
"status": "in progress",
"dueDate": "2026-07-05T17:00:00.000Z"
}
'import requests
url = "https://api.salesive.com/api/v1/tasks/{id}"
payload = {
"title": "Restock best-sellers (updated)",
"status": "in progress",
"dueDate": "2026-07-05T17:00:00.000Z"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
title: 'Restock best-sellers (updated)',
status: 'in progress',
dueDate: '2026-07-05T17:00:00.000Z'
})
};
fetch('https://api.salesive.com/api/v1/tasks/{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.salesive.com/api/v1/tasks/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'title' => 'Restock best-sellers (updated)',
'status' => 'in progress',
'dueDate' => '2026-07-05T17:00:00.000Z'
]),
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.salesive.com/api/v1/tasks/{id}"
payload := strings.NewReader("{\n \"title\": \"Restock best-sellers (updated)\",\n \"status\": \"in progress\",\n \"dueDate\": \"2026-07-05T17:00:00.000Z\"\n}")
req, _ := http.NewRequest("PUT", 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.put("https://api.salesive.com/api/v1/tasks/{id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"title\": \"Restock best-sellers (updated)\",\n \"status\": \"in progress\",\n \"dueDate\": \"2026-07-05T17:00:00.000Z\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.salesive.com/api/v1/tasks/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"title\": \"Restock best-sellers (updated)\",\n \"status\": \"in progress\",\n \"dueDate\": \"2026-07-05T17:00:00.000Z\"\n}"
response = http.request(request)
puts response.read_body{
"status": 200,
"success": true,
"message": "Task updated",
"data": {
"_id": "66c1f0a3c2d4e5f6a7b8c9d0",
"title": "Restock best-sellers (updated)",
"details": "Reorder the top 10 SKUs before the weekend.",
"dueDate": "2026-07-05T17:00:00.000Z",
"status": "in progress",
"recurring": "weekly",
"recurringSchedule": {
"every": 1,
"until": "2026-12-31T00:00:00.000Z"
},
"isAI": false,
"assignees": [
"66a0c1d2e3f4a5b6c7d8e9f0"
],
"shop": "6680aabbccddeeff00112200",
"createdBy": "66a0c1d2e3f4a5b6c7d8e9f0",
"createdAt": "2026-06-21T10:30:00.000Z",
"updatedAt": "2026-06-21T11:45:00.000Z"
}
}{
"status": 401,
"success": false,
"message": "Authentication required",
"data": null
}{
"status": 403,
"success": false,
"message": "Insufficient scope",
"data": null
}{
"status": 404,
"success": false,
"message": "Resource not found",
"data": null
}Tasks
Update a task
Update an existing task; all fields are optional. Requires the WRITE_TASKS scope.
PUT
/
tasks
/
{id}
Update a task
curl --request PUT \
--url https://api.salesive.com/api/v1/tasks/{id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"title": "Restock best-sellers (updated)",
"status": "in progress",
"dueDate": "2026-07-05T17:00:00.000Z"
}
'import requests
url = "https://api.salesive.com/api/v1/tasks/{id}"
payload = {
"title": "Restock best-sellers (updated)",
"status": "in progress",
"dueDate": "2026-07-05T17:00:00.000Z"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
title: 'Restock best-sellers (updated)',
status: 'in progress',
dueDate: '2026-07-05T17:00:00.000Z'
})
};
fetch('https://api.salesive.com/api/v1/tasks/{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.salesive.com/api/v1/tasks/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'title' => 'Restock best-sellers (updated)',
'status' => 'in progress',
'dueDate' => '2026-07-05T17:00:00.000Z'
]),
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.salesive.com/api/v1/tasks/{id}"
payload := strings.NewReader("{\n \"title\": \"Restock best-sellers (updated)\",\n \"status\": \"in progress\",\n \"dueDate\": \"2026-07-05T17:00:00.000Z\"\n}")
req, _ := http.NewRequest("PUT", 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.put("https://api.salesive.com/api/v1/tasks/{id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"title\": \"Restock best-sellers (updated)\",\n \"status\": \"in progress\",\n \"dueDate\": \"2026-07-05T17:00:00.000Z\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.salesive.com/api/v1/tasks/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"title\": \"Restock best-sellers (updated)\",\n \"status\": \"in progress\",\n \"dueDate\": \"2026-07-05T17:00:00.000Z\"\n}"
response = http.request(request)
puts response.read_body{
"status": 200,
"success": true,
"message": "Task updated",
"data": {
"_id": "66c1f0a3c2d4e5f6a7b8c9d0",
"title": "Restock best-sellers (updated)",
"details": "Reorder the top 10 SKUs before the weekend.",
"dueDate": "2026-07-05T17:00:00.000Z",
"status": "in progress",
"recurring": "weekly",
"recurringSchedule": {
"every": 1,
"until": "2026-12-31T00:00:00.000Z"
},
"isAI": false,
"assignees": [
"66a0c1d2e3f4a5b6c7d8e9f0"
],
"shop": "6680aabbccddeeff00112200",
"createdBy": "66a0c1d2e3f4a5b6c7d8e9f0",
"createdAt": "2026-06-21T10:30:00.000Z",
"updatedAt": "2026-06-21T11:45:00.000Z"
}
}{
"status": 401,
"success": false,
"message": "Authentication required",
"data": null
}{
"status": 403,
"success": false,
"message": "Insufficient scope",
"data": null
}{
"status": 404,
"success": false,
"message": "Resource not found",
"data": null
}Updates only the task fields you supply and returns the updated task. The store is bound to your app token server-side — never send a shop id.
Authorizations
Installed-app access token (prefix app_), issued by the OAuth install flow. The store is bound to the token server-side — never send a shop id.
Path Parameters
The task's id (Mongo ObjectId).
Body
application/json
Task title.
Free-text task details.
When the task is due (ISO 8601), or null.
Task status.
Available options:
to do, in progress, done, skipped Recurrence cadence.
Available options:
none, daily, weekly, monthly Recurrence schedule. Required when recurring is daily, weekly or monthly.
Show child attributes
Show child attributes
Whether the task was generated by AI.
User ObjectId strings assigned to the task.
Response
The updated task.
Standard Salesive response envelope. The operation-specific payload is carried in data.
Was this page helpful?
⌘I

