Confirm an upload finished and queue it for indexing
Phase two. Nothing is trusted until here: the object is re-read and its real size and type checked against what you declared. Indexing is asynchronous — wait for knowledge.build.completed rather than polling.
Requires the write scope. A key with less gets 403 insufficient_scope.
Authorization: Bearer tone_live_… or tone_test_…. The prefix IS the environment: a test key reaches only the sandbox, and no request field bridges the two.
In: header
Path Parameters
The knowledge base's id.
The document's id.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/v1/knowledge-bases/string/documents/string/confirm"{ "data": { "byteSize": 0, "charCount": 0, "createdAt": "2026-08-25T09:14:22Z", "error": null, "filename": "returns-policy.pdf", "id": "9f1c2d84-4e3a-4f6c-b902-7d1e8a33c451", "kind": "pdf", "mimeType": "application/pdf", "status": "awaiting_upload", "updatedAt": "2026-08-25T09:14:22Z" }}Import a public web page into a knowledge base
Fetches and indexes a URL rather than a file. Must be reachable from the open internet; private and link-local addresses are refused, and refused again after DNS resolution.
Create a knowledge base
Creates it empty. Add documents, wait for the build, then attach it to an agent.