---
title: "Presign Widget Attachment"
method: POST
path: "/api/v1/public/text-widget/sessions/{session_id}/attachments/presign"
tags: ["text-widget-public"]
---

# Presign Widget Attachment

`POST /api/v1/public/text-widget/sessions/{session_id}/attachments/presign`

Generate a presigned S3 PUT URL for a text widget attachment.

## Path parameters

- `session_id` string, uuid, required

## Headers

- `X-Session-Token` string, required

## Request body

- PresignRequest
  - `filename` string, required
  - `content_type` string, required

## Response `200`

Successful Response

- PresignResponse
  - `upload_url` string, required
  - `object_key` string, required

## Other responses

- `422` — Validation Error

## Changes

> 29 revisions in range; 1 not diffed.

- **2026-09-03** `d65b8fefae34` — 2 info
  - added the optional property `detail/items/ctx` to the response with the `422` status
  - added the optional property `detail/items/input` to the response with the `422` status

[Change history](https://skmtc.dev/getanana/apis/cleon-api/changes/api/v1/public/text-widget/sessions/:session_id/attachments/presign/post.md)

---

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