---
title: "Complete a presigned-URL upload and start processing"
method: POST
path: "/knowledgebase/compelete-file-upload"
tags: ["Knowledge Base"]
---

# Complete a presigned-URL upload and start processing

`POST /knowledgebase/compelete-file-upload`

Step 3 of the presigned-URL upload flow. Commits a file that was uploaded directly to S3 via `POST /knowledgebase/get-presigned-url`, registers it as a knowledge-base item, and triggers async processing.

**Note**: The path includes `compelete` (sic) — that's the actual route name on the platform. Don't fix the spelling in your client; it's a stable URL.

## Request body

- object
  - `fileName` string, required — Filename — pass the same value used in `get-presigned-url`.
  - `contentType` string, required
  - `knowledgeBaseId` string, required — Target knowledge base ID.
  - `key` string, required — S3 storage key returned by `get-presigned-url`.
  - `fileSize` integer, required

## Response `200`

File registered as a knowledge-base item. Processing runs async — poll `GET /knowledgebase/{id}/items` for the item to surface with the desired processing status.

- object
  - `status` boolean
  - `data` object — Created knowledge-base item record.

## Other responses

- `400` — Invalid input
- `401` — Unauthorized access
- `500` — Internal server error

---

[API](https://skmtc.net/smallest-inc/apis/agent-management-api.md) · [All operations](https://skmtc.net/smallest-inc/apis/agent-management-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/smallest-inc/agent-management-api/versions/6d1036a76fbc/schema)
