---
title: "Create upload"
method: POST
path: "/api/v1/uploads"
tags: ["Upload"]
---

# Create upload

`POST /api/v1/uploads`

Uploads a document to the queue specified as query parameter (starting in the importing state).

Multiple files upload is supported, the total size of the data uploaded may not exceed 40 MB.
UTF-8 filenames are supported, see examples.

The file can be sent as a part of multipart/form-data or, alternatively, in the
request body.

The `{filename}` parameter in the URL path only works when sending the file in the request body using `--data-binary`.
When uploading via multipart/form-data, the filename is automatically extracted from the form field and the `{filename}` 
parameter in the URL is ignored. Use the `Content-Disposition` header or specify the filename in the form field instead.

You can also specify additional properties using form field:

- Metadata could be passed using `metadata` form field. Metadata will
be set to newly created annotation object.
- Values could be passed using `values` form field. It may
be used to initialize datapoint values by setting the value of
`rir_field_names` in the schema.

For example `upload:organization_unit` field may be referenced in a schema like this:
```json
{
  "category": "datapoint",
  "id": "organization_unit", 
  "label": "Org unit",
  "type": "string",
  "rir_field_names": ["upload:organization_unit"]
}
```

The endpoint is asynchronous and response contains created task url. Further information about the import status may be acquired by retrieving the upload object or the task (for more information, please refer to task).

## Query parameters

- `queue` integer, required
- `reject_identical` boolean

## Response `202`

Accepted

- object
  - `url` string, url — URL of the created [task](/api/task) for tracking upload progress.

## Other responses

- `400` — Invalid input data.
- `401` — The username/password is invalid or token is invalid (e.g. expired).
- `403` — Insufficient permission, missing authentication, invalid CSRF token and similar issue.
- `404` — The specified resource was not found.
- `409` — Conflict
- `413` — Payload too large (especially for files uploaded).
- `429` — Request rate is too high, wait before sending more requests. See [Rate Limiting](/guides/overview#rate-limiting) for more details.
- `500` — Server failure while processing the request.
- `502` — Invalid response from the upstream server.
- `503` — We're temporarily offline for maintenance. Please try again later.
- `504` — Upstream server could not complete the request in time.

---

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