Generated by API Evangelist
Written by API Evangelist tooling for OpenAI's API. It is a proposal applied on top of the contract, not a document OpenAI publishes.
# 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'
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we
store it to create your key and to recognise you if you sign in with another
provider. See our Privacy Policy and
Terms.