---
title: "Api Asset"
method: POST
path: "/api/v1/novels/{novel_id}/assets"
---

# Api Asset

`POST /api/v1/novels/{novel_id}/assets`

## Request

- Base URL: `https://humanread.surl.tw` (the document declares no server; this is the origin it was published from)
- URL: `https://humanread.surl.tw/api/v1/novels/{novel_id}/assets`
- Auth: none declared

## Path parameters

- `novel_id` integer, required

## Headers

- `authorization` string, nullable

## Request body

- AssetUploadRequest
  - `content_base64` string, required: Base64-encoded PNG, JPEG, or WebP bytes; data-URL prefixes are not accepted
  - `alt_text` string, required: Concise accessible description, or an explicit decorative description
  - `filename` string, nullable: Optional original filename for client bookkeeping; storage names are content hashes
  - `media_type` 'image/png' | 'image/jpeg' | 'image/webp', nullable: Optional declared source type; decoded bytes are independently verified

## Response `200`

Successful Response

- unknown

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/surl/apis/humanread.md) · [All operations](https://skmtc.dev/surl/apis/humanread/llms.txt) · [OpenAPI document](https://skmtc.dev/surl/apis/humanread/revisions/0a54f33f41df?raw)
