# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand. overlay: 1.0.0 info: title: API Evangelist conversational phrasing for OpenAI Uploads API version: 1.0.0 extends: openapi/openai-uploads-api-openapi.yml actions: - target: $.info update: x-apievangelist-phrasing: method: generated generated: '2026-09-26' generator: build-phrasing.py label: Generated by API Evangelist operations: 4 - target: $.paths['/uploads'].post update: x-apievangelist-phrasing: intent: Start a multipart upload for a large file effect: write questions: - How do I upload a file too large for a single request? - What's the maximum total size a multipart Upload can hold? instructions: - text: Start an upload for {filename} of {bytes} bytes, type {mime_type}, for purpose {purpose}. slots: filename: requestBody.filename bytes: requestBody.bytes mime_type: requestBody.mime_type purpose: requestBody.purpose - text: Open a multipart upload named {filename} ({bytes} bytes, {mime_type}) for {purpose} that expires after {expires_after}. slots: filename: requestBody.filename bytes: requestBody.bytes mime_type: requestBody.mime_type purpose: requestBody.purpose expires_after: requestBody.expires_after method: generated generated: '2026-09-26' - target: $.paths['/uploads/{upload_id}/cancel'].post update: x-apievangelist-phrasing: intent: Cancel a multipart upload effect: destructive questions: - Can I abandon a large upload partway through? - What happens to an Upload after I cancel it? instructions: - text: Cancel upload {upload_id}. slots: upload_id: path.upload_id - text: Abort the in-progress multipart upload {upload_id}. slots: upload_id: path.upload_id method: generated generated: '2026-09-26' - target: $.paths['/uploads/{upload_id}/complete'].post update: x-apievangelist-phrasing: intent: Finish a multipart upload into a usable file effect: write questions: - Once all parts are uploaded, how do I turn them into a usable file? - Can I verify the assembled upload with an MD5 checksum? instructions: - text: Complete upload {upload_id} with parts {part_ids} in order. slots: upload_id: path.upload_id part_ids: requestBody.part_ids - text: Finish upload {upload_id} from parts {part_ids} and check it against MD5 {md5}. slots: upload_id: path.upload_id part_ids: requestBody.part_ids md5: requestBody.md5 method: generated generated: '2026-09-26' - target: $.paths['/uploads/{upload_id}/parts'].post update: x-apievangelist-phrasing: intent: Add a chunk to a multipart upload effect: write questions: - How do I send the next chunk of bytes for a large file upload? - How big can each part of a multipart upload be? instructions: - text: Add part {data} to upload {upload_id}. slots: data: requestBody.data upload_id: path.upload_id - text: Send the next chunk {data} of my file to upload {upload_id}. slots: data: requestBody.data upload_id: path.upload_id method: generated generated: '2026-09-26'