Create a task
curl --request POST \
--url https://api.salesive.com/api/v1/tasks \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"title": "Restock best-sellers",
"details": "Reorder the top 10 SKUs before the weekend.",
"dueDate": "2026-07-03T17:00:00.000Z",
"status": "to do",
"recurring": "weekly",
"recurringSchedule": {
"every": 1,
"until": "2026-12-31T00:00:00.000Z"
},
"isAI": false,
"assignees": [
"66a0c1d2e3f4a5b6c7d8e9f0"
]
}
'import requests
url = "https://api.salesive.com/api/v1/tasks"
payload = {
"title": "Restock best-sellers",
"details": "Reorder the top 10 SKUs before the weekend.",
"dueDate": "2026-07-03T17:00:00.000Z",
"status": "to do",
"recurring": "weekly",
"recurringSchedule": {
"every": 1,
"until": "2026-12-31T00:00:00.000Z"
},
"isAI": False,
"assignees": ["66a0c1d2e3f4a5b6c7d8e9f0"]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
title: 'Restock best-sellers',
details: 'Reorder the top 10 SKUs before the weekend.',
dueDate: '2026-07-03T17:00:00.000Z',
status: 'to do',
recurring: 'weekly',
recurringSchedule: {every: 1, until: '2026-12-31T00:00:00.000Z'},
isAI: false,
assignees: ['66a0c1d2e3f4a5b6c7d8e9f0']
})
};
fetch('https://api.salesive.com/api/v1/tasks', 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",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'title' => 'Restock best-sellers',
'details' => 'Reorder the top 10 SKUs before the weekend.',
'dueDate' => '2026-07-03T17:00:00.000Z',
'status' => 'to do',
'recurring' => 'weekly',
'recurringSchedule' => [
'every' => 1,
'until' => '2026-12-31T00:00:00.000Z'
],
'isAI' => false,
'assignees' => [
'66a0c1d2e3f4a5b6c7d8e9f0'
]
]),
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"
payload := strings.NewReader("{\n \"title\": \"Restock best-sellers\",\n \"details\": \"Reorder the top 10 SKUs before the weekend.\",\n \"dueDate\": \"2026-07-03T17:00:00.000Z\",\n \"status\": \"to do\",\n \"recurring\": \"weekly\",\n \"recurringSchedule\": {\n \"every\": 1,\n \"until\": \"2026-12-31T00:00:00.000Z\"\n },\n \"isAI\": false,\n \"assignees\": [\n \"66a0c1d2e3f4a5b6c7d8e9f0\"\n ]\n}")
req, _ := http.NewRequest("POST", 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.post("https://api.salesive.com/api/v1/tasks")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"title\": \"Restock best-sellers\",\n \"details\": \"Reorder the top 10 SKUs before the weekend.\",\n \"dueDate\": \"2026-07-03T17:00:00.000Z\",\n \"status\": \"to do\",\n \"recurring\": \"weekly\",\n \"recurringSchedule\": {\n \"every\": 1,\n \"until\": \"2026-12-31T00:00:00.000Z\"\n },\n \"isAI\": false,\n \"assignees\": [\n \"66a0c1d2e3f4a5b6c7d8e9f0\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.salesive.com/api/v1/tasks")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"title\": \"Restock best-sellers\",\n \"details\": \"Reorder the top 10 SKUs before the weekend.\",\n \"dueDate\": \"2026-07-03T17:00:00.000Z\",\n \"status\": \"to do\",\n \"recurring\": \"weekly\",\n \"recurringSchedule\": {\n \"every\": 1,\n \"until\": \"2026-12-31T00:00:00.000Z\"\n },\n \"isAI\": false,\n \"assignees\": [\n \"66a0c1d2e3f4a5b6c7d8e9f0\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"status": 201,
"success": true,
"message": "Task created",
"data": {
"_id": "66c1f0a3c2d4e5f6a7b8c9d0",
"title": "Restock best-sellers",
"details": "Reorder the top 10 SKUs before the weekend.",
"dueDate": "2026-07-03T17:00:00.000Z",
"status": "to do",
"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-21T10:30:00.000Z"
}
}{
"status": 401,
"success": false,
"message": "Authentication required",
"data": null
}{
"status": 403,
"success": false,
"message": "Insufficient scope",
"data": null
}Tasks
Create a task
Create a new task, optionally recurring. Requires the WRITE_TASKS scope.
POST
/
tasks
Create a task
curl --request POST \
--url https://api.salesive.com/api/v1/tasks \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"title": "Restock best-sellers",
"details": "Reorder the top 10 SKUs before the weekend.",
"dueDate": "2026-07-03T17:00:00.000Z",
"status": "to do",
"recurring": "weekly",
"recurringSchedule": {
"every": 1,
"until": "2026-12-31T00:00:00.000Z"
},
"isAI": false,
"assignees": [
"66a0c1d2e3f4a5b6c7d8e9f0"
]
}
'import requests
url = "https://api.salesive.com/api/v1/tasks"
payload = {
"title": "Restock best-sellers",
"details": "Reorder the top 10 SKUs before the weekend.",
"dueDate": "2026-07-03T17:00:00.000Z",
"status": "to do",
"recurring": "weekly",
"recurringSchedule": {
"every": 1,
"until": "2026-12-31T00:00:00.000Z"
},
"isAI": False,
"assignees": ["66a0c1d2e3f4a5b6c7d8e9f0"]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
title: 'Restock best-sellers',
details: 'Reorder the top 10 SKUs before the weekend.',
dueDate: '2026-07-03T17:00:00.000Z',
status: 'to do',
recurring: 'weekly',
recurringSchedule: {every: 1, until: '2026-12-31T00:00:00.000Z'},
isAI: false,
assignees: ['66a0c1d2e3f4a5b6c7d8e9f0']
})
};
fetch('https://api.salesive.com/api/v1/tasks', 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",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'title' => 'Restock best-sellers',
'details' => 'Reorder the top 10 SKUs before the weekend.',
'dueDate' => '2026-07-03T17:00:00.000Z',
'status' => 'to do',
'recurring' => 'weekly',
'recurringSchedule' => [
'every' => 1,
'until' => '2026-12-31T00:00:00.000Z'
],
'isAI' => false,
'assignees' => [
'66a0c1d2e3f4a5b6c7d8e9f0'
]
]),
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"
payload := strings.NewReader("{\n \"title\": \"Restock best-sellers\",\n \"details\": \"Reorder the top 10 SKUs before the weekend.\",\n \"dueDate\": \"2026-07-03T17:00:00.000Z\",\n \"status\": \"to do\",\n \"recurring\": \"weekly\",\n \"recurringSchedule\": {\n \"every\": 1,\n \"until\": \"2026-12-31T00:00:00.000Z\"\n },\n \"isAI\": false,\n \"assignees\": [\n \"66a0c1d2e3f4a5b6c7d8e9f0\"\n ]\n}")
req, _ := http.NewRequest("POST", 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.post("https://api.salesive.com/api/v1/tasks")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"title\": \"Restock best-sellers\",\n \"details\": \"Reorder the top 10 SKUs before the weekend.\",\n \"dueDate\": \"2026-07-03T17:00:00.000Z\",\n \"status\": \"to do\",\n \"recurring\": \"weekly\",\n \"recurringSchedule\": {\n \"every\": 1,\n \"until\": \"2026-12-31T00:00:00.000Z\"\n },\n \"isAI\": false,\n \"assignees\": [\n \"66a0c1d2e3f4a5b6c7d8e9f0\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.salesive.com/api/v1/tasks")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"title\": \"Restock best-sellers\",\n \"details\": \"Reorder the top 10 SKUs before the weekend.\",\n \"dueDate\": \"2026-07-03T17:00:00.000Z\",\n \"status\": \"to do\",\n \"recurring\": \"weekly\",\n \"recurringSchedule\": {\n \"every\": 1,\n \"until\": \"2026-12-31T00:00:00.000Z\"\n },\n \"isAI\": false,\n \"assignees\": [\n \"66a0c1d2e3f4a5b6c7d8e9f0\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"status": 201,
"success": true,
"message": "Task created",
"data": {
"_id": "66c1f0a3c2d4e5f6a7b8c9d0",
"title": "Restock best-sellers",
"details": "Reorder the top 10 SKUs before the weekend.",
"dueDate": "2026-07-03T17:00:00.000Z",
"status": "to do",
"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-21T10:30:00.000Z"
}
}{
"status": 401,
"success": false,
"message": "Authentication required",
"data": null
}{
"status": 403,
"success": false,
"message": "Insufficient scope",
"data": null
}Creates a task;
recurringSchedule is required when recurring is daily, weekly or monthly. 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.
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 created task.
Standard Salesive response envelope. The operation-specific payload is carried in data.
Was this page helpful?
⌘I

