# Batch Create Assets From URLs

```
POST 
/v1/:slug/assets/batch_create_from_urls
```

Creates up to 100 assets at once by ingesting their bytes from public URLs.

Each request is processed asynchronously: the API returns immediately with a `is_skeleton: true` placeholder per asset. A background worker (`DownloadFromURLWorker`) fetches the bytes and updates the record. Clients should poll `GET /v1/:slug/assets/:token` and treat the upload as finished when one of these holds:

* `is_skeleton: false` and `media_type` is populated → upload succeeded
* `is_skeleton: false` and `source_error` is non-null → upload failed
* `is_skeleton: false` and `is_link: true` → kept as a bare link (when `as_link` was true)

## Important[​](#important "Direct link to Important")

* Maximum 100 assets per batch.
* All assets in a batch land in the same collection. Pass `collection_token` (or `collection_id`).
* If `collection_token` is omitted or invalid, assets fall through to the default anonymous board.
* Each asset may set `as_link: true` to skip the byte fetch and store a bare link.

## Request[​](#request "Direct link to request")

## Responses[​](#responses "Direct link to Responses")

* 200
* 401
* 406

batch URL ingest accepted

unauthenticated

asset missing uri
