# Upload a brand asset

URL: /en/docs/api/v1/brand/filetype/put
Last Updated: 2026-07-30T21:15:29.747Z

## Description
No description available.

## Available Actions
- Execute PUT request
- View request parameters
- View response schema
- Get code examples
- Navigate to related topics
- View step-by-step instructions
- Get best practices

## Content
### PUT /api/v1/brand/{filetype}

**Upload a brand asset**

Uploads a logo, hero banner image, or custom font for the tenant. Files are stored in Directus and returned as public asset URLs.

**Authentication:** Bearer token (`Authorization: Bearer <token>`)

**Path parameters:**

| Name | Type | Required | Description |
|---|---|---|---|
| `filetype` | enum: logo \| hero \| font | Yes | Type of brand asset to manage. Supports logo, hero banner, and custom font uploads. |

**Request body** (`multipart/form-data`) - required:

- `file` (string (binary), required): Asset file to upload. Logos support PNG, JPG, SVG, GIF, and WebP up to 100 KB. Hero images support PNG, JPG, SVG, GIF, and WebP up to 2 MB. Fonts support WOFF, WOFF2, OTF, and TTF up to 1 MB.

**Responses:**

- `200` - Asset uploaded successfully
  - `fileId` (string): Directus asset ID for the uploaded file
  - `url` (string): Public URL for the uploaded asset
  - `filename` (string): Original filename for the uploaded asset

  Example (success):
  
  ```json
  {
  "fileId": "hero-file-789",
  "url": "https://directus.example.com/assets/hero-file-789",
  "filename": "hero-banner.jpg"
}
  ```
- `400` - Invalid file type or missing file input
- `401` - Unauthorized
- `403` - Forbidden - Admin role required
- `413` - Uploaded file exceeds the allowed size limit
- `500` - Internal server error while processing the upload

**Code samples:**

cURL:

```bash
curl -X PUT "https://app.orbiqhq.com/api/v1/brand/hero" \
  -H "Authorization: Bearer $ACCESS_TOKEN" \
  -F "file=@hero-banner.jpg"
```

