---
title: "Import uploads from a link"
method: POST
path: "/uploads/from-link"
tags: ["uploads"]
---

# Import uploads from a link

`POST /uploads/from-link`

Confirms asset and quality selections from external-link discovery, starts asynchronous imports, and returns 202 Accepted. Poll GET /uploads/{id} and watch externalSource.state until each upload reaches completed.

## Headers

- `Idempotency-Key` string

## Request body

- CreateUploadFromLinkRequest
  - `selections` object[], required
    - `assetId` string, required
    - `endSeconds` number, nullable — Import only up to this offset in the source, in seconds. Null (the default) runs to the end. Ranges past the end of the source are truncated by the provider.
    - `preciseCut` boolean, nullable — Cut exactly at the requested offsets instead of snapping to the nearest keyframes. This re-encodes around each cut, so the import is markedly slower; the default (false) is a stream copy whose start may include up to a few seconds of preceding video. Ignored when no range is given.
    - `qualityId` string, required
    - `startSeconds` number, nullable — Import only from this offset in the source, in seconds. Null (the default) starts at the beginning. Must be < endSeconds and < the item's durationSeconds when it is known.
  - `url` string, required

## Response `202`

Accepted — the request was accepted for asynchronous processing; poll the resource for completion.

- Upload[]
  - `createdAt` string, date-time, required
  - `fileSize` integer, nullable
  - `id` string, required
  - `mimeType` string, required
  - `name` string, required
  - `type` 'audio' | 'video' | 'image', required
  - `uploaded` boolean, required

## Other responses

- `401` — Missing or invalid access token.
- `403` — The token lacks the required scope or access to the resource.
- `404` — The resource does not exist or is not visible to the caller.
- `422` — The request body or parameters are invalid.
- `429` — Rate limit exceeded. Retry after the indicated delay.
- `502` — The upstream data service returned an error.

---

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