Duplicate a task's settings into a new task (no history).
curl --request POST \
--url https://api.parallellabs.app/api/v0/scheduled-tasks/{task_id}/duplicate \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"companyId": "<string>"
}
'import requests
url = "https://api.parallellabs.app/api/v0/scheduled-tasks/{task_id}/duplicate"
payload = { "companyId": "<string>" }
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({companyId: '<string>'})
};
fetch('https://api.parallellabs.app/api/v0/scheduled-tasks/{task_id}/duplicate', 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.parallellabs.app/api/v0/scheduled-tasks/{task_id}/duplicate",
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([
'companyId' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-API-Key: <api-key>"
],
]);
$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.parallellabs.app/api/v0/scheduled-tasks/{task_id}/duplicate"
payload := strings.NewReader("{\n \"companyId\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-API-Key", "<api-key>")
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.parallellabs.app/api/v0/scheduled-tasks/{task_id}/duplicate")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"companyId\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.parallellabs.app/api/v0/scheduled-tasks/{task_id}/duplicate")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-API-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"companyId\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"companyId": "<string>",
"userId": "<string>",
"employeeId": "<string>",
"name": "<string>",
"prompt": "<string>",
"scheduleType": "<string>",
"scheduledAt": "<string>",
"recurringConfig": {},
"contextSettings": {},
"timezone": "<string>",
"nextRunAt": "<string>",
"lastRunAt": "<string>",
"status": "<string>",
"runCount": 123,
"templateId": "<string>",
"templateVersion": 123,
"createdDate": "<string>",
"updatedDate": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}Scheduled Tasks
Duplicate a task's settings into a new task (no history).
The copy starts paused so it can be renamed and reviewed before it begins running.
POST
/
api
/
v0
/
scheduled-tasks
/
{task_id}
/
duplicate
Duplicate a task's settings into a new task (no history).
curl --request POST \
--url https://api.parallellabs.app/api/v0/scheduled-tasks/{task_id}/duplicate \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"companyId": "<string>"
}
'import requests
url = "https://api.parallellabs.app/api/v0/scheduled-tasks/{task_id}/duplicate"
payload = { "companyId": "<string>" }
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({companyId: '<string>'})
};
fetch('https://api.parallellabs.app/api/v0/scheduled-tasks/{task_id}/duplicate', 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.parallellabs.app/api/v0/scheduled-tasks/{task_id}/duplicate",
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([
'companyId' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-API-Key: <api-key>"
],
]);
$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.parallellabs.app/api/v0/scheduled-tasks/{task_id}/duplicate"
payload := strings.NewReader("{\n \"companyId\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-API-Key", "<api-key>")
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.parallellabs.app/api/v0/scheduled-tasks/{task_id}/duplicate")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"companyId\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.parallellabs.app/api/v0/scheduled-tasks/{task_id}/duplicate")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-API-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"companyId\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"companyId": "<string>",
"userId": "<string>",
"employeeId": "<string>",
"name": "<string>",
"prompt": "<string>",
"scheduleType": "<string>",
"scheduledAt": "<string>",
"recurringConfig": {},
"contextSettings": {},
"timezone": "<string>",
"nextRunAt": "<string>",
"lastRunAt": "<string>",
"status": "<string>",
"runCount": 123,
"templateId": "<string>",
"templateVersion": 123,
"createdDate": "<string>",
"updatedDate": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}Authorizations
CompanyApiKeyBearerAuth & CompanyId
Company API key - scoped to a specific company. Generate from the Integrations page in your dashboard.
Path Parameters
Body
application/json
Company scoping
Company scoping
Company ID. Optional when the API key is a company key.
Response
The new (paused) copy
Scheduled task
User who owns the task
one_time, recurring, or heartbeat
One-time tasks: ISO 8601 run time
Recurring or heartbeat schedule details
Tool and context settings for runs
ISO 8601 time of the next run, null when none
ISO 8601 time of the last run, null when never run
active, paused, or completed

