Bulk add secrets and folders
curl --request POST \
--url https://your-syteca-host/SytecaACB/api/bulk/add-secrets-and-folders \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"secrets": [
{
"name": "<string>",
"login": "<string>",
"description": "<string>",
"password": "<string>",
"parent_folder_id": 1,
"parent_folder_name": "<string>",
"domain": "<string>",
"computer_name": "<string>",
"url": "<string>",
"server": "<string>",
"computers": [
"<string>"
],
"record_activities": true,
"permissions": {
"inherit_users_and_roles": false,
"inherit_features": false,
"users": [
{
"name": "<string>",
"features": []
}
],
"user_groups": [
{
"name": "<string>",
"features": []
}
]
}
}
],
"folders": [
{
"name": "<string>",
"description": "<string>",
"parent_folder_id": 1,
"parent_folder_name": "<string>",
"permissions": {
"inherit_users_and_roles": false,
"inherit_features": false,
"users": [
{
"name": "<string>",
"features": []
}
],
"user_groups": [
{
"name": "<string>",
"features": []
}
]
}
}
]
}
'import requests
url = "https://your-syteca-host/SytecaACB/api/bulk/add-secrets-and-folders"
payload = {
"secrets": [
{
"name": "<string>",
"login": "<string>",
"description": "<string>",
"password": "<string>",
"parent_folder_id": 1,
"parent_folder_name": "<string>",
"domain": "<string>",
"computer_name": "<string>",
"url": "<string>",
"server": "<string>",
"computers": ["<string>"],
"record_activities": True,
"permissions": {
"inherit_users_and_roles": False,
"inherit_features": False,
"users": [
{
"name": "<string>",
"features": []
}
],
"user_groups": [
{
"name": "<string>",
"features": []
}
]
}
}
],
"folders": [
{
"name": "<string>",
"description": "<string>",
"parent_folder_id": 1,
"parent_folder_name": "<string>",
"permissions": {
"inherit_users_and_roles": False,
"inherit_features": False,
"users": [
{
"name": "<string>",
"features": []
}
],
"user_groups": [
{
"name": "<string>",
"features": []
}
]
}
}
]
}
headers = {
"Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
secrets: [
{
name: '<string>',
login: '<string>',
description: '<string>',
password: '<string>',
parent_folder_id: 1,
parent_folder_name: '<string>',
domain: '<string>',
computer_name: '<string>',
url: '<string>',
server: '<string>',
computers: ['<string>'],
record_activities: true,
permissions: {
inherit_users_and_roles: false,
inherit_features: false,
users: [{name: '<string>', features: []}],
user_groups: [{name: '<string>', features: []}]
}
}
],
folders: [
{
name: '<string>',
description: '<string>',
parent_folder_id: 1,
parent_folder_name: '<string>',
permissions: {
inherit_users_and_roles: false,
inherit_features: false,
users: [{name: '<string>', features: []}],
user_groups: [{name: '<string>', features: []}]
}
}
]
})
};
fetch('https://your-syteca-host/SytecaACB/api/bulk/add-secrets-and-folders', 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://your-syteca-host/SytecaACB/api/bulk/add-secrets-and-folders",
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([
'secrets' => [
[
'name' => '<string>',
'login' => '<string>',
'description' => '<string>',
'password' => '<string>',
'parent_folder_id' => 1,
'parent_folder_name' => '<string>',
'domain' => '<string>',
'computer_name' => '<string>',
'url' => '<string>',
'server' => '<string>',
'computers' => [
'<string>'
],
'record_activities' => true,
'permissions' => [
'inherit_users_and_roles' => false,
'inherit_features' => false,
'users' => [
[
'name' => '<string>',
'features' => [
]
]
],
'user_groups' => [
[
'name' => '<string>',
'features' => [
]
]
]
]
]
],
'folders' => [
[
'name' => '<string>',
'description' => '<string>',
'parent_folder_id' => 1,
'parent_folder_name' => '<string>',
'permissions' => [
'inherit_users_and_roles' => false,
'inherit_features' => false,
'users' => [
[
'name' => '<string>',
'features' => [
]
]
],
'user_groups' => [
[
'name' => '<string>',
'features' => [
]
]
]
]
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>",
"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://your-syteca-host/SytecaACB/api/bulk/add-secrets-and-folders"
payload := strings.NewReader("{\n \"secrets\": [\n {\n \"name\": \"<string>\",\n \"login\": \"<string>\",\n \"description\": \"<string>\",\n \"password\": \"<string>\",\n \"parent_folder_id\": 1,\n \"parent_folder_name\": \"<string>\",\n \"domain\": \"<string>\",\n \"computer_name\": \"<string>\",\n \"url\": \"<string>\",\n \"server\": \"<string>\",\n \"computers\": [\n \"<string>\"\n ],\n \"record_activities\": true,\n \"permissions\": {\n \"inherit_users_and_roles\": false,\n \"inherit_features\": false,\n \"users\": [\n {\n \"name\": \"<string>\",\n \"features\": []\n }\n ],\n \"user_groups\": [\n {\n \"name\": \"<string>\",\n \"features\": []\n }\n ]\n }\n }\n ],\n \"folders\": [\n {\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"parent_folder_id\": 1,\n \"parent_folder_name\": \"<string>\",\n \"permissions\": {\n \"inherit_users_and_roles\": false,\n \"inherit_features\": false,\n \"users\": [\n {\n \"name\": \"<string>\",\n \"features\": []\n }\n ],\n \"user_groups\": [\n {\n \"name\": \"<string>\",\n \"features\": []\n }\n ]\n }\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "<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://your-syteca-host/SytecaACB/api/bulk/add-secrets-and-folders")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"secrets\": [\n {\n \"name\": \"<string>\",\n \"login\": \"<string>\",\n \"description\": \"<string>\",\n \"password\": \"<string>\",\n \"parent_folder_id\": 1,\n \"parent_folder_name\": \"<string>\",\n \"domain\": \"<string>\",\n \"computer_name\": \"<string>\",\n \"url\": \"<string>\",\n \"server\": \"<string>\",\n \"computers\": [\n \"<string>\"\n ],\n \"record_activities\": true,\n \"permissions\": {\n \"inherit_users_and_roles\": false,\n \"inherit_features\": false,\n \"users\": [\n {\n \"name\": \"<string>\",\n \"features\": []\n }\n ],\n \"user_groups\": [\n {\n \"name\": \"<string>\",\n \"features\": []\n }\n ]\n }\n }\n ],\n \"folders\": [\n {\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"parent_folder_id\": 1,\n \"parent_folder_name\": \"<string>\",\n \"permissions\": {\n \"inherit_users_and_roles\": false,\n \"inherit_features\": false,\n \"users\": [\n {\n \"name\": \"<string>\",\n \"features\": []\n }\n ],\n \"user_groups\": [\n {\n \"name\": \"<string>\",\n \"features\": []\n }\n ]\n }\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://your-syteca-host/SytecaACB/api/bulk/add-secrets-and-folders")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"secrets\": [\n {\n \"name\": \"<string>\",\n \"login\": \"<string>\",\n \"description\": \"<string>\",\n \"password\": \"<string>\",\n \"parent_folder_id\": 1,\n \"parent_folder_name\": \"<string>\",\n \"domain\": \"<string>\",\n \"computer_name\": \"<string>\",\n \"url\": \"<string>\",\n \"server\": \"<string>\",\n \"computers\": [\n \"<string>\"\n ],\n \"record_activities\": true,\n \"permissions\": {\n \"inherit_users_and_roles\": false,\n \"inherit_features\": false,\n \"users\": [\n {\n \"name\": \"<string>\",\n \"features\": []\n }\n ],\n \"user_groups\": [\n {\n \"name\": \"<string>\",\n \"features\": []\n }\n ]\n }\n }\n ],\n \"folders\": [\n {\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"parent_folder_id\": 1,\n \"parent_folder_name\": \"<string>\",\n \"permissions\": {\n \"inherit_users_and_roles\": false,\n \"inherit_features\": false,\n \"users\": [\n {\n \"name\": \"<string>\",\n \"features\": []\n }\n ],\n \"user_groups\": [\n {\n \"name\": \"<string>\",\n \"features\": []\n }\n ]\n }\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"folders": [
{
"id": 123,
"name": "<string>",
"description": "<string>",
"parent_folder_id": 123,
"permissions": {
"inherit_users_and_roles": false,
"inherit_features": false,
"users": [
{
"name": "<string>",
"features": []
}
],
"user_groups": [
{
"name": "<string>",
"features": []
}
]
}
}
],
"secrets": [
{
"id": 123,
"name": "<string>",
"login": "<string>",
"description": "<string>",
"parent_folder_id": 123,
"domain": "<string>",
"computer_name": "<string>",
"url": "<string>",
"server": "<string>",
"computers": [
"<string>"
],
"file_transfer": {
"port": 22
},
"rotation": {
"enabled": true,
"rotate_every_min": 2
},
"record_activities": true,
"check_out": {
"enabled": true,
"rotate_on_checkin": true,
"auto_checkin_after_min": 60
},
"require_approval": {
"approver_users": [
"<string>"
],
"approver_user_groups": [
"<string>"
],
"require_owners_and_approvers": false,
"working_dates": {
"from": "2023-11-07T05:31:56Z",
"to": "2023-11-07T05:31:56Z"
},
"working_hours": {
"from": "<string>",
"to": "<string>"
},
"working_days": []
},
"permissions": {
"inherit_users_and_roles": false,
"inherit_features": false,
"users": [
{
"name": "<string>",
"features": []
}
],
"user_groups": [
{
"name": "<string>",
"features": []
}
]
},
"check_password": {
"enabled": false,
"check_every": 30
},
"last_password_check_utc": "2023-11-07T05:31:56Z",
"last_password_rotation_utc": "2023-11-07T05:31:56Z"
}
],
"errors": [
"<string>"
]
}{
"status": 123,
"message": "<string>"
}{
"status": 123,
"message": "<string>"
}Endpoints
Bulk Add Secrets and Folders
Syteca ACB REST API endpoint for bulk-creating multiple folders and secrets in a single call — the canonical migration and onboarding endpoint. Returns per-record success/error summary.
POST
/
api
/
bulk
/
add-secrets-and-folders
Bulk add secrets and folders
curl --request POST \
--url https://your-syteca-host/SytecaACB/api/bulk/add-secrets-and-folders \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"secrets": [
{
"name": "<string>",
"login": "<string>",
"description": "<string>",
"password": "<string>",
"parent_folder_id": 1,
"parent_folder_name": "<string>",
"domain": "<string>",
"computer_name": "<string>",
"url": "<string>",
"server": "<string>",
"computers": [
"<string>"
],
"record_activities": true,
"permissions": {
"inherit_users_and_roles": false,
"inherit_features": false,
"users": [
{
"name": "<string>",
"features": []
}
],
"user_groups": [
{
"name": "<string>",
"features": []
}
]
}
}
],
"folders": [
{
"name": "<string>",
"description": "<string>",
"parent_folder_id": 1,
"parent_folder_name": "<string>",
"permissions": {
"inherit_users_and_roles": false,
"inherit_features": false,
"users": [
{
"name": "<string>",
"features": []
}
],
"user_groups": [
{
"name": "<string>",
"features": []
}
]
}
}
]
}
'import requests
url = "https://your-syteca-host/SytecaACB/api/bulk/add-secrets-and-folders"
payload = {
"secrets": [
{
"name": "<string>",
"login": "<string>",
"description": "<string>",
"password": "<string>",
"parent_folder_id": 1,
"parent_folder_name": "<string>",
"domain": "<string>",
"computer_name": "<string>",
"url": "<string>",
"server": "<string>",
"computers": ["<string>"],
"record_activities": True,
"permissions": {
"inherit_users_and_roles": False,
"inherit_features": False,
"users": [
{
"name": "<string>",
"features": []
}
],
"user_groups": [
{
"name": "<string>",
"features": []
}
]
}
}
],
"folders": [
{
"name": "<string>",
"description": "<string>",
"parent_folder_id": 1,
"parent_folder_name": "<string>",
"permissions": {
"inherit_users_and_roles": False,
"inherit_features": False,
"users": [
{
"name": "<string>",
"features": []
}
],
"user_groups": [
{
"name": "<string>",
"features": []
}
]
}
}
]
}
headers = {
"Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
secrets: [
{
name: '<string>',
login: '<string>',
description: '<string>',
password: '<string>',
parent_folder_id: 1,
parent_folder_name: '<string>',
domain: '<string>',
computer_name: '<string>',
url: '<string>',
server: '<string>',
computers: ['<string>'],
record_activities: true,
permissions: {
inherit_users_and_roles: false,
inherit_features: false,
users: [{name: '<string>', features: []}],
user_groups: [{name: '<string>', features: []}]
}
}
],
folders: [
{
name: '<string>',
description: '<string>',
parent_folder_id: 1,
parent_folder_name: '<string>',
permissions: {
inherit_users_and_roles: false,
inherit_features: false,
users: [{name: '<string>', features: []}],
user_groups: [{name: '<string>', features: []}]
}
}
]
})
};
fetch('https://your-syteca-host/SytecaACB/api/bulk/add-secrets-and-folders', 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://your-syteca-host/SytecaACB/api/bulk/add-secrets-and-folders",
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([
'secrets' => [
[
'name' => '<string>',
'login' => '<string>',
'description' => '<string>',
'password' => '<string>',
'parent_folder_id' => 1,
'parent_folder_name' => '<string>',
'domain' => '<string>',
'computer_name' => '<string>',
'url' => '<string>',
'server' => '<string>',
'computers' => [
'<string>'
],
'record_activities' => true,
'permissions' => [
'inherit_users_and_roles' => false,
'inherit_features' => false,
'users' => [
[
'name' => '<string>',
'features' => [
]
]
],
'user_groups' => [
[
'name' => '<string>',
'features' => [
]
]
]
]
]
],
'folders' => [
[
'name' => '<string>',
'description' => '<string>',
'parent_folder_id' => 1,
'parent_folder_name' => '<string>',
'permissions' => [
'inherit_users_and_roles' => false,
'inherit_features' => false,
'users' => [
[
'name' => '<string>',
'features' => [
]
]
],
'user_groups' => [
[
'name' => '<string>',
'features' => [
]
]
]
]
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>",
"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://your-syteca-host/SytecaACB/api/bulk/add-secrets-and-folders"
payload := strings.NewReader("{\n \"secrets\": [\n {\n \"name\": \"<string>\",\n \"login\": \"<string>\",\n \"description\": \"<string>\",\n \"password\": \"<string>\",\n \"parent_folder_id\": 1,\n \"parent_folder_name\": \"<string>\",\n \"domain\": \"<string>\",\n \"computer_name\": \"<string>\",\n \"url\": \"<string>\",\n \"server\": \"<string>\",\n \"computers\": [\n \"<string>\"\n ],\n \"record_activities\": true,\n \"permissions\": {\n \"inherit_users_and_roles\": false,\n \"inherit_features\": false,\n \"users\": [\n {\n \"name\": \"<string>\",\n \"features\": []\n }\n ],\n \"user_groups\": [\n {\n \"name\": \"<string>\",\n \"features\": []\n }\n ]\n }\n }\n ],\n \"folders\": [\n {\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"parent_folder_id\": 1,\n \"parent_folder_name\": \"<string>\",\n \"permissions\": {\n \"inherit_users_and_roles\": false,\n \"inherit_features\": false,\n \"users\": [\n {\n \"name\": \"<string>\",\n \"features\": []\n }\n ],\n \"user_groups\": [\n {\n \"name\": \"<string>\",\n \"features\": []\n }\n ]\n }\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "<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://your-syteca-host/SytecaACB/api/bulk/add-secrets-and-folders")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"secrets\": [\n {\n \"name\": \"<string>\",\n \"login\": \"<string>\",\n \"description\": \"<string>\",\n \"password\": \"<string>\",\n \"parent_folder_id\": 1,\n \"parent_folder_name\": \"<string>\",\n \"domain\": \"<string>\",\n \"computer_name\": \"<string>\",\n \"url\": \"<string>\",\n \"server\": \"<string>\",\n \"computers\": [\n \"<string>\"\n ],\n \"record_activities\": true,\n \"permissions\": {\n \"inherit_users_and_roles\": false,\n \"inherit_features\": false,\n \"users\": [\n {\n \"name\": \"<string>\",\n \"features\": []\n }\n ],\n \"user_groups\": [\n {\n \"name\": \"<string>\",\n \"features\": []\n }\n ]\n }\n }\n ],\n \"folders\": [\n {\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"parent_folder_id\": 1,\n \"parent_folder_name\": \"<string>\",\n \"permissions\": {\n \"inherit_users_and_roles\": false,\n \"inherit_features\": false,\n \"users\": [\n {\n \"name\": \"<string>\",\n \"features\": []\n }\n ],\n \"user_groups\": [\n {\n \"name\": \"<string>\",\n \"features\": []\n }\n ]\n }\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://your-syteca-host/SytecaACB/api/bulk/add-secrets-and-folders")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"secrets\": [\n {\n \"name\": \"<string>\",\n \"login\": \"<string>\",\n \"description\": \"<string>\",\n \"password\": \"<string>\",\n \"parent_folder_id\": 1,\n \"parent_folder_name\": \"<string>\",\n \"domain\": \"<string>\",\n \"computer_name\": \"<string>\",\n \"url\": \"<string>\",\n \"server\": \"<string>\",\n \"computers\": [\n \"<string>\"\n ],\n \"record_activities\": true,\n \"permissions\": {\n \"inherit_users_and_roles\": false,\n \"inherit_features\": false,\n \"users\": [\n {\n \"name\": \"<string>\",\n \"features\": []\n }\n ],\n \"user_groups\": [\n {\n \"name\": \"<string>\",\n \"features\": []\n }\n ]\n }\n }\n ],\n \"folders\": [\n {\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"parent_folder_id\": 1,\n \"parent_folder_name\": \"<string>\",\n \"permissions\": {\n \"inherit_users_and_roles\": false,\n \"inherit_features\": false,\n \"users\": [\n {\n \"name\": \"<string>\",\n \"features\": []\n }\n ],\n \"user_groups\": [\n {\n \"name\": \"<string>\",\n \"features\": []\n }\n ]\n }\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"folders": [
{
"id": 123,
"name": "<string>",
"description": "<string>",
"parent_folder_id": 123,
"permissions": {
"inherit_users_and_roles": false,
"inherit_features": false,
"users": [
{
"name": "<string>",
"features": []
}
],
"user_groups": [
{
"name": "<string>",
"features": []
}
]
}
}
],
"secrets": [
{
"id": 123,
"name": "<string>",
"login": "<string>",
"description": "<string>",
"parent_folder_id": 123,
"domain": "<string>",
"computer_name": "<string>",
"url": "<string>",
"server": "<string>",
"computers": [
"<string>"
],
"file_transfer": {
"port": 22
},
"rotation": {
"enabled": true,
"rotate_every_min": 2
},
"record_activities": true,
"check_out": {
"enabled": true,
"rotate_on_checkin": true,
"auto_checkin_after_min": 60
},
"require_approval": {
"approver_users": [
"<string>"
],
"approver_user_groups": [
"<string>"
],
"require_owners_and_approvers": false,
"working_dates": {
"from": "2023-11-07T05:31:56Z",
"to": "2023-11-07T05:31:56Z"
},
"working_hours": {
"from": "<string>",
"to": "<string>"
},
"working_days": []
},
"permissions": {
"inherit_users_and_roles": false,
"inherit_features": false,
"users": [
{
"name": "<string>",
"features": []
}
],
"user_groups": [
{
"name": "<string>",
"features": []
}
]
},
"check_password": {
"enabled": false,
"check_every": 30
},
"last_password_check_utc": "2023-11-07T05:31:56Z",
"last_password_rotation_utc": "2023-11-07T05:31:56Z"
}
],
"errors": [
"<string>"
]
}{
"status": 123,
"message": "<string>"
}{
"status": 123,
"message": "<string>"
}Creates multiple folders and secrets in a single API call. The canonical endpoint for migration from another PAM product, bulk onboarding from a CSV/spreadsheet, or populating a freshly-installed Syteca with the organization’s existing secrets. Returns a summary identifying which records were created and which failed (with reasons).
For ACB deployments updated from a version prior to 1.2, switch to the
https://{hostname}/EkranACB server in the Playground.Permissions required
The user owning the Access Token must have Editor or Owner role on the target parent folders (and Owner on the root if creating root-level folders).Folders processed before secrets
Folders are processed before secrets within a single call — so you can reference newly-created folders byparent_folder_name in the secrets array. Each secrets[] entry has the same shape as the Add secret request body; each folders[] entry has the same shape as Add folder.
Not atomic — partial success is normal
The response’sErrors array reports per-record failures. Some records may succeed while others fail with reasons in Errors. The Playground will show this structure on a successful (200) response.
For very large migrations (10,000+ secrets), batch the request into chunks of ~500 secrets per call to avoid timeouts and rate-limit issues. The endpoint’s rate limit is 5 requests per minute per Access Token — so 500-secret batches × 5/min = 2,500 secrets/minute throughput.
Rate limit
5 requests per minute per Access Token. Lower than other write endpoints because each call typically creates many records.Errors
See Status codes. Common errors:- 400 Bad Request — top-level request body malformed (per-record errors return inside the
Errorsarray of a 200 response instead). - 403 Forbidden — user lacks Editor/Owner role on the target folders.
- 429 Too Many Requests — rate limit exceeded.
Related
Add folder
Per-folder schema.
Add secret
Per-secret schema, including type-specific fields.
CLI reference
SytecaACBConsole.exe BulkAdd command for scripted migrations.
Data models
Shared schemas for permissions, rotation, etc.
Authorizations
Access token for authentication
Body
application/json
⌘I