> ## Documentation Index
> Fetch the complete documentation index at: https://docs.anythingmd.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Upload files

> Convert files from your own storage or disk.

Use an upload when the document is not available at a public URL.

## 1. Create an upload

```bash theme={null}
curl -X POST https://anythingmd.com/api/v1/uploads \
  -H "Authorization: Bearer $ANYTHINGMD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "fileName": "contract.docx", "fileType": "application/vnd.openxmlformats-officedocument.wordprocessingml.document" }'
```

The response contains a `documentId` and a signed `uploadUrl`.

## 2. Upload the bytes

```bash theme={null}
curl -X PUT "<uploadUrl>" --upload-file contract.docx
```

## 3. Start the job

```bash theme={null}
curl -X POST https://anythingmd.com/api/v1/jobs \
  -H "Authorization: Bearer $ANYTHINGMD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "source": { "type": "document", "documentId": "<documentId>" } }'
```

Then poll and download as in the [Quickstart](/quickstart).

## Images

Set `"includeImages": true` on the job to also store each extracted image as a downloadable artifact.
