---
title: "Get detected items + scene narrative for an image"
method: GET
path: "/v1/detections/{target_id}"
tags: ["Detections"]
---

# Get detected items + scene narrative for an image

`GET /v1/detections/{target_id}`

## Request

- Base URL: `https://nanostudiopro.com/api`
- URL: `https://nanostudiopro.com/api/v1/detections/{target_id}`
- Auth: HTTP bearer

Returns the latest completed detection scan for an image you own: every detected item with its name, category, texture, hex colors, and bounding box, plus a 150-word scene narrative and overall style.

Bounding boxes are normalized to a **0-1000 square** regardless of pixel size — multiply by `width/1000` and `height/1000` to get pixels. Items form a hierarchy via `parent_id` (a sleeve's parent is the jacket).

Every item has an `id`, unique within the scan and the same on every read of it (`scan_id`); a rescan numbers its items afresh. `label` is the `name`, or, when several items share a name, the name plus where this one sits in the picture: `"person (left)"`, `"cup (2nd from left)"` (the picture's left, not the subject's). To remove one of two people, pass its id to `POST /v1/restyle` (`action: "remove"`, `items: [{ "id": 2 }]`, optionally `scan_id`).

Free. If the image has never been scanned (404), trigger one with `POST /v1/scans` — though every generation and import is scanned automatically, so this mostly matters for very old images.

## Response `200`

Latest completed scan for the target.

## Other responses

- `400`: `type` must be "generation" or "asset"
- `401`: Missing or invalid token
- `404`: Target not found, or never scanned (run POST /v1/scans)
- `429`: Rate limit exceeded

---

[API](https://skmtc.dev/nanostudiopro/apis/nano-studio-pro-api.md) · [All operations](https://skmtc.dev/nanostudiopro/apis/nano-studio-pro-api/llms.txt) · [OpenAPI document](https://skmtc.dev/nanostudiopro/apis/nano-studio-pro-api/revisions/b454211e598e?raw)
