---
title: "Upload a file"
method: POST
path: "/uploads"
tags: ["Uploads"]
---

# Upload a file

`POST /uploads`

Upload a file and get back its permanent public URL on the Gleap CDN. Send the
request as `multipart/form-data` with the file in a form field named `file`
(maximum size 100 MB). Files are stored in a folder scoped to the project passed
in the `project` header.

The returned `fileUrl` can be used anywhere a URL is accepted — most commonly as
the image source inside help center article `content`, which is TipTap JSON where
images are nodes of the shape `{ "type": "image", "attrs": { "src": "<fileUrl>" } }`.
To add images to articles in bulk (e.g. UI screenshots for many articles), call
this endpoint once per file, collect the returned URLs, and reference them in the
article content when creating or updating articles.

## Headers

- `project` string, required

## Response `200`

Ok

- UploadedFileResponse
  - `success` boolean, required
  - `fileUrl` string, required — Permanent public URL of the stored file on the Gleap CDN.

---

[API](https://skmtc.net/gleap/apis/gleap-server.md) · [All operations](https://skmtc.net/gleap/apis/gleap-server/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/gleap/gleap-server/revisions/98174db0934c/schema)
