curl --request GET \
--url https://api.avidoai.com/v0/reporting/eval-stats/by-date-and-definition \
--header 'x-api-key: <api-key>' \
--header 'x-application-id: <api-key>'import requests
url = "https://api.avidoai.com/v0/reporting/eval-stats/by-date-and-definition"
headers = {
"x-api-key": "<api-key>",
"x-application-id": "<api-key>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {'x-api-key': '<api-key>', 'x-application-id': '<api-key>'}
};
fetch('https://api.avidoai.com/v0/reporting/eval-stats/by-date-and-definition', 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.avidoai.com/v0/reporting/eval-stats/by-date-and-definition",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: <api-key>",
"x-application-id: <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"
"net/http"
"io"
)
func main() {
url := "https://api.avidoai.com/v0/reporting/eval-stats/by-date-and-definition"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
req.Header.Add("x-application-id", "<api-key>")
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.avidoai.com/v0/reporting/eval-stats/by-date-and-definition")
.header("x-api-key", "<api-key>")
.header("x-application-id", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.avidoai.com/v0/reporting/eval-stats/by-date-and-definition")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
request["x-application-id"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"stats": [
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"date": "2025-01-05T00:00:00.000Z",
"passed": 42,
"total": 50,
"avgScore": 0.84
}
],
"total": 50
}{
"message": "Resource not found"
}{
"message": "Resource not found"
}{
"message": "Resource not found"
}{
"message": "Invalid request data",
"issues": [
{
"code": "invalid_string",
"message": "Invalid UUID",
"path": [
"id"
]
}
]
}{
"message": "Resource not found"
}Get eval stats aggregated by date and eval definition
Aggregates eval pass/total/avg-score counts bucketed by time granularity and eval definition.
curl --request GET \
--url https://api.avidoai.com/v0/reporting/eval-stats/by-date-and-definition \
--header 'x-api-key: <api-key>' \
--header 'x-application-id: <api-key>'import requests
url = "https://api.avidoai.com/v0/reporting/eval-stats/by-date-and-definition"
headers = {
"x-api-key": "<api-key>",
"x-application-id": "<api-key>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {'x-api-key': '<api-key>', 'x-application-id': '<api-key>'}
};
fetch('https://api.avidoai.com/v0/reporting/eval-stats/by-date-and-definition', 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.avidoai.com/v0/reporting/eval-stats/by-date-and-definition",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: <api-key>",
"x-application-id: <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"
"net/http"
"io"
)
func main() {
url := "https://api.avidoai.com/v0/reporting/eval-stats/by-date-and-definition"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
req.Header.Add("x-application-id", "<api-key>")
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.avidoai.com/v0/reporting/eval-stats/by-date-and-definition")
.header("x-api-key", "<api-key>")
.header("x-application-id", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.avidoai.com/v0/reporting/eval-stats/by-date-and-definition")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
request["x-application-id"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"stats": [
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"date": "2025-01-05T00:00:00.000Z",
"passed": 42,
"total": 50,
"avgScore": 0.84
}
],
"total": 50
}{
"message": "Resource not found"
}{
"message": "Resource not found"
}{
"message": "Resource not found"
}{
"message": "Invalid request data",
"issues": [
{
"code": "invalid_string",
"message": "Invalid UUID",
"path": [
"id"
]
}
]
}{
"message": "Resource not found"
}Authorizations
Your unique Avido API key
Your unique Avido Application ID
Query Parameters
Start of the time range (ISO8601, inclusive).
^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$"2025-01-01T00:00:00Z"
End of the time range (ISO8601, inclusive).
^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$"2025-01-31T23:59:59Z"
Optional list of topic IDs to restrict the aggregation to.
200^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$["123e4567-e89b-12d3-a456-426614174000"]
Optional task ID to restrict the aggregation to.
^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"456e7890-e89b-12d3-a456-426614174000"
Granularity used to bucket rows by date. Defaults to '1d' when omitted.
1h, 1d, 1w, 1mo "1d"
Optional list of run types to include. Excludes EXPERIMENT runs which are never aggregated.
10Run type accepted when filtering eval stats.
MANUAL, SCHEDULED, MONITORING ["MANUAL", "SCHEDULED"]
Response
Successfully retrieved eval stats by date and eval definition
Eval stats aggregated by date bucket and eval definition.