{
"type": "object",
"properties": {
"agent_id": {
"type": "string",
"description": "The agent ID the batch would use, e.g. agent_abc123 — needed to resolve which org phone number/calling rules to validate against"
},
"agent_version_number": {
"type": "string",
"description": "The specific published agent version — same requirement as create_batch_call"
},
"file_name": {
"type": "string",
"description": "File name with extension, e.g. leads.csv or leads.xlsx. Required with file_text/file_base64; taken from the upload otherwise."
},
"file_text": {
"type": "string",
"description": "Only for rows the user TYPED into the conversation, or a small CSV/text file (under ~50 KB) you were given as a path and can read. Plain text, header row first. Not for a file the user attached in the chat: pass that as `file`."
},
"file_base64": {
"type": "string",
"description": "Only for a small .xlsx (under ~50 KB) given to you as a path on disk. NEVER base64-encode a file the user attached in the chat (pass it as `file`) and never encode anything larger (use create_upload_url)."
},
"upload_id": {
"type": "string",
"description": "Only for a file on a disk YOU control that is too large for file_text (over ~50 KB): call create_upload_url with reveal_url: true, PUT the bytes yourself from a machine with open internet access, then pass the upload_id here. Never for a file the user attached in the chat (pass it as `file`), and never from a hosted chat sandbox such as ChatGPT code interpreter, which cannot reach the storage host."
},
"file": {
"type": "object",
"properties": {
"file_id": {
"type": "string",
"description": "Host-side file id"
},
"download_url": {
"type": "string",
"description": "Short-lived signed URL the host provides for the attached file"
},
"file_name": {
"type": "string"
},
"mime_type": {
"type": "string"
},
"size": {
"type": "number"
}
},
"required": [
"file_id",
"download_url"
],
"additionalProperties": false,
"description": "ALWAYS use this when the user attached a file in the chat: pass the attached file here and the host turns it into a download link for the server. Fastest path, any size. NEVER open, convert or base64-encode an attached file yourself."
}
},
"required": [
"agent_id",
"agent_version_number"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}