Skip to content
Primary navigation

Create container

containers.create(**kwargs) -> ContainerCreateResponse { id, created_at, name, 6 more }
POST/containers

Create Container

ParametersExpand Collapse
name: String

Name of the container to create.

expires_after: { 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.

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

One of the following:
:"1g"
:"4g"
:"16g"
:"64g"
network_policy: ContainerNetworkPolicyDisabled { type } | ContainerNetworkPolicyAllowlist { allowed_domains, type, domain_secrets }

Network access policy for the container.

One of the following:
class ContainerNetworkPolicyDisabled { type }
type: :disabled

Disable outbound network access. Always disabled.

class ContainerNetworkPolicyAllowlist { allowed_domains, type, domain_secrets }
allowed_domains: Array[String]

A list of allowed domains when type is allowlist.

type: :allowlist

Allow outbound network access only to specified domains. Always allowlist.

domain_secrets: Array[ContainerNetworkPolicyDomainSecret { domain, name, value } ]

Optional domain-scoped secrets for allowlisted domains.

domain: String

The domain associated with the secret.

minLength1
name: String

The name of the secret to inject for the domain.

minLength1
value: String

The secret value to inject for the domain.

maxLength10485760
minLength1
skills: Array[SkillReference { skill_id, type, version } | InlineSkill { description, name, source, type } ]

An optional list of skills referenced by id or inline data.

One of the following:
class SkillReference { skill_id, type, version }
skill_id: String

The ID of the referenced skill.

maxLength64
minLength1
type: :skill_reference

References a skill created with the /v1/skills endpoint.

version: String

Optional skill version. Use a positive integer or 'latest'. Omit for default.

class InlineSkill { description, name, source, type }
description: String

The description of the skill.

name: String

The name of the skill.

source: InlineSkillSource { data, media_type, type }

Inline skill payload

data: String

Base64-encoded skill zip bundle.

maxLength70254592
minLength1
media_type: :"application/zip"

The media type of the inline skill payload. Must be application/zip.

type: :base64

The type of the inline skill source. Must be base64.

type: :inline

Defines an inline skill for this request.

ReturnsExpand Collapse
class ContainerCreateResponse { id, created_at, name, 6 more }
id: String

Unique identifier for the container.

created_at: Integer

Unix timestamp (in seconds) when the container was created.

name: String

Name of the container.

object: String

The type of this object.

status: String

Status of the container (e.g., active, deleted).

expires_after: { 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_at

The reference point for the expiration.

minutes: Integer

The number of minutes after the anchor before the container expires.

last_active_at: Integer

Unix timestamp (in seconds) when the container was last active.

memory_limit: :"1g" | :"4g" | :"16g" | :"64g"

The memory limit configured for the container.

One of the following:
:"1g"
:"4g"
:"16g"
:"64g"
network_policy: { type, allowed_domains}

Network access policy for the container.

type: :allowlist | :disabled

The network policy mode.

One of the following:
:allowlist
:disabled
allowed_domains: Array[String]

Allowed outbound domains when type is allowlist.

Create container

require "openai"

openai = OpenAI::Client.new(api_key: "My API Key")

container = openai.containers.create(name: "name")

puts(container)
{
    "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"
}
Returns Examples
{
    "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"
}