---
title: "Upload Visitor File"
method: POST
path: "/api/livechat/public/{widget_key}/files"
tags: ["livechat", "livechat"]
---

# Upload Visitor File

`POST /api/livechat/public/{widget_key}/files`

## Request

- Base URL: `https://api.dialogbrain.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.dialogbrain.com/api/livechat/public/{widget_key}/files`
- Auth: none declared

Upload a file attachment from the widget visitor.

Security:
- Validates MIME type against widget's allowed list
- Verifies file content matches claimed MIME (magic bytes)
- Blocks executable files
- Enforces size limits

The uploaded file is stored with the widget owner's user_id,
ensuring the ThreadView can display it via the existing attachment enrichment.

## Path parameters

- `widget_key` string, required

## Headers

- `X-Session-Token` string, nullable

## Response `200`

Successful Response

- FileUploadResponse: Response after successful file upload.
  - `file_id` integer, required
  - `filename` string, required
  - `mime_type` string, required
  - `size` integer, required
  - `download_url` string, required

## Other responses

- `422`: Validation Error

---

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