curl --request PATCH \
--url https://your-syteca-host/SytecaACB/api/secrets/{id} \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"description": "<string>",
"password": "<string>",
"parent_folder_id": 1,
"parent_folder_name": "<string>",
"domain": "<string>",
"computer_name": "<string>",
"url": "<string>",
"server": "<string>",
"login": "<string>",
"computers": [
"<string>"
],
"record_activities": true,
"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/secrets/{id}"
payload = {
"name": "<string>",
"description": "<string>",
"password": "<string>",
"parent_folder_id": 1,
"parent_folder_name": "<string>",
"domain": "<string>",
"computer_name": "<string>",
"url": "<string>",
"server": "<string>",
"login": "<string>",
"computers": ["<string>"],
"record_activities": True,
"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.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
description: '<string>',
password: '<string>',
parent_folder_id: 1,
parent_folder_name: '<string>',
domain: '<string>',
computer_name: '<string>',
url: '<string>',
server: '<string>',
login: '<string>',
computers: ['<string>'],
record_activities: true,
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/secrets/{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://your-syteca-host/SytecaACB/api/secrets/{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>',
'password' => '<string>',
'parent_folder_id' => 1,
'parent_folder_name' => '<string>',
'domain' => '<string>',
'computer_name' => '<string>',
'url' => '<string>',
'server' => '<string>',
'login' => '<string>',
'computers' => [
'<string>'
],
'record_activities' => true,
'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/secrets/{id}"
payload := strings.NewReader("{\n \"name\": \"<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 \"login\": \"<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}")
req, _ := http.NewRequest("PATCH", 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.patch("https://your-syteca-host/SytecaACB/api/secrets/{id}")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<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 \"login\": \"<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}")
.asString();require 'uri'
require 'net/http'
url = URI("https://your-syteca-host/SytecaACB/api/secrets/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<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 \"login\": \"<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}"
response = http.request(request)
puts response.read_body{
"id": 123,
"name": "<string>",
"type": "None",
"login": "<string>",
"description": "<string>",
"parent_folder_id": 123,
"domain": "<string>",
"computer_name": "<string>",
"url": "<string>",
"server": "<string>",
"computers": [
"<string>"
],
"file_transfer": {
"protocol": "Sftp",
"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": {
"require_approval_type": "None",
"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": [
"Sunday"
]
},
"permissions": {
"inherit_users_and_roles": false,
"inherit_features": false,
"users": [
{
"name": "<string>",
"access_type": "None",
"features": [
"CopyPassword"
]
}
],
"user_groups": [
{
"name": "<string>",
"access_type": "None",
"features": [
"CopyPassword"
]
}
]
},
"check_password": {
"enabled": false,
"check_every": 30,
"check_period_type": "Minute"
},
"check_password_status": "None",
"last_password_check_utc": "2023-11-07T05:31:56Z",
"password_rotation_status": "Disabled",
"last_password_rotation_utc": "2023-11-07T05:31:56Z"
}{
"status": 123,
"message": "<string>"
}{
"status": 123,
"message": "<string>"
}{
"status": 123,
"message": "<string>"
}Update Secret
Syteca ACB REST API endpoint to update a secret — change name, target, password, rotation, check-out, heartbeat, or permissions. Partial update — only the fields provided are changed.
curl --request PATCH \
--url https://your-syteca-host/SytecaACB/api/secrets/{id} \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"description": "<string>",
"password": "<string>",
"parent_folder_id": 1,
"parent_folder_name": "<string>",
"domain": "<string>",
"computer_name": "<string>",
"url": "<string>",
"server": "<string>",
"login": "<string>",
"computers": [
"<string>"
],
"record_activities": true,
"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/secrets/{id}"
payload = {
"name": "<string>",
"description": "<string>",
"password": "<string>",
"parent_folder_id": 1,
"parent_folder_name": "<string>",
"domain": "<string>",
"computer_name": "<string>",
"url": "<string>",
"server": "<string>",
"login": "<string>",
"computers": ["<string>"],
"record_activities": True,
"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.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
description: '<string>',
password: '<string>',
parent_folder_id: 1,
parent_folder_name: '<string>',
domain: '<string>',
computer_name: '<string>',
url: '<string>',
server: '<string>',
login: '<string>',
computers: ['<string>'],
record_activities: true,
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/secrets/{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://your-syteca-host/SytecaACB/api/secrets/{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>',
'password' => '<string>',
'parent_folder_id' => 1,
'parent_folder_name' => '<string>',
'domain' => '<string>',
'computer_name' => '<string>',
'url' => '<string>',
'server' => '<string>',
'login' => '<string>',
'computers' => [
'<string>'
],
'record_activities' => true,
'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/secrets/{id}"
payload := strings.NewReader("{\n \"name\": \"<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 \"login\": \"<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}")
req, _ := http.NewRequest("PATCH", 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.patch("https://your-syteca-host/SytecaACB/api/secrets/{id}")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<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 \"login\": \"<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}")
.asString();require 'uri'
require 'net/http'
url = URI("https://your-syteca-host/SytecaACB/api/secrets/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<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 \"login\": \"<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}"
response = http.request(request)
puts response.read_body{
"id": 123,
"name": "<string>",
"type": "None",
"login": "<string>",
"description": "<string>",
"parent_folder_id": 123,
"domain": "<string>",
"computer_name": "<string>",
"url": "<string>",
"server": "<string>",
"computers": [
"<string>"
],
"file_transfer": {
"protocol": "Sftp",
"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": {
"require_approval_type": "None",
"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": [
"Sunday"
]
},
"permissions": {
"inherit_users_and_roles": false,
"inherit_features": false,
"users": [
{
"name": "<string>",
"access_type": "None",
"features": [
"CopyPassword"
]
}
],
"user_groups": [
{
"name": "<string>",
"access_type": "None",
"features": [
"CopyPassword"
]
}
]
},
"check_password": {
"enabled": false,
"check_every": 30,
"check_period_type": "Minute"
},
"check_password_status": "None",
"last_password_check_utc": "2023-11-07T05:31:56Z",
"password_rotation_status": "Disabled",
"last_password_rotation_utc": "2023-11-07T05:31:56Z"
}{
"status": 123,
"message": "<string>"
}{
"status": 123,
"message": "<string>"
}{
"status": 123,
"message": "<string>"
}https://{hostname}/EkranACB server in the Playground.Permissions required
- Editor or Owner role on the secret for most field changes.
- Owner role required to modify the
permissionsfield.
Common update patterns
| Update | Fields to include |
|---|---|
| Set a new password manually | password: { password: "..." } |
| Change rotation schedule | rotation: { enabled, rotate_every_min } |
| Enable scheduled heartbeat checks (v1.4+) | check_password: { enabled: true, check_every: 1, check_period_type: "Hour" } |
| Move to a different folder | parent_folder_id: <newId> |
| Replace permissions (Owner role required) | permissions: [ ... ] |
type after creation is not supported. Create a new secret of the desired type and delete the old one if you need to convert.Errors
See Status codes. Common errors:- 400 Bad Request — invalid configuration object (e.g.
rotate_every_min: 0, no longer accepted in v1.4 — useenabled: falseinstead). - 403 Forbidden — user lacks Editor/Owner, or lacks Owner when modifying permissions.
- 404 Not Found — secret doesn’t exist.
Related
Get secret
Add secret
Rotate password
Data models
Authorizations
Access token for authentication
Path Parameters
The ID of the secret to update
x >= 1Body
Name of the secret
512Description of the secret
2000The password value
Show child attributes
Show child attributes
ID of the parent folder
x >= 0Name of the parent folder
512Domain for AD accounts
512Computer name for Windows/Unix accounts
512URL for web accounts
2000Server for database accounts
512Login username
512List of computers
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Whether to record activities for this secret
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Response
Secret updated successfully
Unique identifier of the secret
Name of the secret
Type of secret
None, UnixAccountSSH, UnixAccountTelnet, WindowsAccount, ADAccount, WebAccount, MSSQLAccount Login username
Description of the secret
ID of the parent folder
Domain for AD accounts
Computer name for Windows/Unix accounts
URL for web accounts
Server for database accounts
List of computers
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Whether to record activities for this secret
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Status of the last password check (heartbeat)
None, Valid, Invalid, Failed UTC timestamp of the last password check
Status of password rotation
Disabled, Enabled, Failed UTC timestamp of the last password rotation