---
title: "Serve an asset"
method: GET
path: "/v1/assets/serve"
tags: ["App"]
---

# Serve an asset

`GET /v1/assets/serve`

Stream a file given an mxc://, localmxc://, or file:// URL. Downloads first if not cached. Supports Range requests for seeking in large files.

## Query parameters

- `url` string, required — Asset URL to serve. Accepts mxc://, localmxc://, or file:// URLs.

## Response `204`

Request executed successfully

## Other responses

- `400` — Invalid request parameters
- `401` — Access token is missing or invalid
- `403` — Access token does not have the required scope
- `404` — Resource not found
- `422` — Unprocessable entity - validation error
- `429` — Too many requests - rate limit exceeded
- `500` — Internal server error

## Changes

- **2026-01-31** `099d55ac0e74` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/beeper/apis/beeper-desktop-api/changes/v1/assets/serve/get.md)

---

[API](https://skmtc.dev/beeper/apis/beeper-desktop-api.md) · [All operations](https://skmtc.dev/beeper/apis/beeper-desktop-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/beeper/beeper-desktop-api/revisions/774bb08472b6/schema)
