---
title: "Upload a file"
url: https://docs.gleap.ai/en/reference/rest-api/upload-file
method: POST
path: "/uploads"
api: "API Reference"
tag: "Uploads"
operationId: "UploadFile"
updatedAt: "2026-11-01T18:40:15.677Z"
language: en
---

# Upload a file

`POST https://api.gleap.io/v3/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.

## Authorization

- `Authorization` (header, required): `Bearer <token>`

## Headers

- `project` (string, required)

## Example request

```bash
curl --request POST \
  --url https://api.gleap.io/v3/uploads \
  --header 'Authorization: Bearer <token>' \
  --header 'project: <project>'
```

## Responses

### 200 (`application/json`)

Ok

- `success` (boolean, required)
- `fileUrl` (string, required): Permanent public URL of the stored file on the Gleap CDN.

```json
{
  "success": true,
  "fileUrl": "string"
}
```
