Files
litellm/docs/my-website/docs/container_files.md
T
Ishaan JaffandGitHub 1f141f0dbb [Feat] Litellm new endpoint add container file upload (#18743)
* init upload_container_file

* init upload_container_file

* _prepare_multipart_file_upload

* fix upload_container_file

* aupload_container_file, upload_container_file

* register_container_file_endpoints
2026-01-07 13:36:55 +05:30

8.5 KiB

id, title
id title
container_files /containers/files

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.

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:

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

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:

from litellm import alist_container_files

files = await alist_container_files(
    container_id="cntr_123...",
    custom_llm_provider="openai"
)

Retrieve Container File

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

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

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)

import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem';

Upload File

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}")
curl "http://localhost:4000/v1/containers/cntr_123.../files" \
    -H "Authorization: Bearer sk-1234" \
    -F file="@data.csv"

List Files

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}")
curl "http://localhost:4000/v1/containers/cntr_123.../files" \
    -H "Authorization: Bearer sk-1234"

Retrieve File Metadata

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")
curl "http://localhost:4000/v1/containers/cntr_123.../files/cfile_456..." \
    -H "Authorization: Bearer sk-1234"

Download File Content

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())
curl "http://localhost:4000/v1/containers/cntr_123.../files/cfile_456.../content" \
    -H "Authorization: Bearer sk-1234" \
    --output downloaded_file.png

Delete File

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

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

{
  "object": "list",
  "data": [...],
  "first_id": "cfile_456...",
  "last_id": "cfile_789...",
  "has_more": false
}

DeleteContainerFileResponse

{
  "id": "cfile_456...",
  "object": "container.file.deleted",
  "deleted": true
}

Supported Providers

Provider Status
OpenAI Supported