---
title: "API · Assets · Get an asset by ID"
method: GET
path: "/api/v1/assets/{id}"
tags: ["assets"]
---

# API · Assets · Get an asset by ID

`GET /api/v1/assets/{id}`

## Request

- Base URL: `https://api.simplified.com`
- URL: `https://api.simplified.com/api/v1/assets/{id}`
- Auth: API key in header `Authorization`

Retrieve a workspace asset by UUID. Use this to resolve the final
stored URLs and to check processing status after an async create
(`createAsset` from a URL, or a signed upload) — the asset UUID is
returned immediately but the file download / S3 upload / thumbnail
generation completes in the background.

Key response fields:
- `status` — processing state: `0` NOT_STARTED, `1` IN_PROGRESS,
  `2` PROCESSING_FAILED, `3` THUMBNAIL_FAILED, `4` DONE,
  `10` NOT_PROCESSED.
- `file_url` / `thumbnail` — signed Simplified CDN URLs to the stored
  file (expire ~12h; re-fetch to refresh).
- `import_state` (URL imports only) — `"stored"`: `file_url` is the
  stored CDN file, ready to use. `"failed"`: see `import_error`
  (`http_<status>`, `timeout`, `unreachable`, `not_an_image`,
  `import_failed`). `"pending"` / `"importing"`: still importing;
  `file_url` and `thumbnail` are empty until stored, so check again
  on a later step, and if it is still not stored after about a
  minute treat it as failed. Use only a stored `file_url`.
- There is no permanent public URL for a private asset: keep the
  asset `id` and call `getAsset` again whenever a fresh URL is needed.
- `asset_type` — image / video / audio / pdf / etc.
- `payload` — extracted media metadata (width, height, duration,
  format, ...).

## Path parameters

- `id` string, uuid, required

## Response `200`

Asset detail

- unknown

## Other responses

- `401`: Unauthorized
- `404`: Asset not found (or not in this workspace/space)

---

[API](https://skmtc.dev/simplified/apis/platform.md) - [All operations](https://skmtc.dev/simplified/apis/platform/llms.txt) - [OpenAPI document](https://skmtc.dev/simplified/apis/platform/revisions/0815a1ba1e4e?raw)
