Container Files API
Manage files within Code Interpreter containers. Files are created automatically when code interpreter generates outputs (charts, CSVs, images, etc.).
tip
Looking for how to use Code Interpreter? See the Code Interpreter Guide.
| Feature | Supported |
|---|---|
| Cost Tracking | β |
| Logging | β |
| Supported Providers | openai |
Endpointsβ
| Endpoint | Method | Description |
|---|---|---|
/v1/containers/{container_id}/files | POST | Upload file to container |
/v1/containers/{container_id}/files | GET | List files in container |
/v1/containers/{container_id}/files/{file_id} | GET | Get file metadata |
/v1/containers/{container_id}/files/{file_id}/content | GET | Download file content |
/v1/containers/{container_id}/files/{file_id} | DELETE | Delete file |
LiteLLM Python SDKβ
Upload Container Fileβ
Upload files directly to a container session. This is useful when /chat/completions or /responses sends files to the container but the input file type is limited to PDF. This endpoint lets you work with other file types like CSV, Excel, Python scripts, etc.
upload_container_file.py
from litellm import upload_container_file
# Upload a CSV file
file = upload_container_file(
container_id="cntr_123...",
file=("data.csv", open("data.csv", "rb").read(), "text/csv"),
custom_llm_provider="openai"
)
print(f"Uploaded: {file.id}")
print(f"Path: {file.path}")
Async:
aupload_container_file.py
from litellm import aupload_container_file
file = await aupload_container_file(
container_id="cntr_123...",
file=("script.py", b"print('hello world')", "text/x-python"),
custom_llm_provider="openai"
)
Supported file formats:
- CSV (
.csv) - Excel (
.xlsx) - Python scripts (
.py) - JSON (
.json) - Markdown (
.md) - Text files (
.txt) - And more...
List Container Filesβ
list_container_files.py
from litellm import list_container_files
files = list_container_files(
container_id="cntr_123...",
custom_llm_provider="openai"
)
for file in files.data:
print(f" - {file.id}: {file.filename}")
Async:
alist_container_files.py
from litellm import alist_container_files
files = await alist_container_files(
container_id="cntr_123...",
custom_llm_provider="openai"
)
Retrieve Container Fileβ
retrieve_container_file.py
from litellm import retrieve_container_file
file = retrieve_container_file(
container_id="cntr_123...",
file_id="cfile_456...",
custom_llm_provider="openai"
)
print(f"File: {file.filename}")
print(f"Size: {file.bytes} bytes")
Download File Contentβ
retrieve_container_file_content.py
from litellm import retrieve_container_file_content
content = retrieve_container_file_content(
container_id="cntr_123...",
file_id="cfile_456...",
custom_llm_provider="openai"
)
# content is raw bytes
with open("output.png", "wb") as f:
f.write(content)
Delete Container Fileβ
delete_container_file.py
from litellm import delete_container_file
result = delete_container_file(
container_id="cntr_123...",
file_id="cfile_456...",
custom_llm_provider="openai"
)
print(f"Deleted: {result.deleted}")
LiteLLM AI Gateway (Proxy)β
Upload Fileβ
- OpenAI SDK
- curl
upload_file.py
from openai import OpenAI
client = OpenAI(
api_key="sk-1234",
base_url="http://localhost:4000"
)
file = client.containers.files.create(
container_id="cntr_123...",
file=open("data.csv", "rb")
)
print(f"Uploaded: {file.id}")
print(f"Path: {file.path}")
upload_file.sh
curl "http://localhost:4000/v1/containers/cntr_123.../files" \
-H "Authorization: Bearer sk-1234" \
-F file="@data.csv"
List Filesβ
- OpenAI SDK
- curl
list_files.py
from openai import OpenAI
client = OpenAI(
api_key="sk-1234",
base_url="http://localhost:4000"
)
files = client.containers.files.list(
container_id="cntr_123..."
)
for file in files.data:
print(f" - {file.id}: {file.filename}")
list_files.sh
curl "http://localhost:4000/v1/containers/cntr_123.../files" \
-H "Authorization: Bearer sk-1234"
Retrieve File Metadataβ
- OpenAI SDK
- curl
retrieve_file.py
from openai import OpenAI
client = OpenAI(
api_key="sk-1234",
base_url="http://localhost:4000"
)
file = client.containers.files.retrieve(
container_id="cntr_123...",
file_id="cfile_456..."
)
print(f"File: {file.filename}")
print(f"Size: {file.bytes} bytes")
retrieve_file.sh
curl "http://localhost:4000/v1/containers/cntr_123.../files/cfile_456..." \
-H "Authorization: Bearer sk-1234"
Download File Contentβ
- OpenAI SDK
- curl
download_content.py
from openai import OpenAI
client = OpenAI(
api_key="sk-1234",
base_url="http://localhost:4000"
)
content = client.containers.files.content(
container_id="cntr_123...",
file_id="cfile_456..."
)
with open("output.png", "wb") as f:
f.write(content.read())
download_content.sh
curl "http://localhost:4000/v1/containers/cntr_123.../files/cfile_456.../content" \
-H "Authorization: Bearer sk-1234" \
--output downloaded_file.png
Delete Fileβ
- OpenAI SDK
- curl
delete_file.py
from openai import OpenAI
client = OpenAI(
api_key="sk-1234",
base_url="http://localhost:4000"
)
result = client.containers.files.delete(
container_id="cntr_123...",
file_id="cfile_456..."
)
print(f"Deleted: {result.deleted}")
delete_file.sh
curl -X DELETE "http://localhost:4000/v1/containers/cntr_123.../files/cfile_456..." \
-H "Authorization: Bearer sk-1234"
Parametersβ
Upload Fileβ
| Parameter | Type | Required | Description |
|---|---|---|---|
container_id | string | Yes | Container ID |
file | FileTypes | Yes | File to upload. Can be a tuple of (filename, content, content_type), file-like object, or bytes |
List Filesβ
| Parameter | Type | Required | Description |
|---|---|---|---|
container_id | string | Yes | Container ID |
after | string | No | Pagination cursor |
limit | integer | No | Items to return (1-100, default: 20) |
order | string | No | Sort order: asc or desc |
Retrieve/Delete Fileβ
| Parameter | Type | Required | Description |
|---|---|---|---|
container_id | string | Yes | Container ID |
file_id | string | Yes | File ID |
Response Objectsβ
ContainerFileObjectβ
ContainerFileObject
{
"id": "cfile_456...",
"object": "container.file",
"container_id": "cntr_123...",
"bytes": 12345,
"created_at": 1234567890,
"filename": "chart.png",
"path": "/mnt/data/chart.png",
"source": "code_interpreter"
}
ContainerFileListResponseβ
ContainerFileListResponse
{
"object": "list",
"data": [...],
"first_id": "cfile_456...",
"last_id": "cfile_789...",
"has_more": false
}
DeleteContainerFileResponseβ
DeleteContainerFileResponse
{
"id": "cfile_456...",
"object": "container.file.deleted",
"deleted": true
}
Supported Providersβ
| Provider | Status |
|---|---|
| OpenAI | β Supported |
Relatedβ
- Containers API - Manage containers
- Code Interpreter Guide - Using Code Interpreter with LiteLLM