apicheats.dev openai/llms.txt Raw .md
POST

POST /files — OpenAI API

OpenAI API key (required); https://api.openai.com/v1

OpenAI API

Upload file

Base URL
https://api.openai.com/v1
Auth
Authorization: Bearer <OPENAI_API_KEY>
Last verified
2026-10-20 · upstream hash matched
Actions Try in browser→
Agents: curl -H "Accept: text/markdown" this URL
→ 234 tokens · Vary: Accept

Critical gotchas

The Responses API is the primary interface for new text and tool workflows; Chat Completions remains a separate compatibility API.

Audio transcription uploads use multipart form data rather than a JSON request body.

cURL

curl -X POST 'https://api.openai.com/v1/files' \  -H "Authorization: Bearer $OPENAI_API_KEY" \  -F '[email protected]' \  -F 'purpose=assistants'

Parameters

Name In Type Required Description
file body string Yes The File object (not file name) to be uploaded.
purpose body string Yes The intended purpose of the uploaded file. One of: - `assistants`: Used in the Assistants API - `batch`: Used in the Batch API - `fine-tune`: Used for fine-tuning - `vision`: Images used for vision fine-tuning - `user_data`: Flexible file type for any purpose - `evals`: Used for eval data sets
expires_after body object No The expiration policy for a file. By default, files with `purpose=batch` expire after 30 days and all other files are persisted until they are manually deleted.

Response 200 OK

{
  "id": "string",
  "bytes": 0,
  "created_at": 0,
  "expires_at": 0,
  "filename": "string",
  "object": "file",
  "purpose": "assistants",
  "status": "uploaded",
  "status_details": "string"
}
Get a free OpenAI API key → sponsored

Affiliate link - we may earn a commission, at no extra cost to you.