# POST /agents/environments (OpenAI API)
Base URL: https://api.openai.com/v1
Auth: Authorization; OpenAI API key; required.
Request formats: application/json.
Last verified: 2026-10-20

> Create an agent environment

## Critical Gotchas
* The Responses API is the primary interface for new text and tool workflows; Chat Completions remains a separate compatibility API.
* Audio transcription uploads use multipart form data rather than a JSON request body.

## cURL
curl -X POST 'https://api.openai.com/v1/agents/environments' \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -H 'Content-Type: application/json' \
  -d '{
  "environment": {
    "type": "openai_hosted",
    "packages": {
      "python": [
        "example-python"
      ],
      "system": [
        "example-system"
      ],
      "npm": [
        "example-npm"
      ]
    },
    "setup_commands": [
      {
        "command": "example-command",
        "cwd": "example-cwd"
      }
    ],
    "network": {
      "access": "enabled",
      "allowed_domains": [
        "example-allowed-domains"
      ],
      "blocked_domains": [
        "example-blocked-domains"
      ]
    },
    "desktop": {
      "enabled": true
    },
    "env": {},
    "capability_directories": [
      "example-capability-directories"
    ],
    "skills": [
      {
        "type": "skill_reference",
        "skill_id": "example-skill-id",
        "version": "example-version"
      }
    ],
    "plugins": [
      {
        "type": "inline",
        "name": "example-name",
        "description": "example-description",
        "source": {
          "type": "base64",
          "media_type": "application/zip",
          "data": "example-data"
        }
      }
    ],
    "files": [
      {
        "type": "file_id",
        "file_id": "example-file-id",
        "path": "example-path"
      }
    ],
    "environment_template_id": "example-environment-template-id"
  }
}'

## Parameters
| Name | In | Type | Required | Description |
| :--- | :--- | :--- | :--- | :--- |
| environment | body | object | Yes | Configuration for a new prewarmed OpenAI-hosted environment. |
| vault_ids | body | string[] | No | The IDs of up to 10 vaults made available to an OpenAI-hosted environment. |

## Response example
{"type":"openai_hosted","id":"string"}

---
Need an API key? Get one at https://platform.openai.com/api-keys