curl --request POST \
--url https://api.example.com/v3/evaluator-rules \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"application_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"evaluator_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"mapped_input_keys": {},
"mapped_semantic_names": {},
"backfill": false,
"sampling_rate": 1,
"backfill_start_time": "2023-11-07T05:31:56Z"
}
'import requests
url = "https://api.example.com/v3/evaluator-rules"
payload = {
"name": "<string>",
"application_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"evaluator_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"mapped_input_keys": {},
"mapped_semantic_names": {},
"backfill": False,
"sampling_rate": 1,
"backfill_start_time": "2023-11-07T05:31:56Z"
}
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({
name: '<string>',
application_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
evaluator_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
mapped_input_keys: {},
mapped_semantic_names: {},
backfill: false,
sampling_rate: 1,
backfill_start_time: '2023-11-07T05:31:56Z'
})
};
fetch('https://api.example.com/v3/evaluator-rules', 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.example.com/v3/evaluator-rules",
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>',
'application_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'evaluator_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'mapped_input_keys' => [
],
'mapped_semantic_names' => [
],
'backfill' => false,
'sampling_rate' => 1,
'backfill_start_time' => '2023-11-07T05:31:56Z'
]),
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.example.com/v3/evaluator-rules"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"application_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"evaluator_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"mapped_input_keys\": {},\n \"mapped_semantic_names\": {},\n \"backfill\": false,\n \"sampling_rate\": 1,\n \"backfill_start_time\": \"2023-11-07T05:31:56Z\"\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.example.com/v3/evaluator-rules")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"application_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"evaluator_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"mapped_input_keys\": {},\n \"mapped_semantic_names\": {},\n \"backfill\": false,\n \"sampling_rate\": 1,\n \"backfill_start_time\": \"2023-11-07T05:31:56Z\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/v3/evaluator-rules")
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 \"name\": \"<string>\",\n \"application_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"evaluator_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"mapped_input_keys\": {},\n \"mapped_semantic_names\": {},\n \"backfill\": false,\n \"sampling_rate\": 1,\n \"backfill_start_time\": \"2023-11-07T05:31:56Z\"\n}"
response = http.request(request)
puts response.read_body{
"api_version": "3.0",
"kind": "NORMAL",
"data": {
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"evaluator_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"evaluator_name": "<string>",
"evaluator_type": "topic_classification",
"evaluator_type_display_name": "<string>",
"mapped_input_keys": {},
"filters": {
"condition": "AND",
"rules": [
"AND"
]
},
"outputs": [
{
"name": "<string>",
"type": "boolean",
"possible_values": [
"<string>"
]
}
],
"enabled": true,
"backfill": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"backfill_start_time": "2023-11-07T05:31:56Z",
"status": "PENDING"
},
"mapped_semantic_names": {},
"sampling_rate": 0.5,
"application": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>"
}
}
}{
"api_version": "3.0",
"kind": "ERROR",
"error": {
"code": 400,
"message": "Resource Not Found",
"errors": [
{
"reason": "ResourceNotFoundException",
"message": "Resource Not Found",
"help": "<string>"
}
]
}
}{
"api_version": "3.0",
"kind": "ERROR",
"error": {
"code": 400,
"message": "Resource Not Found",
"errors": [
{
"reason": "ResourceNotFoundException",
"message": "Resource Not Found",
"help": "<string>"
}
]
}
}{
"api_version": "3.0",
"kind": "ERROR",
"error": {
"code": 400,
"message": "Resource Not Found",
"errors": [
{
"reason": "ResourceNotFoundException",
"message": "Resource Not Found",
"help": "<string>"
}
]
}
}Create New Evaluator Rule
Create a new Evaluator Rule
curl --request POST \
--url https://api.example.com/v3/evaluator-rules \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"application_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"evaluator_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"mapped_input_keys": {},
"mapped_semantic_names": {},
"backfill": false,
"sampling_rate": 1,
"backfill_start_time": "2023-11-07T05:31:56Z"
}
'import requests
url = "https://api.example.com/v3/evaluator-rules"
payload = {
"name": "<string>",
"application_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"evaluator_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"mapped_input_keys": {},
"mapped_semantic_names": {},
"backfill": False,
"sampling_rate": 1,
"backfill_start_time": "2023-11-07T05:31:56Z"
}
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({
name: '<string>',
application_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
evaluator_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
mapped_input_keys: {},
mapped_semantic_names: {},
backfill: false,
sampling_rate: 1,
backfill_start_time: '2023-11-07T05:31:56Z'
})
};
fetch('https://api.example.com/v3/evaluator-rules', 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.example.com/v3/evaluator-rules",
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>',
'application_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'evaluator_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'mapped_input_keys' => [
],
'mapped_semantic_names' => [
],
'backfill' => false,
'sampling_rate' => 1,
'backfill_start_time' => '2023-11-07T05:31:56Z'
]),
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.example.com/v3/evaluator-rules"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"application_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"evaluator_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"mapped_input_keys\": {},\n \"mapped_semantic_names\": {},\n \"backfill\": false,\n \"sampling_rate\": 1,\n \"backfill_start_time\": \"2023-11-07T05:31:56Z\"\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.example.com/v3/evaluator-rules")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"application_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"evaluator_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"mapped_input_keys\": {},\n \"mapped_semantic_names\": {},\n \"backfill\": false,\n \"sampling_rate\": 1,\n \"backfill_start_time\": \"2023-11-07T05:31:56Z\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/v3/evaluator-rules")
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 \"name\": \"<string>\",\n \"application_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"evaluator_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"mapped_input_keys\": {},\n \"mapped_semantic_names\": {},\n \"backfill\": false,\n \"sampling_rate\": 1,\n \"backfill_start_time\": \"2023-11-07T05:31:56Z\"\n}"
response = http.request(request)
puts response.read_body{
"api_version": "3.0",
"kind": "NORMAL",
"data": {
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"evaluator_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"evaluator_name": "<string>",
"evaluator_type": "topic_classification",
"evaluator_type_display_name": "<string>",
"mapped_input_keys": {},
"filters": {
"condition": "AND",
"rules": [
"AND"
]
},
"outputs": [
{
"name": "<string>",
"type": "boolean",
"possible_values": [
"<string>"
]
}
],
"enabled": true,
"backfill": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"backfill_start_time": "2023-11-07T05:31:56Z",
"status": "PENDING"
},
"mapped_semantic_names": {},
"sampling_rate": 0.5,
"application": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>"
}
}
}{
"api_version": "3.0",
"kind": "ERROR",
"error": {
"code": 400,
"message": "Resource Not Found",
"errors": [
{
"reason": "ResourceNotFoundException",
"message": "Resource Not Found",
"help": "<string>"
}
]
}
}{
"api_version": "3.0",
"kind": "ERROR",
"error": {
"code": 400,
"message": "Resource Not Found",
"errors": [
{
"reason": "ResourceNotFoundException",
"message": "Resource Not Found",
"help": "<string>"
}
]
}
}{
"api_version": "3.0",
"kind": "ERROR",
"error": {
"code": 400,
"message": "Resource Not Found",
"errors": [
{
"reason": "ResourceNotFoundException",
"message": "Resource Not Found",
"help": "<string>"
}
]
}
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Body
Request body for creating a Rule evaluator with filters
Name of the Rule evaluator
Application UUID
UUID of the corresponding evaluator
Mapping of input field names to verbatim span attribute keys (framework-specific). Mutually exclusive with mapped_semantic_names — provide exactly one.
Show child attributes
Show child attributes
Mapping of input field names to semantic concept names (framework-agnostic). Same structure as mapped_input_keys but values are semantic concepts instead of literal attribute keys. The enrichment worker resolves each concept to all mapped attribute keys at evaluation time via the semantic mapping cache. Valid concepts: input, output, system_instructions, retrieval_context, tool_input, tool_output. Mutually exclusive with mapped_input_keys — provide exactly one.
Show child attributes
Show child attributes
Filters for applying Rule evaluator
Show child attributes
Show child attributes
Whether to backfill already ingested spans
Fraction of matching spans on which this evaluator runs, in the half-open range (0.0, 1.0]. Defaults to 1.0 (every matching span). Traces are always persisted even when downsampling is enabled. To pause evaluation entirely, create the rule and then PATCH it with enabled=false — a small sampling_rate is not a pause mechanism (and enabled is not accepted on this create request).
0 < x <= 1Starting point for backfill in case backfill is not required for the entire period
Response
Details of the created evaluator rule
Was this page helpful?