curl --request GET \
--url https://app.livechatai.com/api/v2/data-sources \
--header 'Authorization: Bearer <token>'import requests
url = "https://app.livechatai.com/api/v2/data-sources"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://app.livechatai.com/api/v2/data-sources', 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://app.livechatai.com/api/v2/data-sources",
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://app.livechatai.com/api/v2/data-sources"
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://app.livechatai.com/api/v2/data-sources")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.livechatai.com/api/v2/data-sources")
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{
"status": "success",
"data": {
"agentId": "clx1234567890abcdef",
"items": [
{
"id": "ds_1234567890",
"title": "Company Overview",
"text": "Our company specializes in...",
"url": "https://example.com/about",
"source": "TEXT",
"status": "COMPLETED",
"characterCount": 1250,
"createdAt": "2024-01-15T10:30:00Z",
"updatedAt": "2024-01-20T14:45:00Z",
"isGeneratedByAI": false,
"isImprovedByAI": false
}
],
"totalCount": 250,
"pages": {
"page": 1,
"perPage": 10,
"totalPages": 25,
"hasPrevious": false,
"hasNext": true,
"previous": null,
"next": 2
}
}
}List data sources
List all data sources for an agent. This endpoint provides a unified view of all training data sources including websites, text, Q&A pairs, and uploaded files. It supports pagination, filtering, and search to help manage large datasets efficiently.
curl --request GET \
--url https://app.livechatai.com/api/v2/data-sources \
--header 'Authorization: Bearer <token>'import requests
url = "https://app.livechatai.com/api/v2/data-sources"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://app.livechatai.com/api/v2/data-sources', 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://app.livechatai.com/api/v2/data-sources",
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://app.livechatai.com/api/v2/data-sources"
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://app.livechatai.com/api/v2/data-sources")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.livechatai.com/api/v2/data-sources")
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{
"status": "success",
"data": {
"agentId": "clx1234567890abcdef",
"items": [
{
"id": "ds_1234567890",
"title": "Company Overview",
"text": "Our company specializes in...",
"url": "https://example.com/about",
"source": "TEXT",
"status": "COMPLETED",
"characterCount": 1250,
"createdAt": "2024-01-15T10:30:00Z",
"updatedAt": "2024-01-20T14:45:00Z",
"isGeneratedByAI": false,
"isImprovedByAI": false
}
],
"totalCount": 250,
"pages": {
"page": 1,
"perPage": 10,
"totalPages": 25,
"hasPrevious": false,
"hasNext": true,
"previous": null,
"next": 2
}
}
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Query Parameters
Unique identifier of the agent
"clx1234567890abcdef"
Filter by source type to get specific data source types
WEBSITE, TEXT, QA, PDF, DOCX, IMAGE, ALL "ALL"
Page number for pagination (default: 1)
x >= 11
Number of data sources per page (default: 10, max: 100)
1 <= x <= 10010
Search query to filter data sources. Searches different fields based on source type: URL for websites, title for files (PDF/DOCX/IMAGE), title and content for text and Q&A sources, title and URL for YouTube videos.
"product guide"

