Upload a file that can be used for batch processing, assistants, or fine-tuning purposes.
The file to upload. Must be a valid file object.
The intended purpose of the uploaded file. Must be one of:
batch - For batch processing (requires JSONL format)
assistants - For use with assistants
fine-tune - For fine-tuning models
File Requirements
- Maximum file size: 100MB
- For
batch purpose: File must be in valid JSONL format
- Supported content types:
text/jsonl and others depending on purpose
Returns
A unique identifier for the uploaded file (e.g., file-abc123).
The object type, which is always file.
The size of the file in bytes.
The Unix timestamp (in seconds) of when the file was created.
The name of the uploaded file.
The purpose of the file as specified during upload.
The current status of the file. Will be uploaded for newly uploaded files.
Additional details about the file status, if any.
Return Examples
{
"id": "file-abc123",
"object": "file",
"bytes": 120000,
"created_at": 1699564800,
"filename": "batch_requests.jsonl",
"purpose": "batch",
"status": "uploaded",
"status_details": null
}
{
"error": {
"message": "Missing required file parameter",
"type": "invalid_request_error",
"param": "file",
"code": "missing_file"
}
}
Error 400 - Invalid Purpose
{
"error": {
"message": "Invalid purpose. Must be one of: batch, assistants, fine-tune",
"type": "invalid_request_error",
"param": "purpose",
"code": "invalid_purpose"
}
}
Error 400 - File Too Large
{
"error": {
"message": "File too large. Maximum size is 100MB",
"type": "invalid_request_error",
"code": "file_too_large"
}
}