---
title: "Upload a document file"
method: POST
path: "/documents/upload"
tags: ["documents"]
---

# Upload a document file

`POST /documents/upload`

Upload a document file.

Accepts any supported format (PDF, DOCX, PPTX, XLSX, Markdown, text, HTML, images).
Binary formats are automatically converted to Markdown during upload.
Once uploaded, the document is ready for fact extraction.

## Query parameters

- `author` string, nullable
- `tags` string, nullable
- `source_url` string, nullable
- `description` string, nullable
- `original_date` string, nullable

## Response `201`

Document uploaded, converted (if needed), and stored

- DocumentUploadResponse — Response for document upload.
  - `document_id` string, uuid, required
  - `filename` string, required
  - `size_bytes` integer, required
  - `type` string, required
  - `conversion_status` string, required
  - `message` string

## Other responses

- `409` — Duplicate document (same content hash)
- `413` — File too large
- `422` — Conversion failed or empty file

---

[API](https://skmtc.dev/scipot/apis/scipot-core-api.md) · [All operations](https://skmtc.dev/scipot/apis/scipot-core-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/scipot/scipot-core-api/revisions/e8712e9ffeae/schema)
