Upload documents to a knowledge base
Uploads one or more files for ingestion. Optional per-file metadata is passed in the `input` form field as a JSON object whose `metadata` array must match the number of files. To replace existing items in place, pass their item IDs in the `ids` form field (JSON array, same length as `files`). The maximum request size is 128 MiB. Items are processed asynchronously; poll the items endpoints for status.
Organization or project Access Key created in the Dynamiq console. Used for deployed-app (Runs API), AI Gateway, traces collector, and management API requests. Send as Authorization: Bearer <access-key>.
In: header
Path Parameters
Knowledge base UUID.
Request Body
multipart/form-data
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/v1/knowledgebases/497f6eca-6276-4993-bfeb-53cbbbba6f08/upload" \ -F files="[ \"string\" ]"{
"data": [
{
"id": "8d9e0f1a-2b3c-4d4e-8f5a-6b7c8d9e0f1a",
"name": "billing-faq.pdf",
"status": "pending",
"uploaded_at": "2026-06-10T09:00:00Z",
"metadata": {
"source": "billing-faq",
"file_id": "8d9e0f1a-2b3c-4d4e-8f5a-6b7c8d9e0f1a",
"dynamiq_item_id": "8d9e0f1a-2b3c-4d4e-8f5a-6b7c8d9e0f1a"
}
}
]
}{
"error": {
"code": "bad_request",
"message": "Bad Request",
"details": {
"input": "cannot be blank"
}
}
}{
"error": {
"code": "unauthorized",
"message": "Unauthorized"
}
}{
"error": {
"code": "not_found",
"message": "Not Found"
}
}{
"error": {
"code": "string",
"message": "string",
"details": null
}
}Search knowledge base documents
Performs a semantic search over the knowledge base's documents using the knowledge base's configured embedder and retriever. Served on the knowledge base's own hostname (returned in the `hostname` field of the knowledge base resource).
List knowledge base items
Lists items (ingested documents) of a knowledge base, most recently uploaded first by default.