curl --request GET \
--url https://api.galtea.ai/versions/{id}/compatible-metrics \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.galtea.ai/versions/{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/versions/{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/versions/{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/versions/{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/versions/{id}/compatible-metrics")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.galtea.ai/versions/{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"
}{
"error": "Error type",
"message": "Error message description"
}List metrics annotated with compatibility for a version
Returns evaluable metrics annotated with whether they can be satisfied by the version’s product metadata and conversation endpoint connection output mapping, plus a relevance ranking against the tests the evaluation will run against. Span-dependent and runtime-only params are out of scope and treated as always satisfied. A version with no conversation target at all (no endpoint, phone, or WebRTC connection) reports every metric incompatible, since this evaluation has to produce new output before scoring it. Its session counterpart GET /sessions/{id}/compatible-metrics scores output that is already recorded, so it assesses each parameter instead. When testIds are supplied, each metric is ranked linked (linked to a specification of one of those tests), matching (linked to a same-product specification whose testType matches one of those tests), or none. Without testIds every metric is none.
curl --request GET \
--url https://api.galtea.ai/versions/{id}/compatible-metrics \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.galtea.ai/versions/{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/versions/{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/versions/{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/versions/{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/versions/{id}/compatible-metrics")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.galtea.ai/versions/{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"
}{
"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
Version ID to evaluate compatibility against
Query Parameters
Maximum number of metrics to return (default 100)
Tests the evaluation will run against; drives the relevance ranking. All tests must belong to the version's product.
Response
List of metrics with compatibility and relevance 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"