# Create Asset

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

Creates a single asset. Exactly one of `uri` or `text` is required, and which one you send decides what gets created:

* **`uri`** — Playbook fetches the bytes from that public URL and returns an `is_skeleton: true` placeholder while a background worker downloads them. Pass `as_link: true` to skip the fetch and store a bare link instead.
* **`text`** — creates a **note**: a text asset that carries prose rather than a file. Notes are created synchronously and come back complete. `color` sets the note's background and `height` its card height; both are ignored when `uri` is given.

To create colour swatches, use `POST /v1/{slug}/assets/create_colors` instead.

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

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

* 200
* 406
* 422

successfully creates an asset

not acceptable

when limits are met
