This sample demonstrates how to download files generated by Code Interpreter when using the OpenAI Responses API.
- Creating an agent with Code Interpreter tool using
ResponsesClient.AsAIAgent() - Generating files through Code Interpreter (e.g., CSV, Excel, images)
- Extracting container file citations from agent response annotations
- Downloading container files using the
ContainerClientAPI
When Code Interpreter generates a file, the file is stored inside a container with a cntr_ prefixed ID. The file itself gets a cfile_ prefixed ID.
These container files cannot be downloaded using the standard Files API (GetOpenAIFileClient), which returns 404 for cfile_ IDs. Instead, you must use the Containers API (GetContainerClient) to download them:
// ❌ This does NOT work for container files
var filesClient = openAIClient.GetOpenAIFileClient();
await filesClient.DownloadFileAsync("cfile_..."); // Returns 404
// ✅ Use ContainerClient instead
var containerClient = openAIClient.GetContainerClient();
await containerClient.DownloadContainerFileAsync("cntr_...", "cfile_...");The container ID and file ID are available from the ContainerFileCitationMessageAnnotation annotation in the response, accessible via CitationAnnotation.RawRepresentation.
- .NET 10 SDK or later
- OpenAI API key with access to a model that supports Code Interpreter
Set the following environment variables:
$env:OPENAI_API_KEY="sk-..."
$env:OPENAI_CHAT_MODEL_NAME="gpt-4o-mini" # Optional, defaults to gpt-4o-minidotnet run- Code Interpreter File Download with Foundry — same scenario using Microsoft Foundry
- Code Interpreter — Code Interpreter without file download