Tone docs
API referenceKnowledge bases

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.

POST
/v1/knowledge-bases/{id}/documents/{documentId}/confirm
AuthorizationBearer <token>

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

id*string

The knowledge base's id.

documentId*string

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"  }}
Was this page helpful?