curl --request GET \
--url https://api-prod.studio.getsupervisor.ai/v1/agents/{agentId}/blueprints/{blueprintId}/stages/{stageId} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api-prod.studio.getsupervisor.ai/v1/agents/{agentId}/blueprints/{blueprintId}/stages/{stageId}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api-prod.studio.getsupervisor.ai/v1/agents/{agentId}/blueprints/{blueprintId}/stages/{stageId}', 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/agents/{agentId}/blueprints/{blueprintId}/stages/{stageId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api-prod.studio.getsupervisor.ai/v1/agents/{agentId}/blueprints/{blueprintId}/stages/{stageId}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api-prod.studio.getsupervisor.ai/v1/agents/{agentId}/blueprints/{blueprintId}/stages/{stageId}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-prod.studio.getsupervisor.ai/v1/agents/{agentId}/blueprints/{blueprintId}/stages/{stageId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"id": "0f44f6d1-f466-4367-bf25-37ce49b0d9c8",
"agentId": "38f62697-0f4b-49bc-8a0c-67256f5af6ff",
"blueprintId": "c09f3fa9-5082-4b0e-96b8-7426e672d88a",
"name": "welcome",
"title": "Bienvenida",
"goalPrompt": "Saluda, valida que el lead hable español y confirma disponibilidad para asistirlo.",
"promptInstructions": [
"Identifica el idioma del usuario",
"Confirma que está listo para la siguiente etapa"
],
"order": 0,
"triggers": [
{
"id": "72bf4f36-9d60-4f2f-94d9-5a52e5411ae9",
"stageId": "0f44f6d1-f466-4367-bf25-37ce49b0d9c8",
"blueprintId": "c09f3fa9-5082-4b0e-96b8-7426e672d88a",
"condition": {
"type": "intent",
"value": "schedule_call"
},
"nextStageName": "schedule_call",
"createdAt": "2025-10-01T14:07:11.000Z",
"updatedAt": "2025-10-01T14:07:11.000Z"
}
],
"metadata": {
"channel": "voice"
},
"createdAt": "2025-10-01T14:07:11.000Z",
"updatedAt": "2025-10-05T09:32:42.000Z"
}{
"statusCode": 404,
"error": "Not Found",
"message": "El stage indicado no existe para este agente"
}Obtener detalle de un stage específico
curl --request GET \
--url https://api-prod.studio.getsupervisor.ai/v1/agents/{agentId}/blueprints/{blueprintId}/stages/{stageId} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api-prod.studio.getsupervisor.ai/v1/agents/{agentId}/blueprints/{blueprintId}/stages/{stageId}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api-prod.studio.getsupervisor.ai/v1/agents/{agentId}/blueprints/{blueprintId}/stages/{stageId}', 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/agents/{agentId}/blueprints/{blueprintId}/stages/{stageId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api-prod.studio.getsupervisor.ai/v1/agents/{agentId}/blueprints/{blueprintId}/stages/{stageId}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api-prod.studio.getsupervisor.ai/v1/agents/{agentId}/blueprints/{blueprintId}/stages/{stageId}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-prod.studio.getsupervisor.ai/v1/agents/{agentId}/blueprints/{blueprintId}/stages/{stageId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"id": "0f44f6d1-f466-4367-bf25-37ce49b0d9c8",
"agentId": "38f62697-0f4b-49bc-8a0c-67256f5af6ff",
"blueprintId": "c09f3fa9-5082-4b0e-96b8-7426e672d88a",
"name": "welcome",
"title": "Bienvenida",
"goalPrompt": "Saluda, valida que el lead hable español y confirma disponibilidad para asistirlo.",
"promptInstructions": [
"Identifica el idioma del usuario",
"Confirma que está listo para la siguiente etapa"
],
"order": 0,
"triggers": [
{
"id": "72bf4f36-9d60-4f2f-94d9-5a52e5411ae9",
"stageId": "0f44f6d1-f466-4367-bf25-37ce49b0d9c8",
"blueprintId": "c09f3fa9-5082-4b0e-96b8-7426e672d88a",
"condition": {
"type": "intent",
"value": "schedule_call"
},
"nextStageName": "schedule_call",
"createdAt": "2025-10-01T14:07:11.000Z",
"updatedAt": "2025-10-01T14:07:11.000Z"
}
],
"metadata": {
"channel": "voice"
},
"createdAt": "2025-10-01T14:07:11.000Z",
"updatedAt": "2025-10-05T09:32:42.000Z"
}{
"statusCode": 404,
"error": "Not Found",
"message": "El stage indicado no existe para este agente"
}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.
Path Parameters
Identificador del agente
Identificador del blueprint del agente (se obtiene de GET /v1/agents/{agentId}/blueprints)
Identificador del stage dentro del blueprint del agente
Response
Stage encontrado
Nombre estable del stage (slug amigable para referencias entre triggers).
1Título legible que se muestra en el editor.
Objetivo del stage expresado como prompt de alto nivel.
1Lista ordenada de instrucciones que contextualizan el goal prompt.
Posición del stage dentro del blueprint.
Triggers asociados al stage.
Show child attributes
Show child attributes
Campos adicionales definidos por el workspace.
Variables detectadas en el goal prompt e instrucciones del stage.
