Skip to main content

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.

FeatureSupported
Cost Tracking✅
Logging✅
Supported Providersopenai

Endpoints​

EndpointMethodDescription
/v1/containers/{container_id}/filesPOSTUpload file to container
/v1/containers/{container_id}/filesGETList files in container
/v1/containers/{container_id}/files/{file_id}GETGet file metadata
/v1/containers/{container_id}/files/{file_id}/contentGETDownload file content
/v1/containers/{container_id}/files/{file_id}DELETEDelete 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​

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}")

List Files​

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}")

Retrieve File Metadata​

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")

Download File Content​

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())

Delete File​

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}")

Parameters​

Upload File​

ParameterTypeRequiredDescription
container_idstringYesContainer ID
fileFileTypesYesFile to upload. Can be a tuple of (filename, content, content_type), file-like object, or bytes

List Files​

ParameterTypeRequiredDescription
container_idstringYesContainer ID
afterstringNoPagination cursor
limitintegerNoItems to return (1-100, default: 20)
orderstringNoSort order: asc or desc

Retrieve/Delete File​

ParameterTypeRequiredDescription
container_idstringYesContainer ID
file_idstringYesFile 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​

ProviderStatus
OpenAI✅ Supported