Confirm KB Source Upload
curl --request POST \
--url https://api.attention.tech/v2/knowledge-base/sources/{sourceId}/confirm-upload \
--header 'Authorization: <api-key>'import requests
url = "https://api.attention.tech/v2/knowledge-base/sources/{sourceId}/confirm-upload"
headers = {"Authorization": "<api-key>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {Authorization: '<api-key>'}};
fetch('https://api.attention.tech/v2/knowledge-base/sources/{sourceId}/confirm-upload', 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.attention.tech/v2/knowledge-base/sources/{sourceId}/confirm-upload",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"Authorization: <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.attention.tech/v2/knowledge-base/sources/{sourceId}/confirm-upload"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("Authorization", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.attention.tech/v2/knowledge-base/sources/{sourceId}/confirm-upload")
.header("Authorization", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.attention.tech/v2/knowledge-base/sources/{sourceId}/confirm-upload")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"data": {
"type": "kb_sources",
"id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"attributes": {
"title": "Q4 Product Launch Playbook",
"source_type": "manual",
"content": "# Product Launch Playbook\n\n## Overview\nThis document covers the key steps...",
"format": "text/markdown",
"status": "indexed",
"file_size": 4096,
"chunk_count": 12,
"created_at": "2025-01-15T10:30:00Z",
"updated_at": "2025-01-15T10:35:00Z"
}
}
}{
"id": "not_found_error",
"status": "404",
"code": "404",
"title": "Not Found Error",
"detail": "The requested resource was not found",
"source": {
"pointer": "/data/attributes/id"
}
}{
"id": "not_found_error",
"status": "404",
"code": "404",
"title": "Not Found Error",
"detail": "The requested resource was not found",
"source": {
"pointer": "/data/attributes/id"
}
}{
"id": "not_found_error",
"status": "404",
"code": "404",
"title": "Not Found Error",
"detail": "The requested resource was not found",
"source": {
"pointer": "/data/attributes/id"
}
}{
"id": "not_found_error",
"status": "404",
"code": "404",
"title": "Not Found Error",
"detail": "The requested resource was not found",
"source": {
"pointer": "/data/attributes/id"
}
}Knowledge Base
Confirm KB Source Upload
Validates the uploaded file (format via magic bytes, size against limit) and triggers indexing. If validation fails, the file is deleted from S3 and the source is removed. Supported formats: PDF, Markdown, HTML, plain text. Maximum size: 100 MB.
POST
/
knowledge-base
/
sources
/
{sourceId}
/
confirm-upload
Confirm KB Source Upload
curl --request POST \
--url https://api.attention.tech/v2/knowledge-base/sources/{sourceId}/confirm-upload \
--header 'Authorization: <api-key>'import requests
url = "https://api.attention.tech/v2/knowledge-base/sources/{sourceId}/confirm-upload"
headers = {"Authorization": "<api-key>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {Authorization: '<api-key>'}};
fetch('https://api.attention.tech/v2/knowledge-base/sources/{sourceId}/confirm-upload', 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.attention.tech/v2/knowledge-base/sources/{sourceId}/confirm-upload",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"Authorization: <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.attention.tech/v2/knowledge-base/sources/{sourceId}/confirm-upload"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("Authorization", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.attention.tech/v2/knowledge-base/sources/{sourceId}/confirm-upload")
.header("Authorization", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.attention.tech/v2/knowledge-base/sources/{sourceId}/confirm-upload")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"data": {
"type": "kb_sources",
"id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"attributes": {
"title": "Q4 Product Launch Playbook",
"source_type": "manual",
"content": "# Product Launch Playbook\n\n## Overview\nThis document covers the key steps...",
"format": "text/markdown",
"status": "indexed",
"file_size": 4096,
"chunk_count": 12,
"created_at": "2025-01-15T10:30:00Z",
"updated_at": "2025-01-15T10:35:00Z"
}
}
}{
"id": "not_found_error",
"status": "404",
"code": "404",
"title": "Not Found Error",
"detail": "The requested resource was not found",
"source": {
"pointer": "/data/attributes/id"
}
}{
"id": "not_found_error",
"status": "404",
"code": "404",
"title": "Not Found Error",
"detail": "The requested resource was not found",
"source": {
"pointer": "/data/attributes/id"
}
}{
"id": "not_found_error",
"status": "404",
"code": "404",
"title": "Not Found Error",
"detail": "The requested resource was not found",
"source": {
"pointer": "/data/attributes/id"
}
}{
"id": "not_found_error",
"status": "404",
"code": "404",
"title": "Not Found Error",
"detail": "The requested resource was not found",
"source": {
"pointer": "/data/attributes/id"
}
}Authorizations
Path Parameters
The unique identifier of the KB source
Response
Upload validated and indexing triggered
Show child attributes
Show child attributes
Example:
{
"type": "kb_sources",
"id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"attributes": {
"title": "Q4 Product Launch Playbook",
"source_type": "manual",
"format": "text/markdown",
"status": "indexed",
"file_size": 4096,
"chunk_count": 12,
"created_at": "2025-01-15T10:30:00Z",
"updated_at": "2025-01-15T10:35:00Z"
}
}
Was this page helpful?
⌘I