Files API

Upload, manage, and retrieve files for fine-tuning, batch processing, assistants, and more.

Use Cases

🎯

Fine-Tuning

Upload training data in JSONL format to train custom models

📦

Batch API

Submit large batches of requests for async processing

🤖

Assistants

Attach documents for retrieval and code interpretation

Upload a File

Python
from mythicdot import MythicDot

client = MythicDot()

# Upload a file for fine-tuning
file = client.files.create(
    file=open("training_data.jsonl", "rb"),
    purpose="fine-tune"
)

print(f"File ID: {file.id}")
print(f"Size: {file.bytes} bytes")
print(f"Status: {file.status}")

API Endpoints

POST
/v1/files
Upload a file (multipart/form-data)
GET
/v1/files
List all files in your organization
GET
/v1/files/{file_id}
Retrieve file metadata by ID
GET
/v1/files/{file_id}/content
Download file content
DELETE
/v1/files/{file_id}
Delete a file by ID

List Files

Python
# List all files
files = client.files.list()

for file in files.data:
    print(f"{file.id}: {file.filename} ({file.purpose})")

# Filter by purpose
training_files = client.files.list(purpose="fine-tune")

Delete Files

Python
# Delete a single file
client.files.delete("file-abc123")

# Delete all files of a certain purpose
files = client.files.list(purpose="fine-tune")
for file in files.data:
    client.files.delete(file.id)
    print(f"Deleted {file.filename}")

⚠️ Caution

Deleted files cannot be recovered. Make sure you have backups of important training data before deleting.

Supported File Types

Files by Purpose
.jsonl Fine-tuning training data, Batch API requests
.pdf Assistants file search, document analysis
.txt Assistants file search, text processing
.csv Assistants code interpreter, data analysis
.json Assistants code interpreter, structured data
.py .js .ts Assistants code interpreter, code files

Limits

512 MB
Max file size
100 GB
Total storage per org
10,000
Max files per org

File Object

Response
{
  "id": "file-abc123xyz789",
  "object": "file",
  "bytes": 140385,
  "created_at": 1706140800,
  "filename": "training_data.jsonl",
  "purpose": "fine-tune",
  "status": "processed",
  "status_details": null
}