Skip to content

Upload deal documents

POST
/api/intake/{conversation_id}/files
curl --request POST \
--url https://example.com/api/intake/example/files \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: multipart/form-data' \
--form files=example

Accepts multipart file uploads. Max 50 MB per file. Accepted types: .pdf, .xlsx, .xls, .csv.

conversation_id
required
Conversation Id
string
Media type multipart/form-data
Body_upload_files_api_intake__conversation_id__files_post
object
files
required
Files
Array<string>

Successful Response

Media type application/json
FilesResponse
object
conversation_id
required
Conversation Id
string
files_received
required
Files Received
Array<object>
object
key
additional properties
any
status
required
Status
string
ready
required
Ready
boolean
acknowledgment
Any of:
string
conversation_state
Any of:
ConversationStateSnapshot

Compact state object included in mutation responses so the frontend can update its wizard without a separate /status poll.

object
status
required
Status
string
file_count
File Count
integer
0
has_deal_name
Has Deal Name
boolean
deal_name
Any of:
string
progress_step
Progress Step
string
default: Unknown
next_action
Any of:
string
files_summary
Any of:
string
suggested_deal_name
Any of:
string
deal_name_confidence
Any of:
number
suggested_name_parts
Any of:
object
key
additional properties
Any of:
string
deal_name_extraction
Any of:
object
key
additional properties
any
Example
{
"conversation_state": {
"file_count": 0,
"has_deal_name": false,
"progress_step": "Unknown"
}
}

Validation Error

Media type application/json
HTTPValidationError
object
detail
Detail
Array<object>
ValidationError
object
loc
required
Location
Array
msg
required
Message
string
type
required
Error Type
string
input
Input
ctx
Context
object
Example generated
{
"detail": [
{
"loc": [
"example"
],
"msg": "example",
"type": "example",
"input": "example",
"ctx": {}
}
]
}