evaluations
Create evaluations artifacts
Requires scopes: eval:write
POST
/
api
/
evaluations
/
{id}
/
artifacts
Create evaluations artifacts
curl --request POST \
--url https://evalgate.com/api/evaluations/{id}/artifacts \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"artifactType": "cluster",
"title": "<string>",
"threshold": 123,
"count": 123,
"runId": 123,
"failureModes": [
"<string>"
],
"datasetContent": "<string>",
"top": 123,
"specs": [
{
"id": "<string>",
"name": "<string>",
"file": "<string>",
"hasAssertions": true,
"usesModels": true,
"usesTools": true,
"complexity": "medium",
"tags": [
"<string>"
],
"fingerprintText": "<string>"
}
],
"dimensions": {},
"includePassed": false,
"clusters": 123
}
'import requests
url = "https://evalgate.com/api/evaluations/{id}/artifacts"
payload = {
"artifactType": "cluster",
"title": "<string>",
"threshold": 123,
"count": 123,
"runId": 123,
"failureModes": ["<string>"],
"datasetContent": "<string>",
"top": 123,
"specs": [
{
"id": "<string>",
"name": "<string>",
"file": "<string>",
"hasAssertions": True,
"usesModels": True,
"usesTools": True,
"complexity": "medium",
"tags": ["<string>"],
"fingerprintText": "<string>"
}
],
"dimensions": {},
"includePassed": False,
"clusters": 123
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
artifactType: 'cluster',
title: '<string>',
threshold: 123,
count: 123,
runId: 123,
failureModes: ['<string>'],
datasetContent: '<string>',
top: 123,
specs: [
{
id: '<string>',
name: '<string>',
file: '<string>',
hasAssertions: true,
usesModels: true,
usesTools: true,
complexity: 'medium',
tags: ['<string>'],
fingerprintText: '<string>'
}
],
dimensions: {},
includePassed: false,
clusters: 123
})
};
fetch('https://evalgate.com/api/evaluations/{id}/artifacts', 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://evalgate.com/api/evaluations/{id}/artifacts",
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([
'artifactType' => 'cluster',
'title' => '<string>',
'threshold' => 123,
'count' => 123,
'runId' => 123,
'failureModes' => [
'<string>'
],
'datasetContent' => '<string>',
'top' => 123,
'specs' => [
[
'id' => '<string>',
'name' => '<string>',
'file' => '<string>',
'hasAssertions' => true,
'usesModels' => true,
'usesTools' => true,
'complexity' => 'medium',
'tags' => [
'<string>'
],
'fingerprintText' => '<string>'
]
],
'dimensions' => [
],
'includePassed' => false,
'clusters' => 123
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$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://evalgate.com/api/evaluations/{id}/artifacts"
payload := strings.NewReader("{\n \"artifactType\": \"cluster\",\n \"title\": \"<string>\",\n \"threshold\": 123,\n \"count\": 123,\n \"runId\": 123,\n \"failureModes\": [\n \"<string>\"\n ],\n \"datasetContent\": \"<string>\",\n \"top\": 123,\n \"specs\": [\n {\n \"id\": \"<string>\",\n \"name\": \"<string>\",\n \"file\": \"<string>\",\n \"hasAssertions\": true,\n \"usesModels\": true,\n \"usesTools\": true,\n \"complexity\": \"medium\",\n \"tags\": [\n \"<string>\"\n ],\n \"fingerprintText\": \"<string>\"\n }\n ],\n \"dimensions\": {},\n \"includePassed\": false,\n \"clusters\": 123\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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://evalgate.com/api/evaluations/{id}/artifacts")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"artifactType\": \"cluster\",\n \"title\": \"<string>\",\n \"threshold\": 123,\n \"count\": 123,\n \"runId\": 123,\n \"failureModes\": [\n \"<string>\"\n ],\n \"datasetContent\": \"<string>\",\n \"top\": 123,\n \"specs\": [\n {\n \"id\": \"<string>\",\n \"name\": \"<string>\",\n \"file\": \"<string>\",\n \"hasAssertions\": true,\n \"usesModels\": true,\n \"usesTools\": true,\n \"complexity\": \"medium\",\n \"tags\": [\n \"<string>\"\n ],\n \"fingerprintText\": \"<string>\"\n }\n ],\n \"dimensions\": {},\n \"includePassed\": false,\n \"clusters\": 123\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://evalgate.com/api/evaluations/{id}/artifacts")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"artifactType\": \"cluster\",\n \"title\": \"<string>\",\n \"threshold\": 123,\n \"count\": 123,\n \"runId\": 123,\n \"failureModes\": [\n \"<string>\"\n ],\n \"datasetContent\": \"<string>\",\n \"top\": 123,\n \"specs\": [\n {\n \"id\": \"<string>\",\n \"name\": \"<string>\",\n \"file\": \"<string>\",\n \"hasAssertions\": true,\n \"usesModels\": true,\n \"usesTools\": true,\n \"complexity\": \"medium\",\n \"tags\": [\n \"<string>\"\n ],\n \"fingerprintText\": \"<string>\"\n }\n ],\n \"dimensions\": {},\n \"includePassed\": false,\n \"clusters\": 123\n}"
response = http.request(request)
puts response.read_body{
"evaluationId": 123,
"title": "<string>",
"summary": {},
"id": 123,
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z",
"organizationId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"createdBy": "<string>",
"metadata": {
"source": "evaluation_run",
"generatedAt": "<string>",
"evaluationId": 123,
"evaluationRunId": 123,
"includePassed": false,
"top": 123,
"clusters": 123,
"threshold": 123,
"rowCount": 123,
"artifactVersion": "<string>",
"caseCount": 123,
"recipeCount": 123,
"workflowCoverage": {
"totalCases": 123,
"agentWorkflowCases": 123,
"coverageRate": 123,
"workflowClassDistribution": {
"approval_gated_mutation": 123,
"background_execution": 123,
"recovery_required": 123,
"policy_conflict": 123,
"handoff_heavy": 123,
"memory_sensitive": 123,
"parallel_tool_use": 123
},
"autonomyDistribution": {
"manual": 123,
"default_approvals": 123,
"bypass_approvals": 123,
"autopilot": 123
},
"generatedCandidateCount": 123,
"experimentRecipeCount": 123,
"gaps": [
{
"id": "<string>",
"workflowClass": "approval_gated_mutation",
"severity": "critical",
"description": "<string>",
"recommendation": "<string>"
}
]
}
},
"kind": "<string>",
"evaluationRunId": 123,
"payload": {}
}{
"error": {
"message": "<string>",
"details": "<unknown>",
"requestId": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
}{
"error": {
"message": "<string>",
"details": "<unknown>",
"requestId": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
}{
"error": {
"message": "<string>",
"details": "<unknown>",
"requestId": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
}{
"error": {
"message": "<string>",
"details": "<unknown>",
"requestId": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
}{
"error": {
"message": "<string>",
"details": "<unknown>",
"requestId": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
}{
"error": {
"message": "<string>",
"details": "<unknown>",
"requestId": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
}{
"error": {
"message": "<string>",
"details": "<unknown>",
"requestId": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
Body
application/json
artifactType
Option 1 · enum<string>Option 2 · enum<string>Option 3 · enum<string>Option 4 · enum<string>Option 5 · enum<string>Option 6 · enum<string>Option 7 · enum<string>Option 8 · enum<string>
required
Available options:
cluster Show child attributes
Show child attributes
Show child attributes
Show child attributes
Available options:
false Response
Successful response
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
⌘I
Create evaluations artifacts
curl --request POST \
--url https://evalgate.com/api/evaluations/{id}/artifacts \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"artifactType": "cluster",
"title": "<string>",
"threshold": 123,
"count": 123,
"runId": 123,
"failureModes": [
"<string>"
],
"datasetContent": "<string>",
"top": 123,
"specs": [
{
"id": "<string>",
"name": "<string>",
"file": "<string>",
"hasAssertions": true,
"usesModels": true,
"usesTools": true,
"complexity": "medium",
"tags": [
"<string>"
],
"fingerprintText": "<string>"
}
],
"dimensions": {},
"includePassed": false,
"clusters": 123
}
'import requests
url = "https://evalgate.com/api/evaluations/{id}/artifacts"
payload = {
"artifactType": "cluster",
"title": "<string>",
"threshold": 123,
"count": 123,
"runId": 123,
"failureModes": ["<string>"],
"datasetContent": "<string>",
"top": 123,
"specs": [
{
"id": "<string>",
"name": "<string>",
"file": "<string>",
"hasAssertions": True,
"usesModels": True,
"usesTools": True,
"complexity": "medium",
"tags": ["<string>"],
"fingerprintText": "<string>"
}
],
"dimensions": {},
"includePassed": False,
"clusters": 123
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
artifactType: 'cluster',
title: '<string>',
threshold: 123,
count: 123,
runId: 123,
failureModes: ['<string>'],
datasetContent: '<string>',
top: 123,
specs: [
{
id: '<string>',
name: '<string>',
file: '<string>',
hasAssertions: true,
usesModels: true,
usesTools: true,
complexity: 'medium',
tags: ['<string>'],
fingerprintText: '<string>'
}
],
dimensions: {},
includePassed: false,
clusters: 123
})
};
fetch('https://evalgate.com/api/evaluations/{id}/artifacts', 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://evalgate.com/api/evaluations/{id}/artifacts",
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([
'artifactType' => 'cluster',
'title' => '<string>',
'threshold' => 123,
'count' => 123,
'runId' => 123,
'failureModes' => [
'<string>'
],
'datasetContent' => '<string>',
'top' => 123,
'specs' => [
[
'id' => '<string>',
'name' => '<string>',
'file' => '<string>',
'hasAssertions' => true,
'usesModels' => true,
'usesTools' => true,
'complexity' => 'medium',
'tags' => [
'<string>'
],
'fingerprintText' => '<string>'
]
],
'dimensions' => [
],
'includePassed' => false,
'clusters' => 123
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$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://evalgate.com/api/evaluations/{id}/artifacts"
payload := strings.NewReader("{\n \"artifactType\": \"cluster\",\n \"title\": \"<string>\",\n \"threshold\": 123,\n \"count\": 123,\n \"runId\": 123,\n \"failureModes\": [\n \"<string>\"\n ],\n \"datasetContent\": \"<string>\",\n \"top\": 123,\n \"specs\": [\n {\n \"id\": \"<string>\",\n \"name\": \"<string>\",\n \"file\": \"<string>\",\n \"hasAssertions\": true,\n \"usesModels\": true,\n \"usesTools\": true,\n \"complexity\": \"medium\",\n \"tags\": [\n \"<string>\"\n ],\n \"fingerprintText\": \"<string>\"\n }\n ],\n \"dimensions\": {},\n \"includePassed\": false,\n \"clusters\": 123\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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://evalgate.com/api/evaluations/{id}/artifacts")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"artifactType\": \"cluster\",\n \"title\": \"<string>\",\n \"threshold\": 123,\n \"count\": 123,\n \"runId\": 123,\n \"failureModes\": [\n \"<string>\"\n ],\n \"datasetContent\": \"<string>\",\n \"top\": 123,\n \"specs\": [\n {\n \"id\": \"<string>\",\n \"name\": \"<string>\",\n \"file\": \"<string>\",\n \"hasAssertions\": true,\n \"usesModels\": true,\n \"usesTools\": true,\n \"complexity\": \"medium\",\n \"tags\": [\n \"<string>\"\n ],\n \"fingerprintText\": \"<string>\"\n }\n ],\n \"dimensions\": {},\n \"includePassed\": false,\n \"clusters\": 123\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://evalgate.com/api/evaluations/{id}/artifacts")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"artifactType\": \"cluster\",\n \"title\": \"<string>\",\n \"threshold\": 123,\n \"count\": 123,\n \"runId\": 123,\n \"failureModes\": [\n \"<string>\"\n ],\n \"datasetContent\": \"<string>\",\n \"top\": 123,\n \"specs\": [\n {\n \"id\": \"<string>\",\n \"name\": \"<string>\",\n \"file\": \"<string>\",\n \"hasAssertions\": true,\n \"usesModels\": true,\n \"usesTools\": true,\n \"complexity\": \"medium\",\n \"tags\": [\n \"<string>\"\n ],\n \"fingerprintText\": \"<string>\"\n }\n ],\n \"dimensions\": {},\n \"includePassed\": false,\n \"clusters\": 123\n}"
response = http.request(request)
puts response.read_body{
"evaluationId": 123,
"title": "<string>",
"summary": {},
"id": 123,
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z",
"organizationId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"createdBy": "<string>",
"metadata": {
"source": "evaluation_run",
"generatedAt": "<string>",
"evaluationId": 123,
"evaluationRunId": 123,
"includePassed": false,
"top": 123,
"clusters": 123,
"threshold": 123,
"rowCount": 123,
"artifactVersion": "<string>",
"caseCount": 123,
"recipeCount": 123,
"workflowCoverage": {
"totalCases": 123,
"agentWorkflowCases": 123,
"coverageRate": 123,
"workflowClassDistribution": {
"approval_gated_mutation": 123,
"background_execution": 123,
"recovery_required": 123,
"policy_conflict": 123,
"handoff_heavy": 123,
"memory_sensitive": 123,
"parallel_tool_use": 123
},
"autonomyDistribution": {
"manual": 123,
"default_approvals": 123,
"bypass_approvals": 123,
"autopilot": 123
},
"generatedCandidateCount": 123,
"experimentRecipeCount": 123,
"gaps": [
{
"id": "<string>",
"workflowClass": "approval_gated_mutation",
"severity": "critical",
"description": "<string>",
"recommendation": "<string>"
}
]
}
},
"kind": "<string>",
"evaluationRunId": 123,
"payload": {}
}{
"error": {
"message": "<string>",
"details": "<unknown>",
"requestId": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
}{
"error": {
"message": "<string>",
"details": "<unknown>",
"requestId": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
}{
"error": {
"message": "<string>",
"details": "<unknown>",
"requestId": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
}{
"error": {
"message": "<string>",
"details": "<unknown>",
"requestId": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
}{
"error": {
"message": "<string>",
"details": "<unknown>",
"requestId": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
}{
"error": {
"message": "<string>",
"details": "<unknown>",
"requestId": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
}{
"error": {
"message": "<string>",
"details": "<unknown>",
"requestId": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
}