curl --request GET \
--url https://api.avidoai.com/v0/issues \
--header 'x-api-key: <api-key>' \
--header 'x-application-id: <api-key>'import requests
url = "https://api.avidoai.com/v0/issues"
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/issues', 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/issues",
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/issues"
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/issues")
.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/issues")
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{
"data": [
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"orgId": "org_123456",
"title": "Response quality degradation",
"summary": "The chatbot is providing incomplete responses",
"status": "OPEN",
"source": "TEST",
"priority": "HIGH",
"type": "BUG",
"assignedTo": "user_789012",
"applicationId": "456e7890-e89b-12d3-a456-426614174000",
"testId": "789e4567-e89b-12d3-a456-426614174000",
"annotationId": null,
"traceId": "trace_abc123",
"createdAt": "2024-01-05T12:34:56.789Z",
"modifiedAt": "2024-01-05T12:34:56.789Z"
}
],
"pagination": {
"skip": 0,
"limit": 25,
"total": 1,
"totalPages": 1
}
}List issues
Retrieves a paginated list of issues with optional filtering by date range, status, priority, assignee, and more.
curl --request GET \
--url https://api.avidoai.com/v0/issues \
--header 'x-api-key: <api-key>' \
--header 'x-application-id: <api-key>'import requests
url = "https://api.avidoai.com/v0/issues"
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/issues', 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/issues",
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/issues"
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/issues")
.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/issues")
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{
"data": [
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"orgId": "org_123456",
"title": "Response quality degradation",
"summary": "The chatbot is providing incomplete responses",
"status": "OPEN",
"source": "TEST",
"priority": "HIGH",
"type": "BUG",
"assignedTo": "user_789012",
"applicationId": "456e7890-e89b-12d3-a456-426614174000",
"testId": "789e4567-e89b-12d3-a456-426614174000",
"annotationId": null,
"traceId": "trace_abc123",
"createdAt": "2024-01-05T12:34:56.789Z",
"modifiedAt": "2024-01-05T12:34:56.789Z"
}
],
"pagination": {
"skip": 0,
"limit": 25,
"total": 1,
"totalPages": 1
}
}Authorizations
Your unique Avido API key
Your unique Avido Application ID
Query Parameters
Number of items to skip before starting to collect the result set.
0 <= x <= 90071992547409910
Number of items to include in the result set.
1 <= x <= 10025
Field to order the result set by.
createdAt, modifiedAt, title, status, priority, type, id "createdAt"
Order direction.
asc, desc "desc"
Filter by issue status
OPEN, RESOLVED, REJECTED "OPEN"
Filter by issue priority
LOW, MEDIUM, HIGH "HIGH"
Filter by issue source
TEST, TASK, TOPIC, SYSTEM, MONITORING, API, HUMAN_ANNOTATION "TEST"
Filter by issue type
BUG, HUMAN_ANNOTATION, SUGGESTED_TASK, USER_SIGNAL "BUG"
Filter by assignee user ID
"user_789012"
Filter by associated test ID
^([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)$"789e4567-e89b-12d3-a456-426614174000"
Filter by associated annotation ID
^([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)$"890e5678-e89b-12d3-a456-426614174000"
Start date (ISO8601) for filtering issues by creation date
^(?:(?:\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 date (ISO8601) for filtering issues by creation date
^(?:(?:\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"