# Knowledge bases: Get processing status of documents (https://docs.envocal.ai/api-reference/knowledge-bases/get-processing-status-of-documents/) > Poll after uploading until each document's state is complete (or error). ## POST `/v1/tenants/{tenantId}/knowledge-bases/{kbId}/documents/status` Poll after uploading until each document's state is `complete` (or `error`). **Required permission:** `knowledge:read` ### Parameters | Name | In | | Type | Description | | --- | --- | --- | --- | --- | | `tenantId` | path | required | string | Tenant id, or `current` for the key's own tenant. Must be the key's tenant or one of its sub-tenants. | | `kbId` | path | required | string | Knowledge base id. | ### Request body `application/json`: StatusRequest | Field | Type | | Description | | --- | --- | --- | --- | | `ids` | string[] | required | Document ids (as returned by the upload). | ### Responses **200**: Status per document id. **401**: Missing, invalid, revoked or expired API key. **403**: The key lacks the required permission, or the tenant/resource is outside its reach. **404**: Knowledge base not found in this tenant. **429**: Rate limit exceeded. Retry after the number of seconds in the Retry-After header. ### Example ```bash curl -X POST "https://api.envocal.ai/v1/tenants/current/knowledge-bases/{kbId}/documents/status" \ -H "Authorization: Bearer evk_eu_..." \ -H "Content-Type: application/json" \ -d '{"ids":["string"]}' ```