# Containers

## List containers

`$ openai containers list`

**get** `/containers`

List Containers

### Parameters

- `--after: optional string`

  A cursor for use in pagination. `after` is 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 number`

  A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 20.

- `--name: optional string`

  Filter results by container name.

- `--order: optional "asc" or "desc"`

  Sort order by the `created_at` timestamp of the objects. `asc` for ascending order and `desc` for descending order.

### Returns

- `ContainerListResource: object { data, first_id, has_more, 2 more }`

  - `data: array of object { id, created_at, name, 6 more }`

    A list of containers.

    - `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: 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 number`

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

    - `last_active_at: optional number`

      Unix 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 string`

        Allowed outbound domains when `type` is `allowlist`.

  - `first_id: string`

    The ID of the first container in the list.

  - `has_more: boolean`

    Whether there are more containers available.

  - `last_id: string`

    The ID of the last container in the list.

  - `object: "list"`

    The type of object returned, must be 'list'.

### Example

```cli
openai containers list \
  --api-key 'My API Key'
```

#### Response

```json
{
  "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

`$ openai containers create`

**post** `/containers`

Create Container

### Parameters

- `--name: string`

  Name of the container to create.

- `--expires-after: optional object { anchor, minutes }`

  Container expiration time in seconds relative to the 'anchor' time.

- `--file-id: optional array of string`

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

- `--network-policy: optional ContainerNetworkPolicyDisabled or ContainerNetworkPolicyAllowlist`

  Network access policy for the container.

- `--skill: optional array of SkillReference or InlineSkill`

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

### Returns

- `ContainerNewResponse: object { 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: 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 number`

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

  - `last_active_at: optional number`

    Unix 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 string`

      Allowed outbound domains when `type` is `allowlist`.

### Example

```cli
openai containers create \
  --api-key 'My API Key' \
  --name name
```

#### Response

```json
{
  "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

`$ openai containers retrieve`

**get** `/containers/{container_id}`

Retrieve Container

### Parameters

- `--container-id: string`

### Returns

- `ContainerGetResponse: object { 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: 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 number`

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

  - `last_active_at: optional number`

    Unix 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 string`

      Allowed outbound domains when `type` is `allowlist`.

### Example

```cli
openai containers retrieve \
  --api-key 'My API Key' \
  --container-id container_id
```

#### Response

```json
{
  "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

`$ openai containers delete`

**delete** `/containers/{container_id}`

Delete Container

### Parameters

- `--container-id: string`

  The ID of the container to delete.

### Example

```cli
openai containers delete \
  --api-key 'My API Key' \
  --container-id container_id
```

# Files

## List container files

`$ openai containers:files list`

**get** `/containers/{container_id}/files`

List Container files

### Parameters

- `--container-id: string`

- `--after: optional string`

  A cursor for use in pagination. `after` is 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 number`

  A 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_at` timestamp of the objects. `asc` for ascending order and `desc` for descending order.

### Returns

- `ContainerFileListResource: object { data, first_id, has_more, 2 more }`

  - `data: array of object { id, bytes, container_id, 4 more }`

    A list of container files.

    - `id: string`

      Unique identifier for the file.

    - `bytes: number`

      Size of the file in bytes.

    - `container_id: string`

      The container this file belongs to.

    - `created_at: number`

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

    - `object: "container.file"`

      The type of this object (`container.file`).

    - `path: string`

      Path of the file in the container.

    - `source: string`

      Source of the file (e.g., `user`, `assistant`).

  - `first_id: string`

    The ID of the first file in the list.

  - `has_more: boolean`

    Whether there are more files available.

  - `last_id: string`

    The ID of the last file in the list.

  - `object: "list"`

    The type of object returned, must be 'list'.

### Example

```cli
openai containers:files list \
  --api-key 'My API Key' \
  --container-id container_id
```

#### Response

```json
{
  "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

`$ openai containers:files create`

**post** `/containers/{container_id}/files`

Create a Container File

You can send either a multipart/form-data request with the raw file content, or a JSON request with a file ID.

### Parameters

- `--container-id: string`

- `--file: optional string`

  The File object (not file name) to be uploaded.

- `--file-id: optional string`

  Name of the file to create.

### Returns

- `ContainerFileNewResponse: object { id, bytes, container_id, 4 more }`

  - `id: string`

    Unique identifier for the file.

  - `bytes: number`

    Size of the file in bytes.

  - `container_id: string`

    The container this file belongs to.

  - `created_at: number`

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

  - `object: "container.file"`

    The type of this object (`container.file`).

  - `path: string`

    Path of the file in the container.

  - `source: string`

    Source of the file (e.g., `user`, `assistant`).

### Example

```cli
openai containers:files create \
  --api-key 'My API Key' \
  --container-id container_id
```

#### Response

```json
{
  "id": "id",
  "bytes": 0,
  "container_id": "container_id",
  "created_at": 0,
  "object": "container.file",
  "path": "path",
  "source": "source"
}
```

## Retrieve container file

`$ openai containers:files retrieve`

**get** `/containers/{container_id}/files/{file_id}`

Retrieve Container File

### Parameters

- `--container-id: string`

- `--file-id: string`

### Returns

- `ContainerFileGetResponse: object { id, bytes, container_id, 4 more }`

  - `id: string`

    Unique identifier for the file.

  - `bytes: number`

    Size of the file in bytes.

  - `container_id: string`

    The container this file belongs to.

  - `created_at: number`

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

  - `object: "container.file"`

    The type of this object (`container.file`).

  - `path: string`

    Path of the file in the container.

  - `source: string`

    Source of the file (e.g., `user`, `assistant`).

### Example

```cli
openai containers:files retrieve \
  --api-key 'My API Key' \
  --container-id container_id \
  --file-id file_id
```

#### Response

```json
{
  "id": "id",
  "bytes": 0,
  "container_id": "container_id",
  "created_at": 0,
  "object": "container.file",
  "path": "path",
  "source": "source"
}
```

## Delete a container file

`$ openai containers:files delete`

**delete** `/containers/{container_id}/files/{file_id}`

Delete Container File

### Parameters

- `--container-id: string`

- `--file-id: string`

### Example

```cli
openai containers:files delete \
  --api-key 'My API Key' \
  --container-id container_id \
  --file-id file_id
```

# Content

## Retrieve container file content

`$ openai containers:files:content retrieve`

**get** `/containers/{container_id}/files/{file_id}/content`

Retrieve Container File Content

### Parameters

- `--container-id: string`

- `--file-id: string`

### Returns

- `unnamed_schema_3: file path`

### Example

```cli
openai containers:files:content retrieve \
  --api-key 'My API Key' \
  --container-id container_id \
  --file-id file_id
```
