---
title: "Upload Session Document"
method: POST
path: "/v1/intake/sessions/{token}/documents"
tags: ["intake"]
---

# Upload Session Document

`POST /v1/intake/sessions/{token}/documents`

## Request

- Base URL: `https://api.claims.zicron.ai`
- URL: `https://api.claims.zicron.ai/v1/intake/sessions/{token}/documents`
- Auth: none declared

Upload a supporting document for an anonymous intake session.

Files can't ride a chat turn, so the chat agent's ``upload_document`` tool
surfaces an upload control that posts here. We resolve the session's own
claim (creating one if it doesn't exist yet), then run the SAME validated
extraction pipeline as the authenticated ``POST /claims/{claim_id}/documents``
route — scoped strictly to the session's own org via a system
``AuthContext``. Once extraction completes, the live re-scoring loop reflects
the new evidence.

Isolation: the anonymous caller only controls the opaque ``session_token``;
the target ``claim_id`` and ``org_id`` are both derived server-side from the
session, so a caller can never upload into another tenant's claim.

## Path parameters

- `token` string, required

## Response `200`

Successful Response

- SessionDocumentUploadResponse
  - `status` string, required
  - `claim_id` string, required
  - `filename` string, required
  - `task_id` string, nullable
  - `document_id` string, nullable

## Other responses

- `422`: Validation Error

---

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