Skip to main content
PATCH
/
v1
/
teams
/
{team_id}
/
tasks
/
{task_id}
Update Task
curl --request PATCH \
  --url https://api.dataraven.io/v1/teams/{team_id}/tasks/{task_id} \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "name": "<string>",
  "description": "<string>",
  "source_location_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "destination_location_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "source_path": "<string>",
  "destination_path": "<string>",
  "rclone_config": {
    "bwlimit": "100M",
    "transfers": 4,
    "checkers": 8,
    "filters": {
      "filter": [
        "<string>"
      ],
      "max_age": "24h",
      "min_age": "24h",
      "max_size": "100M",
      "min_size": "1K"
    },
    "checksum": true,
    "size_only": true,
    "ignore_size": true,
    "modify_window": "1s",
    "update": true,
    "use_server_modtime": true,
    "no_update_modtime": true,
    "ignore_existing": true,
    "no_traverse": true,
    "max_depth": -1,
    "max_transfer": "1G",
    "max_backlog": 10000,
    "fast_list": true,
    "buffer_size": "16M",
    "immutable": true,
    "metadata": true,
    "s3_no_check_bucket": true,
    "s3_chunk_size": "5M",
    "s3_upload_concurrency": 4,
    "s3_max_upload_parts": 10000,
    "no_check_dest": true,
    "b2_hard_delete": true,
    "b2_upload_concurrency": 4,
    "azureblob_upload_concurrency": 16,
    "disable_http2": true,
    "multi_thread_streams": 4,
    "multi_thread_cutoff": "128M",
    "multi_thread_chunk_size": "64M",
    "tpslimit": 0,
    "tpslimit_burst": 1
  },
  "is_scheduled": true,
  "schedule_cron": "<string>"
}
'
import requests

url = "https://api.dataraven.io/v1/teams/{team_id}/tasks/{task_id}"

payload = {
    "name": "<string>",
    "description": "<string>",
    "source_location_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
    "destination_location_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
    "source_path": "<string>",
    "destination_path": "<string>",
    "rclone_config": {
        "bwlimit": "100M",
        "transfers": 4,
        "checkers": 8,
        "filters": {
            "filter": ["<string>"],
            "max_age": "24h",
            "min_age": "24h",
            "max_size": "100M",
            "min_size": "1K"
        },
        "checksum": True,
        "size_only": True,
        "ignore_size": True,
        "modify_window": "1s",
        "update": True,
        "use_server_modtime": True,
        "no_update_modtime": True,
        "ignore_existing": True,
        "no_traverse": True,
        "max_depth": -1,
        "max_transfer": "1G",
        "max_backlog": 10000,
        "fast_list": True,
        "buffer_size": "16M",
        "immutable": True,
        "metadata": True,
        "s3_no_check_bucket": True,
        "s3_chunk_size": "5M",
        "s3_upload_concurrency": 4,
        "s3_max_upload_parts": 10000,
        "no_check_dest": True,
        "b2_hard_delete": True,
        "b2_upload_concurrency": 4,
        "azureblob_upload_concurrency": 16,
        "disable_http2": True,
        "multi_thread_streams": 4,
        "multi_thread_cutoff": "128M",
        "multi_thread_chunk_size": "64M",
        "tpslimit": 0,
        "tpslimit_burst": 1
    },
    "is_scheduled": True,
    "schedule_cron": "<string>"
}
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>',
    description: '<string>',
    source_location_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
    destination_location_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
    source_path: '<string>',
    destination_path: '<string>',
    rclone_config: {
      bwlimit: '100M',
      transfers: 4,
      checkers: 8,
      filters: {
        filter: ['<string>'],
        max_age: '24h',
        min_age: '24h',
        max_size: '100M',
        min_size: '1K'
      },
      checksum: true,
      size_only: true,
      ignore_size: true,
      modify_window: '1s',
      update: true,
      use_server_modtime: true,
      no_update_modtime: true,
      ignore_existing: true,
      no_traverse: true,
      max_depth: -1,
      max_transfer: '1G',
      max_backlog: 10000,
      fast_list: true,
      buffer_size: '16M',
      immutable: true,
      metadata: true,
      s3_no_check_bucket: true,
      s3_chunk_size: '5M',
      s3_upload_concurrency: 4,
      s3_max_upload_parts: 10000,
      no_check_dest: true,
      b2_hard_delete: true,
      b2_upload_concurrency: 4,
      azureblob_upload_concurrency: 16,
      disable_http2: true,
      multi_thread_streams: 4,
      multi_thread_cutoff: '128M',
      multi_thread_chunk_size: '64M',
      tpslimit: 0,
      tpslimit_burst: 1
    },
    is_scheduled: true,
    schedule_cron: '<string>'
  })
};

fetch('https://api.dataraven.io/v1/teams/{team_id}/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.dataraven.io/v1/teams/{team_id}/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>',
    'description' => '<string>',
    'source_location_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
    'destination_location_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
    'source_path' => '<string>',
    'destination_path' => '<string>',
    'rclone_config' => [
        'bwlimit' => '100M',
        'transfers' => 4,
        'checkers' => 8,
        'filters' => [
                'filter' => [
                                '<string>'
                ],
                'max_age' => '24h',
                'min_age' => '24h',
                'max_size' => '100M',
                'min_size' => '1K'
        ],
        'checksum' => true,
        'size_only' => true,
        'ignore_size' => true,
        'modify_window' => '1s',
        'update' => true,
        'use_server_modtime' => true,
        'no_update_modtime' => true,
        'ignore_existing' => true,
        'no_traverse' => true,
        'max_depth' => -1,
        'max_transfer' => '1G',
        'max_backlog' => 10000,
        'fast_list' => true,
        'buffer_size' => '16M',
        'immutable' => true,
        'metadata' => true,
        's3_no_check_bucket' => true,
        's3_chunk_size' => '5M',
        's3_upload_concurrency' => 4,
        's3_max_upload_parts' => 10000,
        'no_check_dest' => true,
        'b2_hard_delete' => true,
        'b2_upload_concurrency' => 4,
        'azureblob_upload_concurrency' => 16,
        'disable_http2' => true,
        'multi_thread_streams' => 4,
        'multi_thread_cutoff' => '128M',
        'multi_thread_chunk_size' => '64M',
        'tpslimit' => 0,
        'tpslimit_burst' => 1
    ],
    'is_scheduled' => true,
    'schedule_cron' => '<string>'
  ]),
  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.dataraven.io/v1/teams/{team_id}/tasks/{task_id}"

	payload := strings.NewReader("{\n  \"name\": \"<string>\",\n  \"description\": \"<string>\",\n  \"source_location_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n  \"destination_location_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n  \"source_path\": \"<string>\",\n  \"destination_path\": \"<string>\",\n  \"rclone_config\": {\n    \"bwlimit\": \"100M\",\n    \"transfers\": 4,\n    \"checkers\": 8,\n    \"filters\": {\n      \"filter\": [\n        \"<string>\"\n      ],\n      \"max_age\": \"24h\",\n      \"min_age\": \"24h\",\n      \"max_size\": \"100M\",\n      \"min_size\": \"1K\"\n    },\n    \"checksum\": true,\n    \"size_only\": true,\n    \"ignore_size\": true,\n    \"modify_window\": \"1s\",\n    \"update\": true,\n    \"use_server_modtime\": true,\n    \"no_update_modtime\": true,\n    \"ignore_existing\": true,\n    \"no_traverse\": true,\n    \"max_depth\": -1,\n    \"max_transfer\": \"1G\",\n    \"max_backlog\": 10000,\n    \"fast_list\": true,\n    \"buffer_size\": \"16M\",\n    \"immutable\": true,\n    \"metadata\": true,\n    \"s3_no_check_bucket\": true,\n    \"s3_chunk_size\": \"5M\",\n    \"s3_upload_concurrency\": 4,\n    \"s3_max_upload_parts\": 10000,\n    \"no_check_dest\": true,\n    \"b2_hard_delete\": true,\n    \"b2_upload_concurrency\": 4,\n    \"azureblob_upload_concurrency\": 16,\n    \"disable_http2\": true,\n    \"multi_thread_streams\": 4,\n    \"multi_thread_cutoff\": \"128M\",\n    \"multi_thread_chunk_size\": \"64M\",\n    \"tpslimit\": 0,\n    \"tpslimit_burst\": 1\n  },\n  \"is_scheduled\": true,\n  \"schedule_cron\": \"<string>\"\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.dataraven.io/v1/teams/{team_id}/tasks/{task_id}")
  .header("Authorization", "Bearer <token>")
  .header("Content-Type", "application/json")
  .body("{\n  \"name\": \"<string>\",\n  \"description\": \"<string>\",\n  \"source_location_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n  \"destination_location_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n  \"source_path\": \"<string>\",\n  \"destination_path\": \"<string>\",\n  \"rclone_config\": {\n    \"bwlimit\": \"100M\",\n    \"transfers\": 4,\n    \"checkers\": 8,\n    \"filters\": {\n      \"filter\": [\n        \"<string>\"\n      ],\n      \"max_age\": \"24h\",\n      \"min_age\": \"24h\",\n      \"max_size\": \"100M\",\n      \"min_size\": \"1K\"\n    },\n    \"checksum\": true,\n    \"size_only\": true,\n    \"ignore_size\": true,\n    \"modify_window\": \"1s\",\n    \"update\": true,\n    \"use_server_modtime\": true,\n    \"no_update_modtime\": true,\n    \"ignore_existing\": true,\n    \"no_traverse\": true,\n    \"max_depth\": -1,\n    \"max_transfer\": \"1G\",\n    \"max_backlog\": 10000,\n    \"fast_list\": true,\n    \"buffer_size\": \"16M\",\n    \"immutable\": true,\n    \"metadata\": true,\n    \"s3_no_check_bucket\": true,\n    \"s3_chunk_size\": \"5M\",\n    \"s3_upload_concurrency\": 4,\n    \"s3_max_upload_parts\": 10000,\n    \"no_check_dest\": true,\n    \"b2_hard_delete\": true,\n    \"b2_upload_concurrency\": 4,\n    \"azureblob_upload_concurrency\": 16,\n    \"disable_http2\": true,\n    \"multi_thread_streams\": 4,\n    \"multi_thread_cutoff\": \"128M\",\n    \"multi_thread_chunk_size\": \"64M\",\n    \"tpslimit\": 0,\n    \"tpslimit_burst\": 1\n  },\n  \"is_scheduled\": true,\n  \"schedule_cron\": \"<string>\"\n}")
  .asString();
require 'uri'
require 'net/http'

url = URI("https://api.dataraven.io/v1/teams/{team_id}/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  \"description\": \"<string>\",\n  \"source_location_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n  \"destination_location_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n  \"source_path\": \"<string>\",\n  \"destination_path\": \"<string>\",\n  \"rclone_config\": {\n    \"bwlimit\": \"100M\",\n    \"transfers\": 4,\n    \"checkers\": 8,\n    \"filters\": {\n      \"filter\": [\n        \"<string>\"\n      ],\n      \"max_age\": \"24h\",\n      \"min_age\": \"24h\",\n      \"max_size\": \"100M\",\n      \"min_size\": \"1K\"\n    },\n    \"checksum\": true,\n    \"size_only\": true,\n    \"ignore_size\": true,\n    \"modify_window\": \"1s\",\n    \"update\": true,\n    \"use_server_modtime\": true,\n    \"no_update_modtime\": true,\n    \"ignore_existing\": true,\n    \"no_traverse\": true,\n    \"max_depth\": -1,\n    \"max_transfer\": \"1G\",\n    \"max_backlog\": 10000,\n    \"fast_list\": true,\n    \"buffer_size\": \"16M\",\n    \"immutable\": true,\n    \"metadata\": true,\n    \"s3_no_check_bucket\": true,\n    \"s3_chunk_size\": \"5M\",\n    \"s3_upload_concurrency\": 4,\n    \"s3_max_upload_parts\": 10000,\n    \"no_check_dest\": true,\n    \"b2_hard_delete\": true,\n    \"b2_upload_concurrency\": 4,\n    \"azureblob_upload_concurrency\": 16,\n    \"disable_http2\": true,\n    \"multi_thread_streams\": 4,\n    \"multi_thread_cutoff\": \"128M\",\n    \"multi_thread_chunk_size\": \"64M\",\n    \"tpslimit\": 0,\n    \"tpslimit_burst\": 1\n  },\n  \"is_scheduled\": true,\n  \"schedule_cron\": \"<string>\"\n}"

response = http.request(request)
puts response.read_body
{
  "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "team_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "created_by": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "name": "<string>",
  "source_location_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "source_location_name": "<string>",
  "source_location_bucket": "<string>",
  "source_location_type": "<string>",
  "destination_location_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "destination_location_name": "<string>",
  "destination_location_bucket": "<string>",
  "destination_location_type": "<string>",
  "is_scheduled": true,
  "created_at": "2023-11-07T05:31:56Z",
  "updated_at": "2023-11-07T05:31:56Z",
  "description": "<string>",
  "source_path": "/prod/data",
  "destination_path": "/backup",
  "schedule_cron": "<string>",
  "last_scheduled_run_at": "2023-11-07T05:31:56Z",
  "rclone_config": {
    "bwlimit": "100M",
    "transfers": 4,
    "checkers": 8,
    "filters": {
      "filter": [
        "<string>"
      ],
      "max_age": "24h",
      "min_age": "24h",
      "max_size": "100M",
      "min_size": "1K"
    },
    "checksum": true,
    "size_only": true,
    "ignore_size": true,
    "modify_window": "1s",
    "update": true,
    "use_server_modtime": true,
    "no_update_modtime": true,
    "ignore_existing": true,
    "no_traverse": true,
    "max_depth": -1,
    "max_transfer": "1G",
    "max_backlog": 10000,
    "fast_list": true,
    "buffer_size": "16M",
    "immutable": true,
    "metadata": true,
    "s3_no_check_bucket": true,
    "s3_chunk_size": "5M",
    "s3_upload_concurrency": 4,
    "s3_max_upload_parts": 10000,
    "no_check_dest": true,
    "b2_hard_delete": true,
    "b2_upload_concurrency": 4,
    "azureblob_upload_concurrency": 16,
    "disable_http2": true,
    "multi_thread_streams": 4,
    "multi_thread_cutoff": "128M",
    "multi_thread_chunk_size": "64M",
    "tpslimit": 0,
    "tpslimit_burst": 1
  }
}
{
  "detail": [
    {
      "loc": [
        "<string>"
      ],
      "msg": "<string>",
      "type": "<string>",
      "input": "<unknown>",
      "ctx": {}
    }
  ]
}

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Path Parameters

task_id
string<uuid>
required
team_id
string<uuid>
required

Body

application/json

Schema for updating an existing task.

All fields are optional to support partial updates.

name
string | null
Required string length: 1 - 255
description
string | null
Maximum string length: 2000
task_type
enum<string> | null

Task operation types.

Available options:
copy,
sync
source_location_id
string<uuid> | null
destination_location_id
string<uuid> | null
source_path
string | null
Maximum string length: 1000
destination_path
string | null
Maximum string length: 1000
rclone_config
RCloneConfig · object | null

RClone configuration options for INPUT validation (TaskCreate/TaskUpdate).

This model validates user input and rejects unknown flags to prevent injection of untrusted rclone flags. Provider-specific defaults are injected at the service layer AFTER input validation.

See: https://rclone.org/flags/ for complete flag reference.

is_scheduled
boolean | null
schedule_cron
string | null
Maximum string length: 100

Response

Successful Response

Full task response with rclone config (for CRUD and detail endpoints).

id
string<uuid>
required
team_id
string<uuid>
required
created_by
string<uuid>
required
name
string
required
task_type
enum<string>
required

Task operation types.

Available options:
copy,
sync
source_location_id
string<uuid>
required
source_location_name
string
required

Source location display name

source_location_bucket
string
required

Source location bucket name

source_location_type
string
required

Source location provider type

destination_location_id
string<uuid>
required
destination_location_name
string
required

Destination location display name

destination_location_bucket
string
required

Destination location bucket name

destination_location_type
string
required

Destination location provider type

is_scheduled
boolean
required
status
enum<string>
required

Task definition status.

Available options:
enabled,
disabled,
archived
created_at
string<date-time>
required
updated_at
string<date-time>
required
description
string | null
Maximum string length: 2000
source_path
string | null

Path within source bucket

Maximum string length: 1000
Example:

"/prod/data"

destination_path
string | null

Path within destination bucket

Maximum string length: 1000
Example:

"/backup"

schedule_cron
string | null
Maximum string length: 100
last_scheduled_run_at
string<date-time> | null

Last scheduled execution time

rclone_config
RCloneConfig · object

RClone configuration options (includes provider-specific defaults)