Get template
curl --request GET \
--url https://api.coval.dev/v1/templates/{template_id} \
--header 'X-API-Key: <api-key>'import requests
url = "https://api.coval.dev/v1/templates/{template_id}"
headers = {"X-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-Key': '<api-key>'}};
fetch('https://api.coval.dev/v1/templates/{template_id}', 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.coval.dev/v1/templates/{template_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-API-Key: <api-key>"
],
]);
$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.coval.dev/v1/templates/{template_id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-Key", "<api-key>")
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.coval.dev/v1/templates/{template_id}")
.header("X-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.coval.dev/v1/templates/{template_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"template": {
"id": "abc123def456ghi789jklm",
"name": "templates/abc123def456ghi789jklm",
"template_name": "Customer Support Voice Template",
"description": "Standard voice simulation template",
"simulation_type": "SIMULATOR_VOICE",
"simulation_metadata": {
"greeting": "Hello, how can I help you?",
"max_duration_seconds": 300
},
"simulated_user_prompt": "You are a customer calling about a delayed delivery...",
"agent_id": "3zfmuDbVQsi4GaseDtiVcS",
"enabled_metrics": [
"metric_abc123"
],
"persona_ids": [
"persona_xyz789"
],
"test_set_id": "testset_def456",
"iteration_count": 10,
"concurrency": 5,
"sub_sample_size": 50,
"test_case_params_by_iteration": [
{
"iteration": 1,
"params": {
"custom_field": "value1"
}
}
],
"create_time": "2025-10-14T12:00:00Z",
"update_time": "2025-10-15T14:30:00Z"
}
}{
"error": {
"code": "INVALID_ARGUMENT",
"message": "Invalid request parameter",
"details": [
{
"field": "agent_id",
"description": "Agent not found or not accessible"
}
]
}
}{
"error": {
"code": "UNAUTHENTICATED",
"message": "Authentication failed",
"details": [
{
"field": "X-API-Key",
"description": "Invalid or missing API key"
}
]
}
}{
"error": {
"code": "NOT_FOUND",
"message": "Template not found",
"details": [
{
"field": "template_id",
"description": "Template not found or not accessible by your organization"
}
]
}
}{
"error": {
"code": "INTERNAL",
"message": "Internal server error",
"details": [
{
"description": "An unexpected error occurred"
}
]
}
}Templates
Get template
Retrieve a specific template configuration by its unique identifier.
GET
/
v1
/
templates
/
{template_id}
Get template
curl --request GET \
--url https://api.coval.dev/v1/templates/{template_id} \
--header 'X-API-Key: <api-key>'import requests
url = "https://api.coval.dev/v1/templates/{template_id}"
headers = {"X-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-Key': '<api-key>'}};
fetch('https://api.coval.dev/v1/templates/{template_id}', 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.coval.dev/v1/templates/{template_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-API-Key: <api-key>"
],
]);
$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.coval.dev/v1/templates/{template_id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-Key", "<api-key>")
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.coval.dev/v1/templates/{template_id}")
.header("X-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.coval.dev/v1/templates/{template_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"template": {
"id": "abc123def456ghi789jklm",
"name": "templates/abc123def456ghi789jklm",
"template_name": "Customer Support Voice Template",
"description": "Standard voice simulation template",
"simulation_type": "SIMULATOR_VOICE",
"simulation_metadata": {
"greeting": "Hello, how can I help you?",
"max_duration_seconds": 300
},
"simulated_user_prompt": "You are a customer calling about a delayed delivery...",
"agent_id": "3zfmuDbVQsi4GaseDtiVcS",
"enabled_metrics": [
"metric_abc123"
],
"persona_ids": [
"persona_xyz789"
],
"test_set_id": "testset_def456",
"iteration_count": 10,
"concurrency": 5,
"sub_sample_size": 50,
"test_case_params_by_iteration": [
{
"iteration": 1,
"params": {
"custom_field": "value1"
}
}
],
"create_time": "2025-10-14T12:00:00Z",
"update_time": "2025-10-15T14:30:00Z"
}
}{
"error": {
"code": "INVALID_ARGUMENT",
"message": "Invalid request parameter",
"details": [
{
"field": "agent_id",
"description": "Agent not found or not accessible"
}
]
}
}{
"error": {
"code": "UNAUTHENTICATED",
"message": "Authentication failed",
"details": [
{
"field": "X-API-Key",
"description": "Invalid or missing API key"
}
]
}
}{
"error": {
"code": "NOT_FOUND",
"message": "Template not found",
"details": [
{
"field": "template_id",
"description": "Template not found or not accessible by your organization"
}
]
}
}{
"error": {
"code": "INTERNAL",
"message": "Internal server error",
"details": [
{
"description": "An unexpected error occurred"
}
]
}
}Authorizations
API key for authentication
Path Parameters
Template resource ID
Pattern:
^[A-Za-z0-9]{22}$Response
Template retrieved successfully
Template configuration resource for reusable simulation setups.
Templates define complete simulation configurations including agent references, customer prompts, metrics, personas, and execution parameters.
Show child attributes
Show child attributes
Was this page helpful?
⌘I