---
title: "List assets"
method: GET
path: "/api/apps/{app_id}/assets"
---

# List assets

`GET /api/apps/{app_id}/assets`

<Info>This API is in beta. Endpoints, fields, and behavior may still change, so avoid depending on it in production.</Info>

Returns the files in the app's media library, newest first unless you set `sort`. That includes files uploaded to the app and files Base44 generated for it, such as AI-generated images and videos.

You can filter by:
- Text in the file name
- How the file got into the library
- File type

You get up to 500 assets, and there's no pagination. Use the filters to narrow a larger library.

This is limited to 120 requests a minute per app for each workspace's personal API keys, so every key in a workspace shares one allowance. Some workspaces have a different limit.

<Note>This endpoint accepts a personal API key, including a read-only one, from anyone with access to the app, viewers included. Workspace API keys are not authorized for it.</Note>

<Warning>The response includes fields beyond the ones documented here. Don't rely on undocumented response fields, as they can change at any time.</Warning>

## Path parameters

- `app_id` string, required — ID of the app whose media library to read.

## Query parameters

- `search` string, nullable — Text to match, ignoring case, anywhere in the file name. For example, `logo` matches `Logo-dark.png`.
- `sort` string, nullable — Order of the list. Either `newest`, `oldest`, or `a-z` for file name order, where uppercase letters come before lowercase ones. Defaults to `newest`, and any other value also sorts newest first.
- `source_type` string, nullable — Keep only files with this `source_type`, either `upload` or `generated`.
- `file_type` string, nullable — Keep only files with this `file_type`, matched exactly. For example, `png`.

## Response `200`

The app's assets.

- AssetSummary[] — The app's assets.
  - `id` string, required — ID of the asset.
  - `app_id` string, required — ID of the app the asset belongs to.
  - `file_name` string, required — Name of the file.
  - `file_url` string, required — URL of the file.
  - `source_type` 'upload' | 'generated', required — How the file got into the library. `upload` for a file someone uploaded, and `generated` for most files Base44 created for the app, such as AI-generated images and videos or a Figma import.
  - `file_type` string, nullable, required — File extension without the dot, usually lowercase, such as `png` or `mp4`. The value is `null` when the file was added without one.
  - `created_date` string, required — When the asset was added to the library, as a UTC timestamp in ISO 8601 format.
  - `updated_date` string, required — When the asset was last changed, such as renamed, as a UTC timestamp in ISO 8601 format.

## Other responses

- `401` — Missing or invalid credentials.
- `403` — You don't have access to this app, or you used a workspace API key.
- `404` — App not found.
- `429` — Too many requests for this app in the last minute from personal API keys in your workspace.

## Changes

> 28 revisions in range; 1 not diffed.

- **2026-10-06** `9a0e9d0827a1` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/adexad/apis/base44-app-management-api/changes/api/apps/:app_id/assets/get.md)

---

[API](https://skmtc.dev/adexad/apis/base44-app-management-api.md) · [All operations](https://skmtc.dev/adexad/apis/base44-app-management-api/llms.txt) · [OpenAPI document](https://skmtc.dev/adexad/apis/base44-app-management-api/revisions/99df85f579f9?raw)
