import Avido from 'avido';
const client = new Avido({
apiKey: process.env['AVIDO_API_KEY'], // This is the default and can be omitted
applicationID: process.env['AVIDO_APPLICATION_ID'], // This is the default and can be omitted
});
// Automatically fetches more pages as needed.
for await (const documentListResponse of client.documents.list()) {
console.log(documentListResponse.id);
}import os
from avido import Avido
client = Avido(
api_key=os.environ.get("AVIDO_API_KEY"), # This is the default and can be omitted
application_id=os.environ.get("AVIDO_APPLICATION_ID"), # This is the default and can be omitted
)
page = client.documents.list()
page = page.data[0]
print(page.id)curl --request GET \
--url https://api.avidoai.com/v0/documents \
--header 'x-api-key: <api-key>' \
--header 'x-application-id: <api-key>'<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.avidoai.com/v0/documents",
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/documents"
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/documents")
.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/documents")
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",
"createdAt": "2024-01-05T12:34:56.789Z",
"modifiedAt": "2024-01-05T12:34:56.789Z",
"orgId": "org_123456789",
"applicationId": "456e4567-e89b-12d3-a456-426614174000",
"type": "KNOWLEDGE",
"optimized": false,
"isVerified": false,
"status": "ACTIVE",
"versions": [
{
"id": "321e4567-e89b-12d3-a456-426614174001",
"createdAt": "2024-01-05T12:34:56.789Z",
"modifiedAt": "2024-01-05T12:34:56.789Z",
"orgId": "org_123456789",
"applicationId": "456e4567-e89b-12d3-a456-426614174000",
"title": "API Documentation",
"content": "This document describes the API endpoints...",
"metadata": {},
"originalSentences": [
"This is the first sentence.",
"This is the second sentence."
],
"language": "english",
"status": "APPROVED",
"type": "KNOWLEDGE",
"versionNumber": 1,
"documentId": "123e4567-e89b-12d3-a456-426614174000"
}
],
"title": "<string>",
"content": "<string>",
"tags": [
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"name": "API Documentation",
"color": "#3B82F6"
}
],
"assignee": "user_123456789",
"scrapeJob": {
"id": "123e4567-e89b-12d3-a456-426614174000",
"createdAt": "2024-01-05T12:34:56.789Z",
"modifiedAt": "2024-01-05T12:34:56.789Z",
"orgId": "org_123",
"applicationId": "456e4567-e89b-12d3-a456-426614174000",
"initiatedBy": "user_123",
"name": "Documentation Scrape",
"url": "https://example.com",
"status": "PENDING",
"quickstartStatus": "NOT_ASSOCIATED",
"pages": [
{
"url": "https://example.com/page1",
"title": "Page 1",
"description": "This is the first page of the documentation.",
"category": "Documentation"
},
{
"url": "https://example.com/page2"
}
],
"failedPages": [
{
"url": "https://example.com/page3",
"error": "Connection timeout after 5 retries"
}
]
},
"scrapeJobId": "321e4567-e89b-12d3-a456-426614174000",
"fileProcessingId": "654e7890-e89b-12d3-a456-426614174000",
"topicId": "789e1234-e89b-12d3-a456-426614174000"
}
],
"pagination": {
"skip": 0,
"limit": 25,
"total": 100,
"totalPages": 4,
"totalCount": 100
}
}{
"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"
}List documents
Retrieves a paginated list of documents with optional filtering by status, assignee, parent, and other criteria. Only returns documents with active approved versions unless otherwise specified.
import Avido from 'avido';
const client = new Avido({
apiKey: process.env['AVIDO_API_KEY'], // This is the default and can be omitted
applicationID: process.env['AVIDO_APPLICATION_ID'], // This is the default and can be omitted
});
// Automatically fetches more pages as needed.
for await (const documentListResponse of client.documents.list()) {
console.log(documentListResponse.id);
}import os
from avido import Avido
client = Avido(
api_key=os.environ.get("AVIDO_API_KEY"), # This is the default and can be omitted
application_id=os.environ.get("AVIDO_APPLICATION_ID"), # This is the default and can be omitted
)
page = client.documents.list()
page = page.data[0]
print(page.id)curl --request GET \
--url https://api.avidoai.com/v0/documents \
--header 'x-api-key: <api-key>' \
--header 'x-application-id: <api-key>'<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.avidoai.com/v0/documents",
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/documents"
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/documents")
.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/documents")
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",
"createdAt": "2024-01-05T12:34:56.789Z",
"modifiedAt": "2024-01-05T12:34:56.789Z",
"orgId": "org_123456789",
"applicationId": "456e4567-e89b-12d3-a456-426614174000",
"type": "KNOWLEDGE",
"optimized": false,
"isVerified": false,
"status": "ACTIVE",
"versions": [
{
"id": "321e4567-e89b-12d3-a456-426614174001",
"createdAt": "2024-01-05T12:34:56.789Z",
"modifiedAt": "2024-01-05T12:34:56.789Z",
"orgId": "org_123456789",
"applicationId": "456e4567-e89b-12d3-a456-426614174000",
"title": "API Documentation",
"content": "This document describes the API endpoints...",
"metadata": {},
"originalSentences": [
"This is the first sentence.",
"This is the second sentence."
],
"language": "english",
"status": "APPROVED",
"type": "KNOWLEDGE",
"versionNumber": 1,
"documentId": "123e4567-e89b-12d3-a456-426614174000"
}
],
"title": "<string>",
"content": "<string>",
"tags": [
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"name": "API Documentation",
"color": "#3B82F6"
}
],
"assignee": "user_123456789",
"scrapeJob": {
"id": "123e4567-e89b-12d3-a456-426614174000",
"createdAt": "2024-01-05T12:34:56.789Z",
"modifiedAt": "2024-01-05T12:34:56.789Z",
"orgId": "org_123",
"applicationId": "456e4567-e89b-12d3-a456-426614174000",
"initiatedBy": "user_123",
"name": "Documentation Scrape",
"url": "https://example.com",
"status": "PENDING",
"quickstartStatus": "NOT_ASSOCIATED",
"pages": [
{
"url": "https://example.com/page1",
"title": "Page 1",
"description": "This is the first page of the documentation.",
"category": "Documentation"
},
{
"url": "https://example.com/page2"
}
],
"failedPages": [
{
"url": "https://example.com/page3",
"error": "Connection timeout after 5 retries"
}
]
},
"scrapeJobId": "321e4567-e89b-12d3-a456-426614174000",
"fileProcessingId": "654e7890-e89b-12d3-a456-426614174000",
"topicId": "789e1234-e89b-12d3-a456-426614174000"
}
],
"pagination": {
"skip": 0,
"limit": 25,
"total": 100,
"totalPages": 4,
"totalCount": 100
}
}{
"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
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, type, assignee, id "createdAt"
Order direction.
asc, desc "desc"
Filter by document type. Defaults to KNOWLEDGE when omitted.
KNOWLEDGE, POLICY "KNOWLEDGE"
Filter by document-level status (DocumentV2.status). When omitted, the API defaults to ACTIVE for library queries and skips the filter for quickstart-scoped queries (so DRAFT KB-Review uploads remain visible). Distinct from status below which filters the document's active version status.
DRAFT, ACTIVE "ACTIVE"
Filter by document version status (filters documents by their active version status). Supports multiple values.
Status of the document. Valid options: DRAFT, REVIEW, APPROVED, ARCHIVED, ACTIVE.
DRAFT, REVIEW, APPROVED, ARCHIVED, ACTIVE "APPROVED"
Filter documents by tag ID
"789e4567-e89b-12d3-a456-426614174000"
Search in document version title and content
"API documentation"
Filter by scrape job ID. Supports multiple values.
^([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)$"321e4567-e89b-12d3-a456-426614174000"
Filter by source FileProcessing ID (the row that ingested the doc). Supports multiple values, capped at 100.
100^([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)$"654e7890-e89b-12d3-a456-426614174000"
Filter documents by topic 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)$"789e1234-e89b-12d3-a456-426614174000"
Filter by assignee user ID
"user_123456789"
Filter documents created after this date (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))$"2024-01-01T00:00:00.000Z"
Filter documents created before this date (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))$"2024-12-31T23:59:59.999Z"
Filter documents linked to a specific quickstart.
^([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-426614174001"
Filter documents whose active version metadata contains this step value.
64"KNOWLEDGE_BASE_REVIEW"