---
title: "Download a person asset by asset ID"
method: GET
path: "/api/v4/persons/{personId}/assets/{assetId}/download"
tags: ["Profile Assets"]
---

# Download a person asset by asset ID

`GET /api/v4/persons/{personId}/assets/{assetId}/download`

Streams the binary or text content of the asset identified by `assetId`. Returns HTTP 302 if the content is hosted at a remote URL; returns HTTP 200 with the raw content otherwise. Use the `name` variant (`downloadPersonAssetByName`) when you have the asset name but not the id.

## Path parameters

- `personId` string, required
- `assetId` string, required

## Response `200`

Binary asset content stream with the asset's stored content type.

## Other responses

- `302` — Redirect to remote asset content.
- `400` — Asset lookup or download failed: `asset_not_found` if no matching asset is attached to the person; `asset_content_not_downloadable` if the asset's content cannot be streamed.
- `401` — Unauthorized
- `403` — Forbidden
- `415` — Unsupported Media Type
- `429` — Too Many Requests

---

[API](https://skmtc.net/extole/apis/integration-api-server-to-extole.md) · [All operations](https://skmtc.net/extole/apis/integration-api-server-to-extole/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/extole/integration-api-server-to-extole/versions/c16e62e66755/schema)
