curl --request GET \
--url https://api.galtea.ai/sessions/{id}/compatible-metrics \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.galtea.ai/sessions/{id}/compatible-metrics"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.galtea.ai/sessions/{id}/compatible-metrics', 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.galtea.ai/sessions/{id}/compatible-metrics",
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.galtea.ai/sessions/{id}/compatible-metrics"
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.galtea.ai/sessions/{id}/compatible-metrics")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.galtea.ai/sessions/{id}/compatible-metrics")
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": "metric_123",
"name": "Accuracy",
"isCompatible": true,
"relevance": "linked",
"source": "PARTIAL_PROMPT",
"description": "Measures the accuracy of responses",
"incompatibilityReason": "Missing required parameters: product_capabilities, retrieval_context"
}
]{
"error": "Error type",
"message": "Error message description"
}{
"error": "Error type",
"message": "Error message description"
}List metrics annotated with compatibility for a session
Returns evaluable metrics annotated with whether they can be satisfied by the session’s product metadata and test-case availability, plus a relevance ranking derived from the session’s test case’s test (linked/matching/none). A session evaluation scores output that is already stored, so the version needs no conversation target (endpoint, phone, or WebRTC connection) and compatibility never depends on one. Production (monitoring) sessions have no test case, so every metric is none, and a metric is incompatible when it needs a test-case param that monitoring cannot supply (expected_output, context, expected_tools, user_persona, goal, scenario, stopping_criterias). The input param stays available, so a metric needing only that one is still compatible. Span-dependent and runtime-only params are out of scope and treated as always satisfied.
curl --request GET \
--url https://api.galtea.ai/sessions/{id}/compatible-metrics \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.galtea.ai/sessions/{id}/compatible-metrics"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.galtea.ai/sessions/{id}/compatible-metrics', 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.galtea.ai/sessions/{id}/compatible-metrics",
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.galtea.ai/sessions/{id}/compatible-metrics"
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.galtea.ai/sessions/{id}/compatible-metrics")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.galtea.ai/sessions/{id}/compatible-metrics")
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": "metric_123",
"name": "Accuracy",
"isCompatible": true,
"relevance": "linked",
"source": "PARTIAL_PROMPT",
"description": "Measures the accuracy of responses",
"incompatibilityReason": "Missing required parameters: product_capabilities, retrieval_context"
}
]{
"error": "Error type",
"message": "Error message description"
}{
"error": "Error type",
"message": "Error message description"
}Authorizations
API key authorization. Pass your API key in the Authorization header as a Bearer token. Both new (gsk_*) and legacy (gsk-) API keys are accepted, e.g. Authorization: Bearer gsk_... or Authorization: Bearer gsk-....
Path Parameters
Session ID to evaluate compatibility against
Query Parameters
Maximum number of metrics to return (default 100)
Response
List of metrics with compatibility annotations
"metric_123"
"Accuracy"
Whether the metric can be satisfied by the resolved evaluation context. Always checked against the product metadata and test-case availability; the conversation endpoint connection output mapping is only checked when the evaluation has to produce new output.
How relevant the metric is to the tests the evaluation runs against. linked: linked to a specification of one of those tests. matching: linked to a same-product specification whose testType matches one of those tests. none: neither, or no test context was provided.
linked, matching, none "linked"
Evaluation method for the metric. FULL_PROMPT is deprecated for creation — POST /metrics rejects it with a 400. Use PARTIAL_PROMPT for new AI Evaluation metrics. The value remains in the enum because existing FULL_PROMPT metrics are still returned by reads and filters.
SELF_HOSTED, FULL_PROMPT, PARTIAL_PROMPT, HUMAN_EVALUATION, GEVAL, DEEPEVAL, DETERMINISTIC "PARTIAL_PROMPT"
"Measures the accuracy of responses"
Human-readable explanation of why the metric is incompatible. Non-null iff isCompatible === false.
"Missing required parameters: product_capabilities, retrieval_context"