Get annotations with metric outputs
curl --request POST \
--url https://api.coval.dev/v1/review-annotations:withMetricOutputs \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"metric_id": "<string>",
"metric_ids": [
"<string>"
],
"simulation_output_ids": [
"<string>"
],
"project_ids": [
"<string>"
],
"filter_archived": false,
"include_metric_output_details": true,
"include_audio_lengths": true,
"page_size": 500,
"page_token": "<string>"
}
'import requests
url = "https://api.coval.dev/v1/review-annotations:withMetricOutputs"
payload = {
"metric_id": "<string>",
"metric_ids": ["<string>"],
"simulation_output_ids": ["<string>"],
"project_ids": ["<string>"],
"filter_archived": False,
"include_metric_output_details": True,
"include_audio_lengths": True,
"page_size": 500,
"page_token": "<string>"
}
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
metric_id: '<string>',
metric_ids: ['<string>'],
simulation_output_ids: ['<string>'],
project_ids: ['<string>'],
filter_archived: false,
include_metric_output_details: true,
include_audio_lengths: true,
page_size: 500,
page_token: '<string>'
})
};
fetch('https://api.coval.dev/v1/review-annotations:withMetricOutputs', 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/review-annotations:withMetricOutputs",
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([
'metric_id' => '<string>',
'metric_ids' => [
'<string>'
],
'simulation_output_ids' => [
'<string>'
],
'project_ids' => [
'<string>'
],
'filter_archived' => false,
'include_metric_output_details' => true,
'include_audio_lengths' => true,
'page_size' => 500,
'page_token' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"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"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.coval.dev/v1/review-annotations:withMetricOutputs"
payload := strings.NewReader("{\n \"metric_id\": \"<string>\",\n \"metric_ids\": [\n \"<string>\"\n ],\n \"simulation_output_ids\": [\n \"<string>\"\n ],\n \"project_ids\": [\n \"<string>\"\n ],\n \"filter_archived\": false,\n \"include_metric_output_details\": true,\n \"include_audio_lengths\": true,\n \"page_size\": 500,\n \"page_token\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-API-Key", "<api-key>")
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.coval.dev/v1/review-annotations:withMetricOutputs")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"metric_id\": \"<string>\",\n \"metric_ids\": [\n \"<string>\"\n ],\n \"simulation_output_ids\": [\n \"<string>\"\n ],\n \"project_ids\": [\n \"<string>\"\n ],\n \"filter_archived\": false,\n \"include_metric_output_details\": true,\n \"include_audio_lengths\": true,\n \"page_size\": 500,\n \"page_token\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.coval.dev/v1/review-annotations:withMetricOutputs")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-API-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"metric_id\": \"<string>\",\n \"metric_ids\": [\n \"<string>\"\n ],\n \"simulation_output_ids\": [\n \"<string>\"\n ],\n \"project_ids\": [\n \"<string>\"\n ],\n \"filter_archived\": false,\n \"include_metric_output_details\": true,\n \"include_audio_lengths\": true,\n \"page_size\": 500,\n \"page_token\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"annotations": {},
"metric_outputs": {},
"audio_lengths_by_simulation_output_id": {},
"next_page_token": "<string>"
}{
"error": {
"code": "INVALID_ARGUMENT",
"message": "Invalid request body",
"details": [
{
"field": "simulation_output_id",
"description": "simulation_output_id is required"
}
]
}
}{
"error": {
"code": "UNAUTHENTICATED",
"message": "Authentication failed",
"details": [
{
"field": "X-API-Key",
"description": "Invalid or missing API key"
}
]
}
}{
"error": {
"code": "PERMISSION_DENIED",
"message": "Insufficient permissions",
"details": [
{
"field": "permissions",
"description": "The API key does not include the required reviews permission."
}
]
}
}{
"error": {
"code": "INTERNAL",
"message": "Internal server error",
"details": [
{
"description": "An unexpected error occurred"
}
]
}
}{
"error": {
"code": "INTERNAL",
"message": "Service temporarily unavailable",
"details": [
{
"description": "Database routing is temporarily unavailable. Please retry."
}
]
}
}Reviews
Get annotations with metric outputs
Review annotations grouped by metric plus the latest pipeline metric outputs, scoped by any of metric_ids / simulation_output_ids / project_ids (all optional). Offset-paginated via page_token / page_size.
POST
/
review-annotations:withMetricOutputs
Get annotations with metric outputs
curl --request POST \
--url https://api.coval.dev/v1/review-annotations:withMetricOutputs \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"metric_id": "<string>",
"metric_ids": [
"<string>"
],
"simulation_output_ids": [
"<string>"
],
"project_ids": [
"<string>"
],
"filter_archived": false,
"include_metric_output_details": true,
"include_audio_lengths": true,
"page_size": 500,
"page_token": "<string>"
}
'import requests
url = "https://api.coval.dev/v1/review-annotations:withMetricOutputs"
payload = {
"metric_id": "<string>",
"metric_ids": ["<string>"],
"simulation_output_ids": ["<string>"],
"project_ids": ["<string>"],
"filter_archived": False,
"include_metric_output_details": True,
"include_audio_lengths": True,
"page_size": 500,
"page_token": "<string>"
}
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
metric_id: '<string>',
metric_ids: ['<string>'],
simulation_output_ids: ['<string>'],
project_ids: ['<string>'],
filter_archived: false,
include_metric_output_details: true,
include_audio_lengths: true,
page_size: 500,
page_token: '<string>'
})
};
fetch('https://api.coval.dev/v1/review-annotations:withMetricOutputs', 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/review-annotations:withMetricOutputs",
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([
'metric_id' => '<string>',
'metric_ids' => [
'<string>'
],
'simulation_output_ids' => [
'<string>'
],
'project_ids' => [
'<string>'
],
'filter_archived' => false,
'include_metric_output_details' => true,
'include_audio_lengths' => true,
'page_size' => 500,
'page_token' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"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"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.coval.dev/v1/review-annotations:withMetricOutputs"
payload := strings.NewReader("{\n \"metric_id\": \"<string>\",\n \"metric_ids\": [\n \"<string>\"\n ],\n \"simulation_output_ids\": [\n \"<string>\"\n ],\n \"project_ids\": [\n \"<string>\"\n ],\n \"filter_archived\": false,\n \"include_metric_output_details\": true,\n \"include_audio_lengths\": true,\n \"page_size\": 500,\n \"page_token\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-API-Key", "<api-key>")
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.coval.dev/v1/review-annotations:withMetricOutputs")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"metric_id\": \"<string>\",\n \"metric_ids\": [\n \"<string>\"\n ],\n \"simulation_output_ids\": [\n \"<string>\"\n ],\n \"project_ids\": [\n \"<string>\"\n ],\n \"filter_archived\": false,\n \"include_metric_output_details\": true,\n \"include_audio_lengths\": true,\n \"page_size\": 500,\n \"page_token\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.coval.dev/v1/review-annotations:withMetricOutputs")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-API-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"metric_id\": \"<string>\",\n \"metric_ids\": [\n \"<string>\"\n ],\n \"simulation_output_ids\": [\n \"<string>\"\n ],\n \"project_ids\": [\n \"<string>\"\n ],\n \"filter_archived\": false,\n \"include_metric_output_details\": true,\n \"include_audio_lengths\": true,\n \"page_size\": 500,\n \"page_token\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"annotations": {},
"metric_outputs": {},
"audio_lengths_by_simulation_output_id": {},
"next_page_token": "<string>"
}{
"error": {
"code": "INVALID_ARGUMENT",
"message": "Invalid request body",
"details": [
{
"field": "simulation_output_id",
"description": "simulation_output_id is required"
}
]
}
}{
"error": {
"code": "UNAUTHENTICATED",
"message": "Authentication failed",
"details": [
{
"field": "X-API-Key",
"description": "Invalid or missing API key"
}
]
}
}{
"error": {
"code": "PERMISSION_DENIED",
"message": "Insufficient permissions",
"details": [
{
"field": "permissions",
"description": "The API key does not include the required reviews permission."
}
]
}
}{
"error": {
"code": "INTERNAL",
"message": "Internal server error",
"details": [
{
"description": "An unexpected error occurred"
}
]
}
}{
"error": {
"code": "INTERNAL",
"message": "Service temporarily unavailable",
"details": [
{
"description": "Database routing is temporarily unavailable. Please retry."
}
]
}
}Authorizations
Organization API key for authentication
Body
application/json
Maximum array length:
10000Maximum array length:
10000Maximum array length:
1000Required range:
1 <= x <= 1000Response
Annotations retrieved successfully
Annotations keyed by metric ID.
Show child attributes
Show child attributes
Latest pipeline metric output keyed by metric ID then simulation output ID.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Was this page helpful?
⌘I