New Secret
curl --request POST \
--url https://api.intelligence.io.solutions/api/v1/secrets/ \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"secret_name": "<string>",
"secret_value": "<string>",
"tool_name": "<string>",
"tool_arg": "<string>",
"is_default_for_tool": true
}
'import requests
url = "https://api.intelligence.io.solutions/api/v1/secrets/"
payload = {
"secret_name": "<string>",
"secret_value": "<string>",
"tool_name": "<string>",
"tool_arg": "<string>",
"is_default_for_tool": True
}
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({
secret_name: '<string>',
secret_value: '<string>',
tool_name: '<string>',
tool_arg: '<string>',
is_default_for_tool: true
})
};
fetch('https://api.intelligence.io.solutions/api/v1/secrets/', 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.intelligence.io.solutions/api/v1/secrets/",
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([
'secret_name' => '<string>',
'secret_value' => '<string>',
'tool_name' => '<string>',
'tool_arg' => '<string>',
'is_default_for_tool' => true
]),
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.intelligence.io.solutions/api/v1/secrets/"
payload := strings.NewReader("{\n \"secret_name\": \"<string>\",\n \"secret_value\": \"<string>\",\n \"tool_name\": \"<string>\",\n \"tool_arg\": \"<string>\",\n \"is_default_for_tool\": true\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.intelligence.io.solutions/api/v1/secrets/")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"secret_name\": \"<string>\",\n \"secret_value\": \"<string>\",\n \"tool_name\": \"<string>\",\n \"tool_arg\": \"<string>\",\n \"is_default_for_tool\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.intelligence.io.solutions/api/v1/secrets/")
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 \"secret_name\": \"<string>\",\n \"secret_value\": \"<string>\",\n \"tool_name\": \"<string>\",\n \"tool_arg\": \"<string>\",\n \"is_default_for_tool\": true\n}"
response = http.request(request)
puts response.read_body{
"secret_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"user_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"secret_name": "<string>",
"display": "<string>",
"tool_name": "<string>",
"tool_arg": "<string>",
"is_default_for_tool": true,
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}Secret Management
Create a Secret
Creates or registers a new secret for use with specific tools or workflows.
POST
/
api
/
v1
/
secrets
/
New Secret
curl --request POST \
--url https://api.intelligence.io.solutions/api/v1/secrets/ \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"secret_name": "<string>",
"secret_value": "<string>",
"tool_name": "<string>",
"tool_arg": "<string>",
"is_default_for_tool": true
}
'import requests
url = "https://api.intelligence.io.solutions/api/v1/secrets/"
payload = {
"secret_name": "<string>",
"secret_value": "<string>",
"tool_name": "<string>",
"tool_arg": "<string>",
"is_default_for_tool": True
}
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({
secret_name: '<string>',
secret_value: '<string>',
tool_name: '<string>',
tool_arg: '<string>',
is_default_for_tool: true
})
};
fetch('https://api.intelligence.io.solutions/api/v1/secrets/', 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.intelligence.io.solutions/api/v1/secrets/",
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([
'secret_name' => '<string>',
'secret_value' => '<string>',
'tool_name' => '<string>',
'tool_arg' => '<string>',
'is_default_for_tool' => true
]),
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.intelligence.io.solutions/api/v1/secrets/"
payload := strings.NewReader("{\n \"secret_name\": \"<string>\",\n \"secret_value\": \"<string>\",\n \"tool_name\": \"<string>\",\n \"tool_arg\": \"<string>\",\n \"is_default_for_tool\": true\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.intelligence.io.solutions/api/v1/secrets/")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"secret_name\": \"<string>\",\n \"secret_value\": \"<string>\",\n \"tool_name\": \"<string>\",\n \"tool_arg\": \"<string>\",\n \"is_default_for_tool\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.intelligence.io.solutions/api/v1/secrets/")
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 \"secret_name\": \"<string>\",\n \"secret_value\": \"<string>\",\n \"tool_name\": \"<string>\",\n \"tool_arg\": \"<string>\",\n \"is_default_for_tool\": true\n}"
response = http.request(request)
puts response.read_body{
"secret_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"user_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"secret_name": "<string>",
"display": "<string>",
"tool_name": "<string>",
"tool_arg": "<string>",
"is_default_for_tool": true,
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}This endpoint allows you to securely store a secret, associate it with a specific tool and argument, and optionally configure it as a default value when the tool is used without explicit input.
The API supports multiple authentication mechanisms, but only one needs to be provided per request. You may authenticate using any of the following headers, a browser-issued JWT
token, an Authorization header, or an x-api-key header (io.net API key).Once a secret is created, the value provided in the
secret_value parameter cannot be retrieved or viewed again through the API. Only metadata about the secret such as its identifier, associated tool, and configuration can be viewed.The system imposes an overall implementation-specific limit on the total size of stored secrets. If a request attempts to store a secret, or a combination of secrets, that exceeds this limit, the API will return an HTTP 413 (Payload Too Large) error.
When registering secrets, wildcard patterns can be used. For example, instead of specifying each Linear subtool individually (such as
agno__linear__get_user_details, agno__linear__get_issue_details, and others), a single wildcard pattern like agno__linear__* can be used to apply the secret across all related Linear tools.Request body parameters:
secret_name – A user-defined identifier for the secret. This value is used to reference and manage the secret in subsequent operations.
secret_value – The confidential value associated with the secret. This value is securely stored and made available to the designated tool when access is authorized.
tool_name – The name of the single tool that is granted access to this secret. This field accepts only one tool identifier, not an array or list.
tool_arg – The specific argument of the tool that this secret applies to.
is_default_for_tool – A boolean flag specifying whether this secret should be automatically applied when the associated tool does not receive a value for the argument. This field is optional when using secrets in workflow YAML configurations, but required when defining secrets for built-in agents.Authorizations
The access token received from the authorization server in the OAuth 2.0 flow.
Headers
JWT token
io.net provided API Key
API key set by an SDK client
Body
application/json
Response
Successful Response
Was this page helpful?