---
title: "Upload a screenshot or document"
method: POST
path: "/v1/projects/{projectId}/public-page/assets"
tags: ["Project Public Page"]
---

# Upload a screenshot or document

`POST /v1/projects/{projectId}/public-page/assets`

PNG, JPEG, WebP or PDF, at most 10 MB, sniffed from the bytes. Image metadata is stripped. At most 12 images and 5 documents per page. The file is private until the next publish.

## Path parameters

- `projectId` string, required

## Response `200`

The stored upload

- PublicPageAssetDto
  - `id` string
  - `type` string
  - `fileName` string
  - `contentType` string
  - `size` integer
  - `caption` string
  - `ordering` integer
  - `previewUrl` string
  - `created` integer

## Other responses

- `400` — Unsupported type, too large or limit reached
- `401` — Not authorized
- `404` — No page or project not found

## Changes

> 8 revisions in range; 1 not diffed.

- **2026-09-06** `24f693bd6f1f` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/timesheet/apis/timesheet-api/changes/v1/projects/:projectId/public-page/assets/post.md)

---

[API](https://skmtc.dev/timesheet/apis/timesheet-api.md) · [All operations](https://skmtc.dev/timesheet/apis/timesheet-api/llms.txt) · [OpenAPI document](https://skmtc.dev/timesheet/apis/timesheet-api/revisions/a3d2f44e7345?raw)
