Create Test Case
curl --request POST \
--url https://api.pathors.com/v1/projects/{projectId}/test-cases \
--header 'Authorization: <authorization>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"systemPrompt": "<string>",
"maxTurns": 123,
"variables": {},
"acceptanceCriteria": [
{}
]
}
'import requests
url = "https://api.pathors.com/v1/projects/{projectId}/test-cases"
payload = {
"name": "<string>",
"systemPrompt": "<string>",
"maxTurns": 123,
"variables": {},
"acceptanceCriteria": [{}]
}
headers = {
"Authorization": "<authorization>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: '<authorization>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
systemPrompt: '<string>',
maxTurns: 123,
variables: {},
acceptanceCriteria: [{}]
})
};
fetch('https://api.pathors.com/v1/projects/{projectId}/test-cases', 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.pathors.com/v1/projects/{projectId}/test-cases",
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([
'name' => '<string>',
'systemPrompt' => '<string>',
'maxTurns' => 123,
'variables' => [
],
'acceptanceCriteria' => [
[
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: <authorization>",
"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.pathors.com/v1/projects/{projectId}/test-cases"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"systemPrompt\": \"<string>\",\n \"maxTurns\": 123,\n \"variables\": {},\n \"acceptanceCriteria\": [\n {}\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "<authorization>")
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.pathors.com/v1/projects/{projectId}/test-cases")
.header("Authorization", "<authorization>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"systemPrompt\": \"<string>\",\n \"maxTurns\": 123,\n \"variables\": {},\n \"acceptanceCriteria\": [\n {}\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.pathors.com/v1/projects/{projectId}/test-cases")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<authorization>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"systemPrompt\": \"<string>\",\n \"maxTurns\": 123,\n \"variables\": {},\n \"acceptanceCriteria\": [\n {}\n ]\n}"
response = http.request(request)
puts response.read_bodyCreate Test Case
Create a new test case for a project
POST
/
v1
/
projects
/
{projectId}
/
test-cases
Create Test Case
curl --request POST \
--url https://api.pathors.com/v1/projects/{projectId}/test-cases \
--header 'Authorization: <authorization>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"systemPrompt": "<string>",
"maxTurns": 123,
"variables": {},
"acceptanceCriteria": [
{}
]
}
'import requests
url = "https://api.pathors.com/v1/projects/{projectId}/test-cases"
payload = {
"name": "<string>",
"systemPrompt": "<string>",
"maxTurns": 123,
"variables": {},
"acceptanceCriteria": [{}]
}
headers = {
"Authorization": "<authorization>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: '<authorization>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
systemPrompt: '<string>',
maxTurns: 123,
variables: {},
acceptanceCriteria: [{}]
})
};
fetch('https://api.pathors.com/v1/projects/{projectId}/test-cases', 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.pathors.com/v1/projects/{projectId}/test-cases",
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([
'name' => '<string>',
'systemPrompt' => '<string>',
'maxTurns' => 123,
'variables' => [
],
'acceptanceCriteria' => [
[
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: <authorization>",
"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.pathors.com/v1/projects/{projectId}/test-cases"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"systemPrompt\": \"<string>\",\n \"maxTurns\": 123,\n \"variables\": {},\n \"acceptanceCriteria\": [\n {}\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "<authorization>")
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.pathors.com/v1/projects/{projectId}/test-cases")
.header("Authorization", "<authorization>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"systemPrompt\": \"<string>\",\n \"maxTurns\": 123,\n \"variables\": {},\n \"acceptanceCriteria\": [\n {}\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.pathors.com/v1/projects/{projectId}/test-cases")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<authorization>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"systemPrompt\": \"<string>\",\n \"maxTurns\": 123,\n \"variables\": {},\n \"acceptanceCriteria\": [\n {}\n ]\n}"
response = http.request(request)
puts response.read_bodyRequest
POST https://api.pathors.com/v1/projects/{projectId}/test-cases
Path Parameters
string
required
The project ID
Headers
string
required
Bearer token using your developer key
Body
string
required
Name of the test case
string
required
The system prompt used to simulate the user in the test
integer
required
Maximum number of conversation turns (minimum 1)
object
Key-value pairs of variables to inject into the test
array
Array of acceptance criteria descriptions (strings)
Response
Returns the created test case with status201.
Example
curl -X POST https://api.pathors.com/v1/projects/{projectId}/test-cases \
-H "Authorization: Bearer dk_your_key" \
-H "Content-Type: application/json" \
-d '{
"name": "Greeting flow",
"systemPrompt": "You are a customer asking about pricing",
"maxTurns": 5,
"variables": { "language": "en" },
"acceptanceCriteria": [
"Agent should greet the user",
"Agent should provide pricing info"
]
}'
{
"data": {
"id": "test-case-uuid",
"projectId": "project-uuid",
"name": "Greeting flow",
"systemPrompt": "You are a customer asking about pricing",
"maxTurns": 5,
"variables": { "language": "en" },
"acceptanceCriteria": [
{
"id": "criterion-uuid-1",
"testCaseId": "test-case-uuid",
"description": "Agent should greet the user"
},
{
"id": "criterion-uuid-2",
"testCaseId": "test-case-uuid",
"description": "Agent should provide pricing info"
}
],
"createdAt": "2026-03-23T00:00:00.000Z",
"updatedAt": "2026-03-23T00:00:00.000Z"
}
}
⌘I
