Sync all secrets
To send metadata of a secret used to access applications or infrastructure, use Secret.
This call replaces ALL existing Secret resources for the given app and source_id - this is a “state of the world” sync. In other words, if a Secret resource is sent for a user in a previous sync_all call, but is not included in a later sync_all call for that customer, it is assumed to no longer exist and is deleted in Vanta.
** Headers **
Authorization: Bearer <access_token>
** Scopes **
connectors.self:write-resource
** Schema **
Expand the resources array below for the schema of Secret.
curl --request PUT \
--url https://api.vanta.com/v1/resources/secret \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"resourceId": "<string>",
"resources": [
{
"displayName": "<string>",
"uniqueId": "<string>",
"externalUrl": "<string>",
"name": "<string>",
"description": "<string>",
"createdTimestamp": "2023-11-07T05:31:56Z",
"creator": "<string>",
"owner": "<string>",
"updatedTimestamp": "2023-11-07T05:31:56Z",
"lastAccessedTimestamp": "2023-11-07T05:31:56Z",
"expiresTimestamp": "2023-11-07T05:31:56Z"
}
]
}
'import requests
url = "https://api.vanta.com/v1/resources/secret"
payload = {
"resourceId": "<string>",
"resources": [
{
"displayName": "<string>",
"uniqueId": "<string>",
"externalUrl": "<string>",
"name": "<string>",
"description": "<string>",
"createdTimestamp": "2023-11-07T05:31:56Z",
"creator": "<string>",
"owner": "<string>",
"updatedTimestamp": "2023-11-07T05:31:56Z",
"lastAccessedTimestamp": "2023-11-07T05:31:56Z",
"expiresTimestamp": "2023-11-07T05:31:56Z"
}
]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
resourceId: '<string>',
resources: [
{
displayName: '<string>',
uniqueId: '<string>',
externalUrl: '<string>',
name: '<string>',
description: '<string>',
createdTimestamp: '2023-11-07T05:31:56Z',
creator: '<string>',
owner: '<string>',
updatedTimestamp: '2023-11-07T05:31:56Z',
lastAccessedTimestamp: '2023-11-07T05:31:56Z',
expiresTimestamp: '2023-11-07T05:31:56Z'
}
]
})
};
fetch('https://api.vanta.com/v1/resources/secret', 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.vanta.com/v1/resources/secret",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'resourceId' => '<string>',
'resources' => [
[
'displayName' => '<string>',
'uniqueId' => '<string>',
'externalUrl' => '<string>',
'name' => '<string>',
'description' => '<string>',
'createdTimestamp' => '2023-11-07T05:31:56Z',
'creator' => '<string>',
'owner' => '<string>',
'updatedTimestamp' => '2023-11-07T05:31:56Z',
'lastAccessedTimestamp' => '2023-11-07T05:31:56Z',
'expiresTimestamp' => '2023-11-07T05:31:56Z'
]
]
]),
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.vanta.com/v1/resources/secret"
payload := strings.NewReader("{\n \"resourceId\": \"<string>\",\n \"resources\": [\n {\n \"displayName\": \"<string>\",\n \"uniqueId\": \"<string>\",\n \"externalUrl\": \"<string>\",\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"createdTimestamp\": \"2023-11-07T05:31:56Z\",\n \"creator\": \"<string>\",\n \"owner\": \"<string>\",\n \"updatedTimestamp\": \"2023-11-07T05:31:56Z\",\n \"lastAccessedTimestamp\": \"2023-11-07T05:31:56Z\",\n \"expiresTimestamp\": \"2023-11-07T05:31:56Z\"\n }\n ]\n}")
req, _ := http.NewRequest("PUT", 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.put("https://api.vanta.com/v1/resources/secret")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"resourceId\": \"<string>\",\n \"resources\": [\n {\n \"displayName\": \"<string>\",\n \"uniqueId\": \"<string>\",\n \"externalUrl\": \"<string>\",\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"createdTimestamp\": \"2023-11-07T05:31:56Z\",\n \"creator\": \"<string>\",\n \"owner\": \"<string>\",\n \"updatedTimestamp\": \"2023-11-07T05:31:56Z\",\n \"lastAccessedTimestamp\": \"2023-11-07T05:31:56Z\",\n \"expiresTimestamp\": \"2023-11-07T05:31:56Z\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.vanta.com/v1/resources/secret")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"resourceId\": \"<string>\",\n \"resources\": [\n {\n \"displayName\": \"<string>\",\n \"uniqueId\": \"<string>\",\n \"externalUrl\": \"<string>\",\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"createdTimestamp\": \"2023-11-07T05:31:56Z\",\n \"creator\": \"<string>\",\n \"owner\": \"<string>\",\n \"updatedTimestamp\": \"2023-11-07T05:31:56Z\",\n \"lastAccessedTimestamp\": \"2023-11-07T05:31:56Z\",\n \"expiresTimestamp\": \"2023-11-07T05:31:56Z\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"success": true
}Authorizations
The access token received from the authorization server in the OAuth 2.0 flow.
Body
List of resources to sync
Vanta generated identifier for the given resource, and can be found on the developer console page. See the list of registered resources and their IDs on https://app.vanta.com/settings/developer-console/<app_id>?tab=resources
Show child attributes
Show child attributes
Response
The current resources synced.
Related topics
List all secretsSync all Package VulnerabilitiesSync all user accountsSync all Vulnerable ComponentsSync all Custom ResourcesWas this page helpful?
curl --request PUT \
--url https://api.vanta.com/v1/resources/secret \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"resourceId": "<string>",
"resources": [
{
"displayName": "<string>",
"uniqueId": "<string>",
"externalUrl": "<string>",
"name": "<string>",
"description": "<string>",
"createdTimestamp": "2023-11-07T05:31:56Z",
"creator": "<string>",
"owner": "<string>",
"updatedTimestamp": "2023-11-07T05:31:56Z",
"lastAccessedTimestamp": "2023-11-07T05:31:56Z",
"expiresTimestamp": "2023-11-07T05:31:56Z"
}
]
}
'import requests
url = "https://api.vanta.com/v1/resources/secret"
payload = {
"resourceId": "<string>",
"resources": [
{
"displayName": "<string>",
"uniqueId": "<string>",
"externalUrl": "<string>",
"name": "<string>",
"description": "<string>",
"createdTimestamp": "2023-11-07T05:31:56Z",
"creator": "<string>",
"owner": "<string>",
"updatedTimestamp": "2023-11-07T05:31:56Z",
"lastAccessedTimestamp": "2023-11-07T05:31:56Z",
"expiresTimestamp": "2023-11-07T05:31:56Z"
}
]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
resourceId: '<string>',
resources: [
{
displayName: '<string>',
uniqueId: '<string>',
externalUrl: '<string>',
name: '<string>',
description: '<string>',
createdTimestamp: '2023-11-07T05:31:56Z',
creator: '<string>',
owner: '<string>',
updatedTimestamp: '2023-11-07T05:31:56Z',
lastAccessedTimestamp: '2023-11-07T05:31:56Z',
expiresTimestamp: '2023-11-07T05:31:56Z'
}
]
})
};
fetch('https://api.vanta.com/v1/resources/secret', 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.vanta.com/v1/resources/secret",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'resourceId' => '<string>',
'resources' => [
[
'displayName' => '<string>',
'uniqueId' => '<string>',
'externalUrl' => '<string>',
'name' => '<string>',
'description' => '<string>',
'createdTimestamp' => '2023-11-07T05:31:56Z',
'creator' => '<string>',
'owner' => '<string>',
'updatedTimestamp' => '2023-11-07T05:31:56Z',
'lastAccessedTimestamp' => '2023-11-07T05:31:56Z',
'expiresTimestamp' => '2023-11-07T05:31:56Z'
]
]
]),
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.vanta.com/v1/resources/secret"
payload := strings.NewReader("{\n \"resourceId\": \"<string>\",\n \"resources\": [\n {\n \"displayName\": \"<string>\",\n \"uniqueId\": \"<string>\",\n \"externalUrl\": \"<string>\",\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"createdTimestamp\": \"2023-11-07T05:31:56Z\",\n \"creator\": \"<string>\",\n \"owner\": \"<string>\",\n \"updatedTimestamp\": \"2023-11-07T05:31:56Z\",\n \"lastAccessedTimestamp\": \"2023-11-07T05:31:56Z\",\n \"expiresTimestamp\": \"2023-11-07T05:31:56Z\"\n }\n ]\n}")
req, _ := http.NewRequest("PUT", 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.put("https://api.vanta.com/v1/resources/secret")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"resourceId\": \"<string>\",\n \"resources\": [\n {\n \"displayName\": \"<string>\",\n \"uniqueId\": \"<string>\",\n \"externalUrl\": \"<string>\",\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"createdTimestamp\": \"2023-11-07T05:31:56Z\",\n \"creator\": \"<string>\",\n \"owner\": \"<string>\",\n \"updatedTimestamp\": \"2023-11-07T05:31:56Z\",\n \"lastAccessedTimestamp\": \"2023-11-07T05:31:56Z\",\n \"expiresTimestamp\": \"2023-11-07T05:31:56Z\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.vanta.com/v1/resources/secret")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"resourceId\": \"<string>\",\n \"resources\": [\n {\n \"displayName\": \"<string>\",\n \"uniqueId\": \"<string>\",\n \"externalUrl\": \"<string>\",\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"createdTimestamp\": \"2023-11-07T05:31:56Z\",\n \"creator\": \"<string>\",\n \"owner\": \"<string>\",\n \"updatedTimestamp\": \"2023-11-07T05:31:56Z\",\n \"lastAccessedTimestamp\": \"2023-11-07T05:31:56Z\",\n \"expiresTimestamp\": \"2023-11-07T05:31:56Z\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"success": true
}