> ## Documentation Index
> Fetch the complete documentation index at: https://docs.mint.gg/llms.txt
> Use this file to discover all available pages before exploring further.

# Assets

> List, retrieve, permanently delete, and download account-owned assets.

## Unified account catalog

API-created assets belong to the Mint account, not only to the request or API key that created them. Supported asset types can appear across the API, Mint MCP, and Mint.

Use `GET /v1/assets` to list account assets. Filter by `world`, `model`, `asset_pack`, `material`, `material_pack`, `image`, `audio`, or `reference_image`.

Responses use cursor pagination. Pass `pagination.nextCursor` to fetch the next page until `hasMore` is false.

Typed reads include `GET /v1/worlds/{worldId}`, `GET /v1/models/{modelId}`, `GET /v1/asset-packs/{assetPackId}`, `GET /v1/materials/{materialId}`, `GET /v1/images/{imageId}`, and `GET /v1/audio/{audioId}`.

Operations point to their resulting asset with `operation.resource.type` and `operation.resource.id`. Retrieve the asset to get its current files and human-facing `mintUrl`; the operation itself does not contain `mintUrl`.

## Delete an asset

Use `DELETE /v1/assets/{assetId}` to permanently delete a World, 3D Model,
Asset Pack, Material, Material Pack, Image, Audio asset, or reference image
owned by the authenticated Mint account. The asset may have been created
through the API, Mint MCP, or Mint.

```bash theme={null}
curl --request DELETE \
  --url https://api.mint.gg/v1/assets/ASSET_ID \
  --header "Authorization: Bearer $MINT_API_KEY"
```

A successful deletion returns `204 No Content`. The asset leaves the account
immediately, although physical file cleanup can continue asynchronously.
Deleting an Asset Pack also deletes the Models generated directly as its pack
items, and deleting a Material Pack deletes its direct Materials. Independently
cataloged derivatives, such as smart-topology Models, survive with obsolete
source and pack links cleared. Deleting a source Image or standalone 3D Model
likewise preserves its independently cataloged derivatives.

Mint returns `409 asset-has-active-work` while generation, conversion,
topology, animation, or other derivative work is active. Wait for that work to
finish before retrying. A missing, malformed, already deleted, or
other-account ID returns `404 asset-not-found`.

Deletion is inherently retry-safe and does not use `Idempotency-Key`: the
first successful request returns `204`, and a repeat returns `404`.

## Files and manifests

Mint calls an individual downloadable file an artifact in API field and route names. Treat artifacts as files belonging to an asset, not as a separate resource workflow. Discover them instead of constructing provider URLs:

* `GET /v1/assets/{assetType}/{assetId}/artifacts`
* `GET /v1/assets/{assetType}/{assetId}/artifact-manifest`
* `GET /v1/assets/{assetType}/{assetId}/artifacts/{artifactId}`
* `POST /v1/artifact-manifests` for a batch of up to 25 assets

Manifests include stable filenames, content types, sizes when known, and download URLs. Animation batches and clips use the corresponding `/v1/animations/{targetType}/{targetId}` asset and file routes.

Worlds use a streamed runtime manifest rather than the ordinary individual-file
routes. Read the RAD stream from `runtime.runtimeUrl` and its collider from
`runtime.collider.runtimeUrl`; use `artifacts` for the available Preview image.

Treat a manifest as a snapshot: store the asset and file IDs, and refresh the manifest when a download URL has expired or an asset gained a new derivative.
