---
title: "Get upload slots for an import"
method: POST
path: "/v1/import/upload-urls"
tags: ["import"]
---

# Get upload slots for an import

`POST /v1/import/upload-urls`

## Request

- Base URL: `https://api.brixsignage.com`
- URL: `https://api.brixsignage.com/v1/import/upload-urls`
- Auth: HTTP bearer

Creates up to 500 upload slots for a large-scale import. Each slot returns a URL you upload file bytes to directly and in parallel, and your import manifest then references the file by its `uploadId`. Use this instead of a single bundle upload when importing 10,000 or more files, since a single request cannot hold that much data.

**Notes.**
- A bad `count` answers 400, not 422.

## Request body

- object
  - `count` number: Slots to create, 1–500 (default 100).
  - `contentType` string: Media type recorded for each slot (default `application/octet-stream`).

## Response `200`

Success.

- object
  - `data` object, required
    - `uploads` object[], required
      - `uploadId` string, required: Reference it as `uploadId` in the bundle manifest.
      - `putUrl` string, required: PUT the file's bytes here, with your API key.
      - `expiresInSec` integer, required

## Other responses

- `400`: `count` is not a number.
- `401`: Missing, expired or revoked bearer token.
- `403`: The token lacks the permission this operation needs (see `x-brix-permission`).
- `5XX`: Server error. The body carries a `requestId` to quote to support.

---

[API](https://skmtc.dev/brixsignage/apis/brix-api.md) · [All operations](https://skmtc.dev/brixsignage/apis/brix-api/llms.txt) · [OpenAPI document](https://skmtc.dev/brixsignage/apis/brix-api/revisions/02fd3665dc7d?raw)
