---
title: "Get a media-library asset by ID"
canonical: "https://bird.com/docs/api/reference/get-asset"
---

# Get a media-library asset by ID

`GET /v1/assets/{asset_id}`

Returns one media-library asset. An asset that has been removed from the library is returned with `deleted_at` set rather than as a missing resource, because its URL keeps serving and messages already sent still reference it.

## Code samples

**TypeScript**

```ts
const asset = await bird.assets.get("ast_01krdgeqcxet5s7t44vh8rt9mg");
console.log(asset.url);
```

Examples: [TypeScript](/docs/api/reference/get-asset.ts.md) · [Python](/docs/api/reference/get-asset.py.md) · [Go](/docs/api/reference/get-asset.go.md) · [PHP](/docs/api/reference/get-asset.php.md) · [CLI](/docs/api/reference/get-asset.cli.md) · [MCP](/docs/api/reference/get-asset.mcp.md) · [cURL](/docs/api/reference/get-asset.curl.md)

## Example response `200`

```json
{
  "created_at": "2026-05-20T09:14:52Z",
  "updated_at": "2026-05-25T16:42:01Z",
  "id": "ast_01krdgeqcxet5s7t44vh8rt9mg",
  "kind": "image",
  "folder_id": "asf_01krdgeqcxet5s7t44vh8rt9mg"
}
```

## Path parameters

- `asset_id` (string): ID of the asset.

## Response body

- `created_at` (string, required)
- `updated_at` (string, required)
- `id` (string, required)
- `url` (string, required): The asset's permanent public URL. Safe to embed or link in sent messages; for a document the usable form is a link.
- `thumbnail_url` (nullable string, required): A small preview of the asset, for rendering a picker or a grid. Intended for your own interfaces rather than for embedding in messages. Null for every kind but `image`: generating a preview of a video, an audio file, or a document would mean rendering its contents, which the library does not do. Show an icon for the `kind` instead.
- `name` (string, required): The asset's display name. Defaults to the uploaded file's name.
- `content_type` (string, required): The stored file's media type, determined from its contents.
- `kind` (string, required)

  The category a media-library asset's type falls into. Use it to group or filter a
  mixed library.

  - `image`: covers PNG, JPEG, and GIF.
  - `video`: covers MP4, WebM, and QuickTime.
  - `audio`: covers MP3, M4A, Ogg, and WAV.
  - `document`: covers PDF.

  Possible values (may grow over time): `image`, `video`, `audio`, `document`
- `size_bytes` (integer, required): The stored file's size in bytes. Images are re-encoded on upload, so for those this can differ from the size of the file you sent. Every other kind is stored byte-for-byte.
- `width` (nullable integer, required): The stored image's width in pixels. Null for every kind but `image`.
- `height` (nullable integer, required): The stored image's height in pixels. Null for every kind but `image`.
- `alt_text` (nullable string, required): Default alternative text describing the asset, carried along whenever it is placed. Most mail clients block images by default, so for an image this is often the only thing a recipient reads.
- `folder_id` (nullable string, required): The folder the asset is filed in, or null when it sits at the top level of the library. Filing an asset never changes its URL.
- `deleted_at` (nullable string, required): When the asset was removed from the library, or null if it is still listed. A removed asset keeps serving at its original URL.

## Related resources

- [Should I use a Bird SDK or call the API directly?](/explained/platform/should-i-use-an-sdk-or-call-the-api-directly) (answer)
- [Build your first integration](/learn/paths/integration) (course)
- [Send your first email](/docs/get-started/send-your-first-email) (docs)

[Get an implementation brief](/learn/workspace?topic=api-basics)
