curl --request POST \
--url https://api-prod.studio.getsupervisor.ai/v1/tools/connections \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"toolId": "<string>",
"agentId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"connectionKey": "<string>",
"metadata": {},
"descriptionUsage": "Usa esta conexión cuando el usuario diga \"¿qué campañas existen?\"",
"usageExample": "<string>"
}
'import requests
url = "https://api-prod.studio.getsupervisor.ai/v1/tools/connections"
payload = {
"toolId": "<string>",
"agentId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"connectionKey": "<string>",
"metadata": {},
"descriptionUsage": "Usa esta conexión cuando el usuario diga \"¿qué campañas existen?\"",
"usageExample": "<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({
toolId: '<string>',
agentId: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
connectionKey: '<string>',
metadata: {},
descriptionUsage: 'Usa esta conexión cuando el usuario diga "¿qué campañas existen?"',
usageExample: '<string>'
})
};
fetch('https://api-prod.studio.getsupervisor.ai/v1/tools/connections', 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-prod.studio.getsupervisor.ai/v1/tools/connections",
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([
'toolId' => '<string>',
'agentId' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'connectionKey' => '<string>',
'metadata' => [
],
'descriptionUsage' => 'Usa esta conexión cuando el usuario diga "¿qué campañas existen?"',
'usageExample' => '<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-prod.studio.getsupervisor.ai/v1/tools/connections"
payload := strings.NewReader("{\n \"toolId\": \"<string>\",\n \"agentId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"connectionKey\": \"<string>\",\n \"metadata\": {},\n \"descriptionUsage\": \"Usa esta conexión cuando el usuario diga \\\"¿qué campañas existen?\\\"\",\n \"usageExample\": \"<string>\"\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-prod.studio.getsupervisor.ai/v1/tools/connections")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"toolId\": \"<string>\",\n \"agentId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"connectionKey\": \"<string>\",\n \"metadata\": {},\n \"descriptionUsage\": \"Usa esta conexión cuando el usuario diga \\\"¿qué campañas existen?\\\"\",\n \"usageExample\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-prod.studio.getsupervisor.ai/v1/tools/connections")
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 \"toolId\": \"<string>\",\n \"agentId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"connectionKey\": \"<string>\",\n \"metadata\": {},\n \"descriptionUsage\": \"Usa esta conexión cuando el usuario diga \\\"¿qué campañas existen?\\\"\",\n \"usageExample\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"status": "connected",
"toolId": "<string>",
"workspaceId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"agentId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"toolAgentConnectionId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"providerRef": "<string>",
"authorizationUrl": "<string>",
"message": "<string>",
"metadata": {},
"descriptionUsage": "<string>",
"usageExample": "<string>"
}{
"statusCode": 123,
"message": "<string>",
"error": "<string>",
"path": "<string>",
"timestamp": "2023-11-07T05:31:56Z",
"code": "<string>",
"details": {
"subcode": "<string>",
"workspaceId": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
}{
"statusCode": 123,
"message": "<string>",
"error": "<string>",
"path": "<string>",
"timestamp": "2023-11-07T05:31:56Z",
"code": "<string>",
"details": {
"subcode": "<string>",
"workspaceId": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
}{
"statusCode": 123,
"message": "<string>",
"error": "<string>",
"path": "<string>",
"timestamp": "2023-11-07T05:31:56Z",
"code": "<string>",
"details": {
"subcode": "<string>",
"workspaceId": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
}Crear una conexión entre un agente y una tool (por body)
curl --request POST \
--url https://api-prod.studio.getsupervisor.ai/v1/tools/connections \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"toolId": "<string>",
"agentId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"connectionKey": "<string>",
"metadata": {},
"descriptionUsage": "Usa esta conexión cuando el usuario diga \"¿qué campañas existen?\"",
"usageExample": "<string>"
}
'import requests
url = "https://api-prod.studio.getsupervisor.ai/v1/tools/connections"
payload = {
"toolId": "<string>",
"agentId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"connectionKey": "<string>",
"metadata": {},
"descriptionUsage": "Usa esta conexión cuando el usuario diga \"¿qué campañas existen?\"",
"usageExample": "<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({
toolId: '<string>',
agentId: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
connectionKey: '<string>',
metadata: {},
descriptionUsage: 'Usa esta conexión cuando el usuario diga "¿qué campañas existen?"',
usageExample: '<string>'
})
};
fetch('https://api-prod.studio.getsupervisor.ai/v1/tools/connections', 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-prod.studio.getsupervisor.ai/v1/tools/connections",
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([
'toolId' => '<string>',
'agentId' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'connectionKey' => '<string>',
'metadata' => [
],
'descriptionUsage' => 'Usa esta conexión cuando el usuario diga "¿qué campañas existen?"',
'usageExample' => '<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-prod.studio.getsupervisor.ai/v1/tools/connections"
payload := strings.NewReader("{\n \"toolId\": \"<string>\",\n \"agentId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"connectionKey\": \"<string>\",\n \"metadata\": {},\n \"descriptionUsage\": \"Usa esta conexión cuando el usuario diga \\\"¿qué campañas existen?\\\"\",\n \"usageExample\": \"<string>\"\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-prod.studio.getsupervisor.ai/v1/tools/connections")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"toolId\": \"<string>\",\n \"agentId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"connectionKey\": \"<string>\",\n \"metadata\": {},\n \"descriptionUsage\": \"Usa esta conexión cuando el usuario diga \\\"¿qué campañas existen?\\\"\",\n \"usageExample\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-prod.studio.getsupervisor.ai/v1/tools/connections")
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 \"toolId\": \"<string>\",\n \"agentId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"connectionKey\": \"<string>\",\n \"metadata\": {},\n \"descriptionUsage\": \"Usa esta conexión cuando el usuario diga \\\"¿qué campañas existen?\\\"\",\n \"usageExample\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"status": "connected",
"toolId": "<string>",
"workspaceId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"agentId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"toolAgentConnectionId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"providerRef": "<string>",
"authorizationUrl": "<string>",
"message": "<string>",
"metadata": {},
"descriptionUsage": "<string>",
"usageExample": "<string>"
}{
"statusCode": 123,
"message": "<string>",
"error": "<string>",
"path": "<string>",
"timestamp": "2023-11-07T05:31:56Z",
"code": "<string>",
"details": {
"subcode": "<string>",
"workspaceId": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
}{
"statusCode": 123,
"message": "<string>",
"error": "<string>",
"path": "<string>",
"timestamp": "2023-11-07T05:31:56Z",
"code": "<string>",
"details": {
"subcode": "<string>",
"workspaceId": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
}{
"statusCode": 123,
"message": "<string>",
"error": "<string>",
"path": "<string>",
"timestamp": "2023-11-07T05:31:56Z",
"code": "<string>",
"details": {
"subcode": "<string>",
"workspaceId": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Headers
Identificador del workspace multi-tenant. Obligatorio al autenticar con Authorization: Bearer, donde su ausencia devuelve 400 Workspace context is required. Con x-api-key es opcional: la llave ya identifica a su workspace y lo que mandes aquí se ignora.
Clave única por operación para asegurar idempotencia en requests mutativos. Es opcional —sin ella la petición se ejecuta igual, pero un reintento crea una ejecución nueva—. Si se envía, debe medir entre 16 y 128 caracteres; fuera de ese rango la petición responde 400.
16 - 128Body
Payload utilizado para crear una conexión entre un agente y una tool indicando la tool en el body.
Identificador interno de la tool (snake_case).
Agente propietario de la conexión.
Identificador lógico opcional para distinguir múltiples conexiones a la misma tool.
Información contextual para el proveedor (displayName, región, tags, etc.).
Guía breve (en lenguaje natural) de cuándo debe usarse esta conexión.
"Usa esta conexión cuando el usuario diga \"¿qué campañas existen?\""
Ejemplo de uso recomendado (puede ser multi-línea).
Configuración de autenticación utilizada para la conexión.
Show child attributes
Show child attributes
Response
Conexión creada o registrada en estado pendiente
Estado actual de la conexión solicitada.
connected, pending, error, revoked Identificador interno de la conexión creada cuando el estado es connected.
Identificador de la entidad creada en el proveedor externo.
URL a la que debe dirigirse el usuario para completar el flujo cuando se requiere acción adicional.
Mensaje descriptivo sobre el estado de la conexión.
Información opcional suministrada por el adapter (p.ej. scopes otorgados).
Descripción breve de cuándo usar la conexión.
Ejemplo multi-línea de uso recomendado.
