Containers
List containers
get /containers
List containers
Query Parameters
-
after: optional stringA cursor for use in pagination.
afteris an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with obj_foo, your subsequent call can include after=obj_foo in order to fetch the next page of the list. -
limit: optional numberA limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 20.
-
name: optional stringFilter results by container name.
-
order: optional "asc" or "desc"Sort order by the
created_attimestamp of the objects.ascfor ascending order anddescfor descending order.-
"asc" -
"desc"
-
Returns
-
data: array of object { id, created_at, name, 6 more }A list of containers.
-
id: stringUnique identifier for the container.
-
created_at: numberUnix timestamp (in seconds) when the container was created.
-
name: stringName of the container.
-
object: stringThe type of this object.
-
status: stringStatus of the container (e.g., active, deleted).
-
expires_after: optional object { anchor, minutes }The container will expire after this time period. The anchor is the reference point for the expiration. The minutes is the number of minutes after the anchor before the container expires.
-
anchor: optional "last_active_at"The reference point for the expiration.
"last_active_at"
-
minutes: optional numberThe number of minutes after the anchor before the container expires.
-
-
last_active_at: optional numberUnix timestamp (in seconds) when the container was last active.
-
memory_limit: optional "1g" or "4g" or "16g" or "64g"The memory limit configured for the container.
-
"1g" -
"4g" -
"16g" -
"64g"
-
-
network_policy: optional object { type, allowed_domains }Network access policy for the container.
-
type: "allowlist" or "disabled"The network policy mode.
-
"allowlist" -
"disabled"
-
-
allowed_domains: optional array of stringAllowed outbound domains when
typeisallowlist.
-
-
-
first_id: stringThe ID of the first container in the list.
-
has_more: booleanWhether there are more containers available.
-
last_id: stringThe ID of the last container in the list.
-
object: "list"The type of object returned, must be 'list'.
"list"
Example
curl https://api.openai.com/v1/containers \
-H "Authorization: Bearer $OPENAI_API_KEY"
Response
{
"data": [
{
"id": "id",
"created_at": 0,
"name": "name",
"object": "object",
"status": "status",
"expires_after": {
"anchor": "last_active_at",
"minutes": 0
},
"last_active_at": 0,
"memory_limit": "1g",
"network_policy": {
"type": "allowlist",
"allowed_domains": [
"string"
]
}
}
],
"first_id": "first_id",
"has_more": true,
"last_id": "last_id",
"object": "list"
}
Example
curl https://api.openai.com/v1/containers \
-H "Authorization: Bearer $OPENAI_API_KEY"
Response
{
"object": "list",
"data": [
{
"id": "cntr_682dfebaacac8198bbfe9c2474fb6f4a085685cbe3cb5863",
"object": "container",
"created_at": 1747844794,
"status": "running",
"expires_after": {
"anchor": "last_active_at",
"minutes": 20
},
"last_active_at": 1747844794,
"memory_limit": "4g",
"name": "My Container"
}
],
"first_id": "container_123",
"last_id": "container_123",
"has_more": false
}
Create container
post /containers
Create container
Body Parameters
-
name: stringName of the container to create.
-
expires_after: optional object { anchor, minutes }Container expiration time in seconds relative to the 'anchor' time.
-
anchor: "last_active_at"Time anchor for the expiration time. Currently only 'last_active_at' is supported.
"last_active_at"
-
minutes: number
-
-
file_ids: optional array of stringIDs of files to copy to the container.
-
memory_limit: optional "1g" or "4g" or "16g" or "64g"Optional memory limit for the container. Defaults to "1g".
-
"1g" -
"4g" -
"16g" -
"64g"
-
-
network_policy: optional ContainerNetworkPolicyDisabled or ContainerNetworkPolicyAllowlistNetwork access policy for the container.
-
ContainerNetworkPolicyDisabled object { type }-
type: "disabled"Disable outbound network access. Always
disabled."disabled"
-
-
ContainerNetworkPolicyAllowlist object { allowed_domains, type, domain_secrets }-
allowed_domains: array of stringA list of allowed domains when type is
allowlist. -
type: "allowlist"Allow outbound network access only to specified domains. Always
allowlist."allowlist"
-
domain_secrets: optional array of ContainerNetworkPolicyDomainSecretOptional domain-scoped secrets for allowlisted domains.
-
domain: stringThe domain associated with the secret.
-
name: stringThe name of the secret to inject for the domain.
-
value: stringThe secret value to inject for the domain.
-
-
-
-
skills: optional array of SkillReference or InlineSkillAn optional list of skills referenced by id or inline data.
-
SkillReference object { skill_id, type, version }-
skill_id: stringThe ID of the referenced skill.
-
type: "skill_reference"References a skill created with the /v1/skills endpoint.
"skill_reference"
-
version: optional stringOptional skill version. Use a positive integer or 'latest'. Omit for default.
-
-
InlineSkill object { description, name, source, type }-
description: stringThe description of the skill.
-
name: stringThe name of the skill.
-
source: InlineSkillSourceInline skill payload
-
data: stringBase64-encoded skill zip bundle.
-
media_type: "application/zip"The media type of the inline skill payload. Must be
application/zip."application/zip"
-
type: "base64"The type of the inline skill source. Must be
base64."base64"
-
-
type: "inline"Defines an inline skill for this request.
"inline"
-
-
Returns
-
id: stringUnique identifier for the container.
-
created_at: numberUnix timestamp (in seconds) when the container was created.
-
name: stringName of the container.
-
object: stringThe type of this object.
-
status: stringStatus of the container (e.g., active, deleted).
-
expires_after: optional object { anchor, minutes }The container will expire after this time period. The anchor is the reference point for the expiration. The minutes is the number of minutes after the anchor before the container expires.
-
anchor: optional "last_active_at"The reference point for the expiration.
"last_active_at"
-
minutes: optional numberThe number of minutes after the anchor before the container expires.
-
-
last_active_at: optional numberUnix timestamp (in seconds) when the container was last active.
-
memory_limit: optional "1g" or "4g" or "16g" or "64g"The memory limit configured for the container.
-
"1g" -
"4g" -
"16g" -
"64g"
-
-
network_policy: optional object { type, allowed_domains }Network access policy for the container.
-
type: "allowlist" or "disabled"The network policy mode.
-
"allowlist" -
"disabled"
-
-
allowed_domains: optional array of stringAllowed outbound domains when
typeisallowlist.
-
Example
curl https://api.openai.com/v1/containers \
-H 'Content-Type: application/json' \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-d '{
"name": "name"
}'
Response
{
"id": "id",
"created_at": 0,
"name": "name",
"object": "object",
"status": "status",
"expires_after": {
"anchor": "last_active_at",
"minutes": 0
},
"last_active_at": 0,
"memory_limit": "1g",
"network_policy": {
"type": "allowlist",
"allowed_domains": [
"string"
]
}
}
Example
curl https://api.openai.com/v1/containers \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "My Container",
"memory_limit": "4g",
"skills": [
{
"type": "skill_reference",
"skill_id": "skill_4db6f1a2c9e73508b41f9da06e2c7b5f"
},
{
"type": "skill_reference",
"skill_id": "openai-spreadsheets",
"version": "latest"
}
],
"network_policy": {
"type": "allowlist",
"allowed_domains": ["api.buildkite.com"]
}
}'
Response
{
"id": "cntr_682e30645a488191b6363a0cbefc0f0a025ec61b66250591",
"object": "container",
"created_at": 1747857508,
"status": "running",
"expires_after": {
"anchor": "last_active_at",
"minutes": 20
},
"last_active_at": 1747857508,
"network_policy": {
"type": "allowlist",
"allowed_domains": ["api.buildkite.com"]
},
"memory_limit": "4g",
"name": "My Container"
}
Retrieve container
get /containers/{container_id}
Retrieve container
Path Parameters
container_id: string
Returns
-
id: stringUnique identifier for the container.
-
created_at: numberUnix timestamp (in seconds) when the container was created.
-
name: stringName of the container.
-
object: stringThe type of this object.
-
status: stringStatus of the container (e.g., active, deleted).
-
expires_after: optional object { anchor, minutes }The container will expire after this time period. The anchor is the reference point for the expiration. The minutes is the number of minutes after the anchor before the container expires.
-
anchor: optional "last_active_at"The reference point for the expiration.
"last_active_at"
-
minutes: optional numberThe number of minutes after the anchor before the container expires.
-
-
last_active_at: optional numberUnix timestamp (in seconds) when the container was last active.
-
memory_limit: optional "1g" or "4g" or "16g" or "64g"The memory limit configured for the container.
-
"1g" -
"4g" -
"16g" -
"64g"
-
-
network_policy: optional object { type, allowed_domains }Network access policy for the container.
-
type: "allowlist" or "disabled"The network policy mode.
-
"allowlist" -
"disabled"
-
-
allowed_domains: optional array of stringAllowed outbound domains when
typeisallowlist.
-
Example
curl https://api.openai.com/v1/containers/$CONTAINER_ID \
-H "Authorization: Bearer $OPENAI_API_KEY"
Response
{
"id": "id",
"created_at": 0,
"name": "name",
"object": "object",
"status": "status",
"expires_after": {
"anchor": "last_active_at",
"minutes": 0
},
"last_active_at": 0,
"memory_limit": "1g",
"network_policy": {
"type": "allowlist",
"allowed_domains": [
"string"
]
}
}
Example
curl https://api.openai.com/v1/containers/cntr_682dfebaacac8198bbfe9c2474fb6f4a085685cbe3cb5863 \
-H "Authorization: Bearer $OPENAI_API_KEY"
Response
{
"id": "cntr_682dfebaacac8198bbfe9c2474fb6f4a085685cbe3cb5863",
"object": "container",
"created_at": 1747844794,
"status": "running",
"expires_after": {
"anchor": "last_active_at",
"minutes": 20
},
"last_active_at": 1747844794,
"memory_limit": "4g",
"name": "My Container"
}
Delete a container
delete /containers/{container_id}
Delete a container
Path Parameters
container_id: string
Example
curl https://api.openai.com/v1/containers/$CONTAINER_ID \
-X DELETE \
-H "Authorization: Bearer $OPENAI_API_KEY"
Example
curl -X DELETE https://api.openai.com/v1/containers/cntr_682dfebaacac8198bbfe9c2474fb6f4a085685cbe3cb5863 \
-H "Authorization: Bearer $OPENAI_API_KEY"
Response
{
"id": "cntr_682dfebaacac8198bbfe9c2474fb6f4a085685cbe3cb5863",
"object": "container.deleted",
"deleted": true
}
Domain Types
Container List Response
-
ContainerListResponse object { id, created_at, name, 6 more }-
id: stringUnique identifier for the container.
-
created_at: numberUnix timestamp (in seconds) when the container was created.
-
name: stringName of the container.
-
object: stringThe type of this object.
-
status: stringStatus of the container (e.g., active, deleted).
-
expires_after: optional object { anchor, minutes }The container will expire after this time period. The anchor is the reference point for the expiration. The minutes is the number of minutes after the anchor before the container expires.
-
anchor: optional "last_active_at"The reference point for the expiration.
"last_active_at"
-
minutes: optional numberThe number of minutes after the anchor before the container expires.
-
-
last_active_at: optional numberUnix timestamp (in seconds) when the container was last active.
-
memory_limit: optional "1g" or "4g" or "16g" or "64g"The memory limit configured for the container.
-
"1g" -
"4g" -
"16g" -
"64g"
-
-
network_policy: optional object { type, allowed_domains }Network access policy for the container.
-
type: "allowlist" or "disabled"The network policy mode.
-
"allowlist" -
"disabled"
-
-
allowed_domains: optional array of stringAllowed outbound domains when
typeisallowlist.
-
-
Container Create Response
-
ContainerCreateResponse object { id, created_at, name, 6 more }-
id: stringUnique identifier for the container.
-
created_at: numberUnix timestamp (in seconds) when the container was created.
-
name: stringName of the container.
-
object: stringThe type of this object.
-
status: stringStatus of the container (e.g., active, deleted).
-
expires_after: optional object { anchor, minutes }The container will expire after this time period. The anchor is the reference point for the expiration. The minutes is the number of minutes after the anchor before the container expires.
-
anchor: optional "last_active_at"The reference point for the expiration.
"last_active_at"
-
minutes: optional numberThe number of minutes after the anchor before the container expires.
-
-
last_active_at: optional numberUnix timestamp (in seconds) when the container was last active.
-
memory_limit: optional "1g" or "4g" or "16g" or "64g"The memory limit configured for the container.
-
"1g" -
"4g" -
"16g" -
"64g"
-
-
network_policy: optional object { type, allowed_domains }Network access policy for the container.
-
type: "allowlist" or "disabled"The network policy mode.
-
"allowlist" -
"disabled"
-
-
allowed_domains: optional array of stringAllowed outbound domains when
typeisallowlist.
-
-
Container Retrieve Response
-
ContainerRetrieveResponse object { id, created_at, name, 6 more }-
id: stringUnique identifier for the container.
-
created_at: numberUnix timestamp (in seconds) when the container was created.
-
name: stringName of the container.
-
object: stringThe type of this object.
-
status: stringStatus of the container (e.g., active, deleted).
-
expires_after: optional object { anchor, minutes }The container will expire after this time period. The anchor is the reference point for the expiration. The minutes is the number of minutes after the anchor before the container expires.
-
anchor: optional "last_active_at"The reference point for the expiration.
"last_active_at"
-
minutes: optional numberThe number of minutes after the anchor before the container expires.
-
-
last_active_at: optional numberUnix timestamp (in seconds) when the container was last active.
-
memory_limit: optional "1g" or "4g" or "16g" or "64g"The memory limit configured for the container.
-
"1g" -
"4g" -
"16g" -
"64g"
-
-
network_policy: optional object { type, allowed_domains }Network access policy for the container.
-
type: "allowlist" or "disabled"The network policy mode.
-
"allowlist" -
"disabled"
-
-
allowed_domains: optional array of stringAllowed outbound domains when
typeisallowlist.
-
-
Files
List container files
get /containers/{container_id}/files
List container files
Path Parameters
container_id: string
Query Parameters
-
after: optional stringA cursor for use in pagination.
afteris an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with obj_foo, your subsequent call can include after=obj_foo in order to fetch the next page of the list. -
limit: optional numberA limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 20.
-
order: optional "asc" or "desc"Sort order by the
created_attimestamp of the objects.ascfor ascending order anddescfor descending order.-
"asc" -
"desc"
-
Returns
-
data: array of object { id, bytes, container_id, 4 more }A list of container files.
-
id: stringUnique identifier for the file.
-
bytes: numberSize of the file in bytes.
-
container_id: stringThe container this file belongs to.
-
created_at: numberUnix timestamp (in seconds) when the file was created.
-
object: "container.file"The type of this object (
container.file)."container.file"
-
path: stringPath of the file in the container.
-
source: stringSource of the file (e.g.,
user,assistant).
-
-
first_id: stringThe ID of the first file in the list.
-
has_more: booleanWhether there are more files available.
-
last_id: stringThe ID of the last file in the list.
-
object: "list"The type of object returned, must be 'list'.
"list"
Example
curl https://api.openai.com/v1/containers/$CONTAINER_ID/files \
-H "Authorization: Bearer $OPENAI_API_KEY"
Response
{
"data": [
{
"id": "id",
"bytes": 0,
"container_id": "container_id",
"created_at": 0,
"object": "container.file",
"path": "path",
"source": "source"
}
],
"first_id": "first_id",
"has_more": true,
"last_id": "last_id",
"object": "list"
}
Example
curl https://api.openai.com/v1/containers/cntr_682e0e7318108198aa783fd921ff305e08e78805b9fdbb04/files \
-H "Authorization: Bearer $OPENAI_API_KEY"
Response
{
"object": "list",
"data": [
{
"id": "cfile_682e0e8a43c88191a7978f477a09bdf5",
"object": "container.file",
"created_at": 1747848842,
"bytes": 880,
"container_id": "cntr_682e0e7318108198aa783fd921ff305e08e78805b9fdbb04",
"path": "/mnt/data/88e12fa445d32636f190a0b33daed6cb-tsconfig.json",
"source": "user"
}
],
"first_id": "cfile_682e0e8a43c88191a7978f477a09bdf5",
"has_more": false,
"last_id": "cfile_682e0e8a43c88191a7978f477a09bdf5"
}
Create container file
post /containers/{container_id}/files
Create container file
Path Parameters
container_id: string
Body Parameters
-
file: optional stringThe File object (not file name) to be uploaded.
-
file_id: optional stringName of the file to create.
Returns
-
id: stringUnique identifier for the file.
-
bytes: numberSize of the file in bytes.
-
container_id: stringThe container this file belongs to.
-
created_at: numberUnix timestamp (in seconds) when the file was created.
-
object: "container.file"The type of this object (
container.file)."container.file"
-
path: stringPath of the file in the container.
-
source: stringSource of the file (e.g.,
user,assistant).
Example
curl https://api.openai.com/v1/containers/$CONTAINER_ID/files \
-H 'Content-Type: application/json' \
-H "Authorization: Bearer $OPENAI_API_KEY"
Response
{
"id": "id",
"bytes": 0,
"container_id": "container_id",
"created_at": 0,
"object": "container.file",
"path": "path",
"source": "source"
}
Example
curl https://api.openai.com/v1/containers/cntr_682e0e7318108198aa783fd921ff305e08e78805b9fdbb04/files \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-F file="@example.txt"
Response
{
"id": "cfile_682e0e8a43c88191a7978f477a09bdf5",
"object": "container.file",
"created_at": 1747848842,
"bytes": 880,
"container_id": "cntr_682e0e7318108198aa783fd921ff305e08e78805b9fdbb04",
"path": "/mnt/data/88e12fa445d32636f190a0b33daed6cb-tsconfig.json",
"source": "user"
}
Retrieve container file
get /containers/{container_id}/files/{file_id}
Retrieve container file
Path Parameters
-
container_id: string -
file_id: string
Returns
-
id: stringUnique identifier for the file.
-
bytes: numberSize of the file in bytes.
-
container_id: stringThe container this file belongs to.
-
created_at: numberUnix timestamp (in seconds) when the file was created.
-
object: "container.file"The type of this object (
container.file)."container.file"
-
path: stringPath of the file in the container.
-
source: stringSource of the file (e.g.,
user,assistant).
Example
curl https://api.openai.com/v1/containers/$CONTAINER_ID/files/$FILE_ID \
-H "Authorization: Bearer $OPENAI_API_KEY"
Response
{
"id": "id",
"bytes": 0,
"container_id": "container_id",
"created_at": 0,
"object": "container.file",
"path": "path",
"source": "source"
}
Example
curl https://api.openai.com/v1/containers/container_123/files/file_456 \
-H "Authorization: Bearer $OPENAI_API_KEY"
Response
{
"id": "cfile_682e0e8a43c88191a7978f477a09bdf5",
"object": "container.file",
"created_at": 1747848842,
"bytes": 880,
"container_id": "cntr_682e0e7318108198aa783fd921ff305e08e78805b9fdbb04",
"path": "/mnt/data/88e12fa445d32636f190a0b33daed6cb-tsconfig.json",
"source": "user"
}
Delete a container file
delete /containers/{container_id}/files/{file_id}
Delete a container file
Path Parameters
-
container_id: string -
file_id: string
Example
curl https://api.openai.com/v1/containers/$CONTAINER_ID/files/$FILE_ID \
-X DELETE \
-H "Authorization: Bearer $OPENAI_API_KEY"
Example
curl -X DELETE https://api.openai.com/v1/containers/cntr_682dfebaacac8198bbfe9c2474fb6f4a085685cbe3cb5863/files/cfile_682e0e8a43c88191a7978f477a09bdf5 \
-H "Authorization: Bearer $OPENAI_API_KEY"
Response
{
"id": "cfile_682e0e8a43c88191a7978f477a09bdf5",
"object": "container.file.deleted",
"deleted": true
}
Domain Types
File List Response
-
FileListResponse object { id, bytes, container_id, 4 more }-
id: stringUnique identifier for the file.
-
bytes: numberSize of the file in bytes.
-
container_id: stringThe container this file belongs to.
-
created_at: numberUnix timestamp (in seconds) when the file was created.
-
object: "container.file"The type of this object (
container.file)."container.file"
-
path: stringPath of the file in the container.
-
source: stringSource of the file (e.g.,
user,assistant).
-
File Create Response
-
FileCreateResponse object { id, bytes, container_id, 4 more }-
id: stringUnique identifier for the file.
-
bytes: numberSize of the file in bytes.
-
container_id: stringThe container this file belongs to.
-
created_at: numberUnix timestamp (in seconds) when the file was created.
-
object: "container.file"The type of this object (
container.file)."container.file"
-
path: stringPath of the file in the container.
-
source: stringSource of the file (e.g.,
user,assistant).
-
File Retrieve Response
-
FileRetrieveResponse object { id, bytes, container_id, 4 more }-
id: stringUnique identifier for the file.
-
bytes: numberSize of the file in bytes.
-
container_id: stringThe container this file belongs to.
-
created_at: numberUnix timestamp (in seconds) when the file was created.
-
object: "container.file"The type of this object (
container.file)."container.file"
-
path: stringPath of the file in the container.
-
source: stringSource of the file (e.g.,
user,assistant).
-
Content
Retrieve container file content
get /containers/{container_id}/files/{file_id}/content
Retrieve container file content
Path Parameters
-
container_id: string -
file_id: string
Example
curl https://api.openai.com/v1/containers/$CONTAINER_ID/files/$FILE_ID/content \
-H "Authorization: Bearer $OPENAI_API_KEY"
Example
curl https://api.openai.com/v1/containers/container_123/files/cfile_456/content \
-H "Authorization: Bearer $OPENAI_API_KEY"
Response
<binary content of the file>