Skip to content
Primary navigation

Create container

client.containers.create(ContainerCreateParams { name, expires_after, file_ids, 3 more } body, RequestOptionsoptions?): ContainerCreateResponse { id, created_at, name, 6 more }
POST/containers

Create Container

ParametersExpand Collapse
body: ContainerCreateParams { name, expires_after, file_ids, 3 more }
name: string

Name of the container to create.

expires_after?: ExpiresAfter

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: number
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:
ContainerNetworkPolicyDisabled { type }
type: "disabled"

Disable outbound network access. Always disabled.

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

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
ContainerCreateResponse { id, created_at, name, 6 more }
id: string

Unique identifier for the container.

created_at: number

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?: 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_at"

The reference point for the expiration.

minutes?: number

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

last_active_at?: number

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?: NetworkPolicy { 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

import OpenAI from 'openai';

const client = new OpenAI({
  apiKey: process.env['OPENAI_API_KEY'], // This is the default and can be omitted
});

const container = await client.containers.create({ name: 'name' });

console.log(container.id);
{
    "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"
}