Skip to main content
{
  "message": "<string>",
  "files": [
    {}
  ],
  "knowledgeBaseId": "<string>",
  "key": "<string>",
  "originalName": "<string>",
  "size": 123,
  "type": "<string>"
}
Upload files to a knowledge base. Files are automatically chunked, embedded, and indexed.

Examples

import requests

kb_slug = "product-documentation"
url = f"https://labs.chonkie.ai/api/v1/knowledge/{kb_slug}"
headers = {
    "Authorization": "Bearer YOUR_API_KEY"
}

# Upload single file
with open("api.pdf", "rb") as f:
    files = {"files": f}
    response = requests.post(url, headers=headers, files=files)

result = response.json()
print(f"Uploaded: {result['files'][0]['originalName']}")

# Upload multiple files
with open("doc1.pdf", "rb") as f1, \
     open("doc2.txt", "rb") as f2:
    files = [
        ("files", f1),
        ("files", f2)
    ]
    response = requests.post(url, headers=headers, files=files)

result = response.json()
print(f"Uploaded {len(result['files'])} files")

Request

Path Parameters

knowledge_base_slug
string
required
The slug of the knowledge base to upload to.

Body Parameters

files
file | file[]
required
Single file or multiple files to upload. Use multipart/form-data encoding with field name “files”.

Response

Returns

message
string
Success message.
files
array
Array of uploaded file information.
knowledgeBaseId
string
ID of the knowledge base.
Each file object contains:
key
string
Unique file identifier (timestamp-filename).
originalName
string
Original filename.
size
integer
File size in bytes.
type
string
MIME type of the file.
I