Confirm Rclone Import
curl --request POST \
--url https://api.dataraven.io/v1/teams/{team_id}/rclone-import/confirm \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"remotes": [
{
"name": "<string>",
"bucket_name": "<string>",
"credentials": {},
"region": "<string>",
"endpoint_url": "<string>"
}
]
}
'import requests
url = "https://api.dataraven.io/v1/teams/{team_id}/rclone-import/confirm"
payload = { "remotes": [
{
"name": "<string>",
"bucket_name": "<string>",
"credentials": {},
"region": "<string>",
"endpoint_url": "<string>"
}
] }
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({
remotes: [
{
name: '<string>',
bucket_name: '<string>',
credentials: {},
region: '<string>',
endpoint_url: '<string>'
}
]
})
};
fetch('https://api.dataraven.io/v1/teams/{team_id}/rclone-import/confirm', 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}/rclone-import/confirm",
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([
'remotes' => [
[
'name' => '<string>',
'bucket_name' => '<string>',
'credentials' => [
],
'region' => '<string>',
'endpoint_url' => '<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}/rclone-import/confirm"
payload := strings.NewReader("{\n \"remotes\": [\n {\n \"name\": \"<string>\",\n \"bucket_name\": \"<string>\",\n \"credentials\": {},\n \"region\": \"<string>\",\n \"endpoint_url\": \"<string>\"\n }\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.dataraven.io/v1/teams/{team_id}/rclone-import/confirm")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"remotes\": [\n {\n \"name\": \"<string>\",\n \"bucket_name\": \"<string>\",\n \"credentials\": {},\n \"region\": \"<string>\",\n \"endpoint_url\": \"<string>\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.dataraven.io/v1/teams/{team_id}/rclone-import/confirm")
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 \"remotes\": [\n {\n \"name\": \"<string>\",\n \"bucket_name\": \"<string>\",\n \"credentials\": {},\n \"region\": \"<string>\",\n \"endpoint_url\": \"<string>\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"created": [
{
"remote_name": "<string>",
"secret_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"secret_name": "<string>",
"location_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"location_name": "<string>",
"location_type": "s3"
}
],
"errors": [
{
"remote_name": "<string>",
"message": "<string>"
}
]
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Rclone Import
Confirm Rclone Import
Confirm and execute the rclone.conf import, creating secrets and locations.
Required Role: ADMIN or OWNER
This is step 2 of the import workflow. Send the confirmed list of remotes (with any user modifications like name changes or bucket names) along with the actual credential values.
For each remote, this endpoint creates:
- A Secret with credentials stored in AWS SSM Parameter Store
- A Location linked to that secret
Remotes are processed independently - if one fails, others still succeed.
Request body:
{
"remotes": [
{
"name": "My S3 Remote",
"location_type": "s3",
"auth_method": "s3_access_key",
"region": "us-east-1",
"bucket_name": "my-bucket",
"credentials": {
"access_key_id": "AKIA...",
"secret_access_key": "wJal..."
}
}
]
}
Returns created resource pairs and any errors encountered.
POST
/
v1
/
teams
/
{team_id}
/
rclone-import
/
confirm
Confirm Rclone Import
curl --request POST \
--url https://api.dataraven.io/v1/teams/{team_id}/rclone-import/confirm \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"remotes": [
{
"name": "<string>",
"bucket_name": "<string>",
"credentials": {},
"region": "<string>",
"endpoint_url": "<string>"
}
]
}
'import requests
url = "https://api.dataraven.io/v1/teams/{team_id}/rclone-import/confirm"
payload = { "remotes": [
{
"name": "<string>",
"bucket_name": "<string>",
"credentials": {},
"region": "<string>",
"endpoint_url": "<string>"
}
] }
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({
remotes: [
{
name: '<string>',
bucket_name: '<string>',
credentials: {},
region: '<string>',
endpoint_url: '<string>'
}
]
})
};
fetch('https://api.dataraven.io/v1/teams/{team_id}/rclone-import/confirm', 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}/rclone-import/confirm",
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([
'remotes' => [
[
'name' => '<string>',
'bucket_name' => '<string>',
'credentials' => [
],
'region' => '<string>',
'endpoint_url' => '<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}/rclone-import/confirm"
payload := strings.NewReader("{\n \"remotes\": [\n {\n \"name\": \"<string>\",\n \"bucket_name\": \"<string>\",\n \"credentials\": {},\n \"region\": \"<string>\",\n \"endpoint_url\": \"<string>\"\n }\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.dataraven.io/v1/teams/{team_id}/rclone-import/confirm")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"remotes\": [\n {\n \"name\": \"<string>\",\n \"bucket_name\": \"<string>\",\n \"credentials\": {},\n \"region\": \"<string>\",\n \"endpoint_url\": \"<string>\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.dataraven.io/v1/teams/{team_id}/rclone-import/confirm")
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 \"remotes\": [\n {\n \"name\": \"<string>\",\n \"bucket_name\": \"<string>\",\n \"credentials\": {},\n \"region\": \"<string>\",\n \"endpoint_url\": \"<string>\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"created": [
{
"remote_name": "<string>",
"secret_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"secret_name": "<string>",
"location_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"location_name": "<string>",
"location_type": "s3"
}
],
"errors": [
{
"remote_name": "<string>",
"message": "<string>"
}
]
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
Body
application/json
Request to import parsed rclone remotes (step 2 - confirm).
List of remotes to import (from the parse preview, with user edits)
Minimum array length:
1Show child attributes
Show child attributes