Containers
List containers
containers.list(**kwargs) -> CursorPage<ContainerListResponse>
get /containers
List containers
Parameters
-
after: 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: IntegerA limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 20.
-
name: StringFilter results by container name.
-
order: :asc | :descSort order by the
created_attimestamp of the objects.ascfor ascending order anddescfor descending order.-
:asc -
:desc
-
Returns
-
class ContainerListResponse-
id: StringUnique identifier for the container.
-
created_at: IntegerUnix 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: ExpiresAfter{ 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: :last_active_atThe reference point for the expiration.
:last_active_at
-
minutes: IntegerThe number of minutes after the anchor before the container expires.
-
-
last_active_at: IntegerUnix timestamp (in seconds) when the container was last active.
-
memory_limit: :"1g" | :"4g" | :"16g" | :"64g"The memory limit configured for the container.
-
:"1g" -
:"4g" -
:"16g" -
:"64g"
-
-
network_policy: NetworkPolicy{ type, allowed_domains}Network access policy for the container.
-
type: :allowlist | :disabledThe network policy mode.
-
:allowlist -
:disabled
-
-
allowed_domains: Array[String]Allowed outbound domains when
typeisallowlist.
-
-
Example
require "openai"
openai = OpenAI::Client.new(api_key: "My API Key")
page = openai.containers.list
puts(page)
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"
}
Create container
containers.create(**kwargs) -> ContainerCreateResponse
post /containers
Create container
Parameters
-
name: StringName of the container to create.
-
expires_after: ExpiresAfter{ anchor, minutes}Container expiration time in seconds relative to the 'anchor' time.
-
anchor: :last_active_atTime anchor for the expiration time. Currently only 'last_active_at' is supported.
:last_active_at
-
minutes: Integer
-
-
file_ids: Array[String]IDs of files to copy to the container.
-
memory_limit: :"1g" | :"4g" | :"16g" | :"64g"Optional memory limit for the container. Defaults to "1g".
-
:"1g" -
:"4g" -
:"16g" -
:"64g"
-
-
network_policy: ContainerNetworkPolicyDisabled | ContainerNetworkPolicyAllowlistNetwork access policy for the container.
-
class ContainerNetworkPolicyDisabled-
type: :disabledDisable outbound network access. Always
disabled.:disabled
-
-
class ContainerNetworkPolicyAllowlist-
allowed_domains: Array[String]A list of allowed domains when type is
allowlist. -
type: :allowlistAllow outbound network access only to specified domains. Always
allowlist.:allowlist
-
domain_secrets: Array[ContainerNetworkPolicyDomainSecret]Optional 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: Array[SkillReference | InlineSkill]An optional list of skills referenced by id or inline data.
-
class SkillReference-
skill_id: StringThe ID of the referenced skill.
-
type: :skill_referenceReferences a skill created with the /v1/skills endpoint.
:skill_reference
-
version: StringOptional skill version. Use a positive integer or 'latest'. Omit for default.
-
-
class InlineSkill-
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: :base64The type of the inline skill source. Must be
base64.:base64
-
-
type: :inlineDefines an inline skill for this request.
:inline
-
-
Returns
-
class ContainerCreateResponse-
id: StringUnique identifier for the container.
-
created_at: IntegerUnix 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: ExpiresAfter{ 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: :last_active_atThe reference point for the expiration.
:last_active_at
-
minutes: IntegerThe number of minutes after the anchor before the container expires.
-
-
last_active_at: IntegerUnix timestamp (in seconds) when the container was last active.
-
memory_limit: :"1g" | :"4g" | :"16g" | :"64g"The memory limit configured for the container.
-
:"1g" -
:"4g" -
:"16g" -
:"64g"
-
-
network_policy: NetworkPolicy{ type, allowed_domains}Network access policy for the container.
-
type: :allowlist | :disabledThe network policy mode.
-
:allowlist -
:disabled
-
-
allowed_domains: Array[String]Allowed outbound domains when
typeisallowlist.
-
-
Example
require "openai"
openai = OpenAI::Client.new(api_key: "My API Key")
container = openai.containers.create(name: "name")
puts(container)
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"
]
}
}
Retrieve container
containers.retrieve(container_id) -> ContainerRetrieveResponse
get /containers/{container_id}
Retrieve container
Parameters
container_id: String
Returns
-
class ContainerRetrieveResponse-
id: StringUnique identifier for the container.
-
created_at: IntegerUnix 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: ExpiresAfter{ 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: :last_active_atThe reference point for the expiration.
:last_active_at
-
minutes: IntegerThe number of minutes after the anchor before the container expires.
-
-
last_active_at: IntegerUnix timestamp (in seconds) when the container was last active.
-
memory_limit: :"1g" | :"4g" | :"16g" | :"64g"The memory limit configured for the container.
-
:"1g" -
:"4g" -
:"16g" -
:"64g"
-
-
network_policy: NetworkPolicy{ type, allowed_domains}Network access policy for the container.
-
type: :allowlist | :disabledThe network policy mode.
-
:allowlist -
:disabled
-
-
allowed_domains: Array[String]Allowed outbound domains when
typeisallowlist.
-
-
Example
require "openai"
openai = OpenAI::Client.new(api_key: "My API Key")
container = openai.containers.retrieve("container_id")
puts(container)
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"
]
}
}
Delete a container
containers.delete(container_id) -> void
delete /containers/{container_id}
Delete a container
Parameters
container_id: String
Example
require "openai"
openai = OpenAI::Client.new(api_key: "My API Key")
result = openai.containers.delete("container_id")
puts(result)
Domain Types
Container List Response
-
class ContainerListResponse-
id: StringUnique identifier for the container.
-
created_at: IntegerUnix 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: ExpiresAfter{ 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: :last_active_atThe reference point for the expiration.
:last_active_at
-
minutes: IntegerThe number of minutes after the anchor before the container expires.
-
-
last_active_at: IntegerUnix timestamp (in seconds) when the container was last active.
-
memory_limit: :"1g" | :"4g" | :"16g" | :"64g"The memory limit configured for the container.
-
:"1g" -
:"4g" -
:"16g" -
:"64g"
-
-
network_policy: NetworkPolicy{ type, allowed_domains}Network access policy for the container.
-
type: :allowlist | :disabledThe network policy mode.
-
:allowlist -
:disabled
-
-
allowed_domains: Array[String]Allowed outbound domains when
typeisallowlist.
-
-
Container Create Response
-
class ContainerCreateResponse-
id: StringUnique identifier for the container.
-
created_at: IntegerUnix 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: ExpiresAfter{ 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: :last_active_atThe reference point for the expiration.
:last_active_at
-
minutes: IntegerThe number of minutes after the anchor before the container expires.
-
-
last_active_at: IntegerUnix timestamp (in seconds) when the container was last active.
-
memory_limit: :"1g" | :"4g" | :"16g" | :"64g"The memory limit configured for the container.
-
:"1g" -
:"4g" -
:"16g" -
:"64g"
-
-
network_policy: NetworkPolicy{ type, allowed_domains}Network access policy for the container.
-
type: :allowlist | :disabledThe network policy mode.
-
:allowlist -
:disabled
-
-
allowed_domains: Array[String]Allowed outbound domains when
typeisallowlist.
-
-
Container Retrieve Response
-
class ContainerRetrieveResponse-
id: StringUnique identifier for the container.
-
created_at: IntegerUnix 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: ExpiresAfter{ 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: :last_active_atThe reference point for the expiration.
:last_active_at
-
minutes: IntegerThe number of minutes after the anchor before the container expires.
-
-
last_active_at: IntegerUnix timestamp (in seconds) when the container was last active.
-
memory_limit: :"1g" | :"4g" | :"16g" | :"64g"The memory limit configured for the container.
-
:"1g" -
:"4g" -
:"16g" -
:"64g"
-
-
network_policy: NetworkPolicy{ type, allowed_domains}Network access policy for the container.
-
type: :allowlist | :disabledThe network policy mode.
-
:allowlist -
:disabled
-
-
allowed_domains: Array[String]Allowed outbound domains when
typeisallowlist.
-
-
Files
List container files
containers.files.list(container_id, **kwargs) -> CursorPage<FileListResponse>
get /containers/{container_id}/files
List container files
Parameters
-
container_id: String -
after: 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: IntegerA limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 20.
-
order: :asc | :descSort order by the
created_attimestamp of the objects.ascfor ascending order anddescfor descending order.-
:asc -
:desc
-
Returns
-
class FileListResponse-
id: StringUnique identifier for the file.
-
bytes: IntegerSize of the file in bytes.
-
container_id: StringThe container this file belongs to.
-
created_at: IntegerUnix 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
require "openai"
openai = OpenAI::Client.new(api_key: "My API Key")
page = openai.containers.files.list("container_id")
puts(page)
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"
}
Create container file
containers.files.create(container_id, **kwargs) -> FileCreateResponse
post /containers/{container_id}/files
Create container file
Parameters
-
container_id: String -
file: StringThe File object (not file name) to be uploaded.
-
file_id: StringName of the file to create.
Returns
-
class FileCreateResponse-
id: StringUnique identifier for the file.
-
bytes: IntegerSize of the file in bytes.
-
container_id: StringThe container this file belongs to.
-
created_at: IntegerUnix 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
require "openai"
openai = OpenAI::Client.new(api_key: "My API Key")
file = openai.containers.files.create("container_id")
puts(file)
Response
{
"id": "id",
"bytes": 0,
"container_id": "container_id",
"created_at": 0,
"object": "container.file",
"path": "path",
"source": "source"
}
Retrieve container file
containers.files.retrieve(file_id, **kwargs) -> FileRetrieveResponse
get /containers/{container_id}/files/{file_id}
Retrieve container file
Parameters
-
container_id: String -
file_id: String
Returns
-
class FileRetrieveResponse-
id: StringUnique identifier for the file.
-
bytes: IntegerSize of the file in bytes.
-
container_id: StringThe container this file belongs to.
-
created_at: IntegerUnix 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
require "openai"
openai = OpenAI::Client.new(api_key: "My API Key")
file = openai.containers.files.retrieve("file_id", container_id: "container_id")
puts(file)
Response
{
"id": "id",
"bytes": 0,
"container_id": "container_id",
"created_at": 0,
"object": "container.file",
"path": "path",
"source": "source"
}
Delete a container file
containers.files.delete(file_id, **kwargs) -> void
delete /containers/{container_id}/files/{file_id}
Delete a container file
Parameters
-
container_id: String -
file_id: String
Example
require "openai"
openai = OpenAI::Client.new(api_key: "My API Key")
result = openai.containers.files.delete("file_id", container_id: "container_id")
puts(result)
Domain Types
File List Response
-
class FileListResponse-
id: StringUnique identifier for the file.
-
bytes: IntegerSize of the file in bytes.
-
container_id: StringThe container this file belongs to.
-
created_at: IntegerUnix 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
-
class FileCreateResponse-
id: StringUnique identifier for the file.
-
bytes: IntegerSize of the file in bytes.
-
container_id: StringThe container this file belongs to.
-
created_at: IntegerUnix 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
-
class FileRetrieveResponse-
id: StringUnique identifier for the file.
-
bytes: IntegerSize of the file in bytes.
-
container_id: StringThe container this file belongs to.
-
created_at: IntegerUnix 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
containers.files.content.retrieve(file_id, **kwargs) -> StringIO
get /containers/{container_id}/files/{file_id}/content
Retrieve container file content
Parameters
-
container_id: String -
file_id: String
Returns
StringIO
Example
require "openai"
openai = OpenAI::Client.new(api_key: "My API Key")
content = openai.containers.files.content.retrieve("file_id", container_id: "container_id")
puts(content)