curl --request GET \
--url https://api-prod.studio.getsupervisor.ai/v1/message-templates \
--header 'Authorization: Bearer <token>'import requests
url = "https://api-prod.studio.getsupervisor.ai/v1/message-templates"
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/message-templates', 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/message-templates",
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/message-templates"
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/message-templates")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-prod.studio.getsupervisor.ai/v1/message-templates")
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": "abc123",
"channel": "whatsapp",
"name": "promo_verano",
"category": "marketing",
"status": "approved",
"language": "es_MX",
"body": "Hola {{nombre}}, tu descuento del {{porcentaje}}% ya está activo."
}
]{
"code": "MESSAGE_TEMPLATE_UNSUPPORTED_CHANNEL",
"message": "Unsupported channel 'telegram'"
}{
"code": "WHATSAPP_CREDENTIALS_NOT_CONFIGURED",
"message": "WhatsApp credentials not configured for this workspace"
}Listar message templates del workspace
Retorna todos los message templates registrados en Kapso para el workspace activo.
Solo soporta el canal whatsapp. Si el workspace no tiene credenciales Kapso configuradas
retorna 409.
curl --request GET \
--url https://api-prod.studio.getsupervisor.ai/v1/message-templates \
--header 'Authorization: Bearer <token>'import requests
url = "https://api-prod.studio.getsupervisor.ai/v1/message-templates"
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/message-templates', 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/message-templates",
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/message-templates"
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/message-templates")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-prod.studio.getsupervisor.ai/v1/message-templates")
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": "abc123",
"channel": "whatsapp",
"name": "promo_verano",
"category": "marketing",
"status": "approved",
"language": "es_MX",
"body": "Hola {{nombre}}, tu descuento del {{porcentaje}}% ya está activo."
}
]{
"code": "MESSAGE_TEMPLATE_UNSUPPORTED_CHANNEL",
"message": "Unsupported channel 'telegram'"
}{
"code": "WHATSAPP_CREDENTIALS_NOT_CONFIGURED",
"message": "WhatsApp credentials not configured for this workspace"
}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.
Query Parameters
Canal a filtrar. Actualmente solo se soporta whatsapp.
whatsapp Response
Listado de message templates del workspace
Identificador del template en Kapso.
Canal de mensajería del template.
whatsapp Nombre normalizado del template (snake_case, solo letras, números y guiones bajos).
Categoría del template según la clasificación de WhatsApp Business API.
utility, marketing, authentication Estado de aprobación del template (ej. approved, pending, rejected).
Código de idioma del template (ej. es_MX, es_ES).
Texto del cuerpo del template. Las variables se representan con nombre, ej. {{nombre}}.
