List evaluations
Returns the caller’s evaluations, newest first.
curl --request GET \
--url https://api.physionlabs.ai/v1/evaluations \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.physionlabs.ai/v1/evaluations"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.physionlabs.ai/v1/evaluations', 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.physionlabs.ai/v1/evaluations",
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.physionlabs.ai/v1/evaluations"
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.physionlabs.ai/v1/evaluations")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.physionlabs.ai/v1/evaluations")
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{
"object": "list",
"data": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"object": "evaluation",
"model": "galileo",
"model_version": "<string>",
"output_schema_version": "<string>",
"created": 1,
"status": "queued",
"input": {
"prompt": "<string>",
"video": {
"duration_sec": 1,
"width": 2,
"height": 2,
"fps": 123,
"num_frames": 2
}
},
"usage": {
"video_seconds": 1,
"billable_units": 1
},
"result": {
"glitches": [
{
"id": "<string>",
"type": "visual_glitch",
"description": "<string>",
"source": "model",
"region": {
"start": {
"frame": 1,
"sec": 1,
"timecode": "<string>"
},
"end": {
"frame": 1,
"sec": 1,
"timecode": "<string>"
},
"boxes": [
{
"frame": 1,
"sec": 1,
"box": {
"xmin": 0.5,
"ymin": 0.5,
"xmax": 0.5,
"ymax": 0.5
}
}
]
}
}
],
"summary": {
"num_glitches": 1,
"has_visual_glitch": true,
"has_prompt_misalignment": true
}
},
"error": {
"type": "<string>",
"code": "<string>",
"message": "<string>",
"request_id": "<string>"
},
"detectors": [
{
"detector": "visual_glitch",
"status": "pending",
"error": {
"code": "<string>",
"message": "<string>"
}
}
],
"video_id": "<string>",
"attempt": 2,
"timing": {
"e2e_ms": 1
},
"metadata": {}
}
],
"counts": {
"queued": 1,
"processing": 1,
"completed": 1,
"partial": 1,
"failed": 1
}
}{
"error": {
"type": "invalid_request_error",
"code": "invalid_body",
"message": "<string>",
"request_id": "<string>"
},
"quota": {
"limit": 1,
"used": 1,
"remaining": 1,
"reset_at": 1,
"reset_in_sec": 1,
"window_sec": 2,
"unlimited": true
}
}{
"error": {
"type": "invalid_request_error",
"code": "invalid_body",
"message": "<string>",
"request_id": "<string>"
},
"quota": {
"limit": 1,
"used": 1,
"remaining": 1,
"reset_at": 1,
"reset_in_sec": 1,
"window_sec": 2,
"unlimited": true
}
}{
"error": {
"type": "invalid_request_error",
"code": "invalid_body",
"message": "<string>",
"request_id": "<string>"
},
"quota": {
"limit": 1,
"used": 1,
"remaining": 1,
"reset_at": 1,
"reset_in_sec": 1,
"window_sec": 2,
"unlimited": true
}
}Authorizations
Use a key created in the Playground. Keys begin with gk_.
Query Parameters
Maximum evaluations to return.
1 <= x <= 100How many to skip before the page starts. With limit this addresses a page directly -- limit=20&offset=40 is the third page.
The 100-item limit bounds one response, not what exists: a caller asking for 500 gets 100, and the hundred-and-first evaluation is one more request away rather than unreachable.
x >= 0Return evaluations for one stored video.
Keep only these statuses. Comma-joined (?status=failed,partial) or repeated (?status=failed&status=partial); both are accepted.
Filtered before paging, so counts and the page boundaries describe the same filtered set. An unrecognised value is dropped rather than refused -- a stale bookmark should return an empty list, not an error.
queued, processing, completed, partial, failed Response
Evaluation list.
"list"Show child attributes
Show child attributes
How many evaluations exist in each status, over the same owner and video scope as the request and deliberately IGNORING limit, offset and status.
This is what a pager needs. Inferring the end of a list from "was the page full" is wrong at exactly the boundary paging exists to make honest, and a bare total could not tell you the page count for a filtered view.
Show child attributes
Show child attributes
curl --request GET \
--url https://api.physionlabs.ai/v1/evaluations \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.physionlabs.ai/v1/evaluations"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.physionlabs.ai/v1/evaluations', 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.physionlabs.ai/v1/evaluations",
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.physionlabs.ai/v1/evaluations"
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.physionlabs.ai/v1/evaluations")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.physionlabs.ai/v1/evaluations")
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{
"object": "list",
"data": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"object": "evaluation",
"model": "galileo",
"model_version": "<string>",
"output_schema_version": "<string>",
"created": 1,
"status": "queued",
"input": {
"prompt": "<string>",
"video": {
"duration_sec": 1,
"width": 2,
"height": 2,
"fps": 123,
"num_frames": 2
}
},
"usage": {
"video_seconds": 1,
"billable_units": 1
},
"result": {
"glitches": [
{
"id": "<string>",
"type": "visual_glitch",
"description": "<string>",
"source": "model",
"region": {
"start": {
"frame": 1,
"sec": 1,
"timecode": "<string>"
},
"end": {
"frame": 1,
"sec": 1,
"timecode": "<string>"
},
"boxes": [
{
"frame": 1,
"sec": 1,
"box": {
"xmin": 0.5,
"ymin": 0.5,
"xmax": 0.5,
"ymax": 0.5
}
}
]
}
}
],
"summary": {
"num_glitches": 1,
"has_visual_glitch": true,
"has_prompt_misalignment": true
}
},
"error": {
"type": "<string>",
"code": "<string>",
"message": "<string>",
"request_id": "<string>"
},
"detectors": [
{
"detector": "visual_glitch",
"status": "pending",
"error": {
"code": "<string>",
"message": "<string>"
}
}
],
"video_id": "<string>",
"attempt": 2,
"timing": {
"e2e_ms": 1
},
"metadata": {}
}
],
"counts": {
"queued": 1,
"processing": 1,
"completed": 1,
"partial": 1,
"failed": 1
}
}{
"error": {
"type": "invalid_request_error",
"code": "invalid_body",
"message": "<string>",
"request_id": "<string>"
},
"quota": {
"limit": 1,
"used": 1,
"remaining": 1,
"reset_at": 1,
"reset_in_sec": 1,
"window_sec": 2,
"unlimited": true
}
}{
"error": {
"type": "invalid_request_error",
"code": "invalid_body",
"message": "<string>",
"request_id": "<string>"
},
"quota": {
"limit": 1,
"used": 1,
"remaining": 1,
"reset_at": 1,
"reset_in_sec": 1,
"window_sec": 2,
"unlimited": true
}
}{
"error": {
"type": "invalid_request_error",
"code": "invalid_body",
"message": "<string>",
"request_id": "<string>"
},
"quota": {
"limit": 1,
"used": 1,
"remaining": 1,
"reset_at": 1,
"reset_in_sec": 1,
"window_sec": 2,
"unlimited": true
}
}