---
title: "Get asset by ID"
method: GET
path: "/api/v1/assets/{id}"
tags: ["Asset Management"]
---

# Get asset by ID

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

## Request

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

One asset's full record: the list row's fields plus `image` (type, pixel size, bytes, SHA-1 and
the facts ingest derived), `metadata` (what exiftool read), `takenAt` and, for anything a job
made, `lineage`. While the asset is PROCESSING its image facts are not measured yet.

USE THIS WHEN:
- Reading one asset's full record (image facts, metadata, lineage), typically once it is DONE
- Resolving a known asset ID

DO NOT USE WHEN:
- Listing assets → use GET /api/v1/assets
- Waiting for ingest to finish → POST /api/v1/assets/status polls a batch in one call
- You want the bytes → GET /api/v1/assets/{id}/content

## Path parameters

- `id` string, required

## Response `200`

The asset

## Other responses

- `404`: `asset_not_found` — no such asset, or it is not yours
- `429`: Rate limited — `error.code` is `rate_limited` and `retryable` is true. `Retry-After` says how many seconds to wait.

---

[API](https://skmtc.dev/imagestep/apis/imagestep-api.md) · [All operations](https://skmtc.dev/imagestep/apis/imagestep-api/llms.txt) · [OpenAPI document](https://skmtc.dev/imagestep/apis/imagestep-api/revisions/5e8e922a3085?raw)
