curl --request GET \
--url https://devtune.ai/api/v2/projects/{projectId}/agent-picks/starter-test \
--header 'Authorization: Bearer <token>'import requests
url = "https://devtune.ai/api/v2/projects/{projectId}/agent-picks/starter-test"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://devtune.ai/api/v2/projects/{projectId}/agent-picks/starter-test', 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://devtune.ai/api/v2/projects/{projectId}/agent-picks/starter-test",
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://devtune.ai/api/v2/projects/{projectId}/agent-picks/starter-test"
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://devtune.ai/api/v2/projects/{projectId}/agent-picks/starter-test")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://devtune.ai/api/v2/projects/{projectId}/agent-picks/starter-test")
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{
"data": {
"test": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"status": "queued",
"category_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"created_at": "2023-11-07T05:31:56Z",
"completed_at": "2023-11-07T05:31:56Z",
"planned_runs": 1,
"completed_runs": 1,
"environment": {
"name": "<string>",
"framework": "<string>"
}
},
"runs": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"intent": "<string>",
"request": "<string>",
"agent": "<string>",
"model": "<string>",
"status": "queued",
"outcome": "<string>",
"tool_key": "<string>",
"other_tools": [
"<string>"
],
"sandbox_attempts": 1
}
],
"tools": [
{
"tool_key": "<string>",
"display_name": "<string>",
"brand_domain": "<string>"
}
]
},
"meta": {
"timestamp": "2023-11-07T05:31:56Z",
"projectId": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
}{
"error": "<string>",
"message": "<string>",
"status": 123,
"reason": "<string>"
}{
"error": "<string>",
"message": "<string>",
"status": 123,
"reason": "<string>"
}{
"error": "<string>",
"message": "<string>",
"status": 123,
"reason": "<string>"
}{
"error": "<string>",
"message": "<string>",
"status": 123,
"reason": "<string>"
}{
"error": "<string>",
"message": "<string>",
"status": 123,
"reason": "<string>"
}Get Agent Picks starter test
Returns the project’s latest Agent Picks starter test as it runs: its status (queued, running, completed, failed or cancelled), when it was created and completed, planned vs completed runs, and each run’s request, agent and model, status, recorded sandbox attempts and, once classified, its pick (a tool_key, or built_its_own and the other outcomes). A failed or cancelled test keeps its runs. A project with no starter test returns test null and empty runs. These are per-run results, not rates; install rates come from the summary once the test completes. Any parameter is refused with 400. Needs the Agent Picks feature; without it the request is refused with 403.
curl --request GET \
--url https://devtune.ai/api/v2/projects/{projectId}/agent-picks/starter-test \
--header 'Authorization: Bearer <token>'import requests
url = "https://devtune.ai/api/v2/projects/{projectId}/agent-picks/starter-test"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://devtune.ai/api/v2/projects/{projectId}/agent-picks/starter-test', 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://devtune.ai/api/v2/projects/{projectId}/agent-picks/starter-test",
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://devtune.ai/api/v2/projects/{projectId}/agent-picks/starter-test"
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://devtune.ai/api/v2/projects/{projectId}/agent-picks/starter-test")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://devtune.ai/api/v2/projects/{projectId}/agent-picks/starter-test")
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{
"data": {
"test": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"status": "queued",
"category_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"created_at": "2023-11-07T05:31:56Z",
"completed_at": "2023-11-07T05:31:56Z",
"planned_runs": 1,
"completed_runs": 1,
"environment": {
"name": "<string>",
"framework": "<string>"
}
},
"runs": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"intent": "<string>",
"request": "<string>",
"agent": "<string>",
"model": "<string>",
"status": "queued",
"outcome": "<string>",
"tool_key": "<string>",
"other_tools": [
"<string>"
],
"sandbox_attempts": 1
}
],
"tools": [
{
"tool_key": "<string>",
"display_name": "<string>",
"brand_domain": "<string>"
}
]
},
"meta": {
"timestamp": "2023-11-07T05:31:56Z",
"projectId": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
}{
"error": "<string>",
"message": "<string>",
"status": 123,
"reason": "<string>"
}{
"error": "<string>",
"message": "<string>",
"status": 123,
"reason": "<string>"
}{
"error": "<string>",
"message": "<string>",
"status": 123,
"reason": "<string>"
}{
"error": "<string>",
"message": "<string>",
"status": 123,
"reason": "<string>"
}{
"error": "<string>",
"message": "<string>",
"status": 123,
"reason": "<string>"
}Authorizations
API key with dtk_live_ prefix. Obtain it from API Keys in the account sidebar. New keys start with all supported scopes selected for the chosen project, and you can narrow them to specific read/write scopes as needed.