---
title: "Upload a reference file (PDF/DOCX/image) for the AI to query while editing."
method: POST
path: "/v1/attachments/upload-base64"
tags: ["v1", "mcp", "attachments"]
---

# Upload a reference file (PDF/DOCX/image) for the AI to query while editing.

`POST /v1/attachments/upload-base64`

## Request

- Base URL: `https://api.superdocs.app`
- URL: `https://api.superdocs.app/v1/attachments/upload-base64`
- Auth: HTTP bearer

Files are processed asynchronously and become AI-searchable once ready. The AI can then reference the attachment's content during chat (e.g., "rewrite section 3 to match the style guide PDF I attached"). Images are queryable via multimodal vision. Poll get_attachment_status to know when ready. Distinct from upload_document_base64: attachments are read-only context for the AI to reference, not the editable working document. Supported formats: .pdf, .docx, .txt, .rtf, .md, .html, .htm, .tex (plus .zip LaTeX project archives). Max 50 MB validated; note the hosted transport layer caps any REQUEST BODY at ~32 MB and rejects larger ones at the gateway with an HTML (not JSON) error — base64 inflates content ~33%, so inline uploads are reliable up to ~20 MB of file bytes; beyond that use request_upload_url (pre-signed flow, up to 100 MB). Requires session_id.

## Headers

- `authorization` string, nullable

## Request body

- Base64UploadRequest: JSON request body for base64-encoded file uploads.
  - `filename` string, required: Original filename with extension (e.g. 'contract.pdf'). Used for file type detection.
  - `file_base64` string, required: Base64-encoded file content.
  - `session_id` string, nullable: Session ID. Auto-generated if not provided.
  - `return_html` boolean: With a session_id: false (default) returns compact metadata only (chunks_count, version_id, page_setup) — the document is loaded into the session and you edit it via chat, keeping your context small; true returns the full parsed HTML inline. Ignored on the convert-only path (no session_id), which always returns the converted html.

## Response `200`

Successful Response

- unknown

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/superdocs/apis/universal-document-ai-api.md) · [All operations](https://skmtc.dev/superdocs/apis/universal-document-ai-api/llms.txt) · [OpenAPI document](https://skmtc.dev/superdocs/apis/universal-document-ai-api/revisions/37d03122940b?raw)
