---
title: "Stage a Downloader Upload"
method: POST
path: "/utilities/downloader-uploads"
tags: ["Utilities"]
---

# Stage a Downloader Upload

`POST /utilities/downloader-uploads`

## Request

- Base URL: `https://sylve.lan:8181/api`
- URL: `https://sylve.lan:8181/api/utilities/downloader-uploads`
- Auth: API key in header `Authorization`

Stream exactly one file from the filepond multipart field into bounded, short-lived downloader staging and return an opaque upload identity without exposing the server path

## Query parameters

- `storagePool` string

## Request body `multipart/form-data`

- object
  - `filepond` string, binary, required: File to stage

## Response `201`

Upload staged

- GithubComAlchemillahqSylveInternalAPIResponseInternalHandlersUtilitiesDownloaderUploadReceipt
  - `data` InternalHandlersUtilitiesDownloaderUploadReceipt
    - `bytes` integer
    - `name` string
    - `status` 'staged' | 'completed'
    - `uploadId` string
  - `error` string
  - `message` string
  - `status` string

## Other responses

- `400`: Invalid filename, file field, or multipart request
- `401`: Unauthorized
- `403`: Administrator access or staging permission required
- `408`: Upload cancelled or timed out
- `409`: Upload identity collision
- `413`: File or multipart request too large
- `429`: Upload capacity exhausted
- `500`: Internal Server Error
- `503`: Upload persistence unavailable
- `507`: Insufficient storage or quota

## Changes

- **2026-10-09** `86401b73c181`: 1 info
  - added the new optional `query` request parameter `storagePool`
- **2026-08-12** `9a5026bf9057`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/alchemillahq/apis/sylve-api/changes/utilities/downloader-uploads/post.md)

---

[API](https://skmtc.dev/alchemillahq/apis/sylve-api.md) - [All operations](https://skmtc.dev/alchemillahq/apis/sylve-api/llms.txt) - [OpenAPI document](https://skmtc.dev/alchemillahq/apis/sylve-api/revisions/9565cdd0abf5?raw)
