OpenAI · Schema
EnvironmentTemplateResource
Reusable configuration that provisions a fresh OpenAI-hosted environment for each session.
LLMOpenAIArtificial IntelligenceGenerative AIChatbotsFoundation ModelsT1
Properties
| Name | Type | Description |
|---|---|---|
| id | string | The ID of the reusable environment template. |
| name | stringnull | An optional human-readable display name for the template. |
| object | string | The object type. Always `agent.environment.template`. |
| created_at | integer | The Unix timestamp, in seconds, when the template was created. |
| updated_at | integer | The Unix timestamp, in seconds, when the template was last updated. |
| packages | object | Packages installed in each fresh OpenAI-hosted environment. |
| network | object | Runtime network access for each OpenAI-hosted environment. |
| capability_directories | array | Directories that expose capabilities to the agent. |
| skills | array | Safe skill metadata, preserving unresolved version selectors. |
| plugins | array | Safe plugin metadata, excluding inline archive contents. |
| files | array | Safe file metadata, excluding contents and session-scoped file IDs. |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://raw.githubusercontent.com/api-evangelist/openai/main/json-schema/openai-environment-template-resource-schema.json",
"title": "EnvironmentTemplateResource",
"description": "Reusable configuration that provisions a fresh OpenAI-hosted environment for each session.",
"x-generated": "2026-09-23",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": "openapi/openai-agents-api-openapi.yml#/components/schemas/EnvironmentTemplateResource",
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 0,
"description": "The ID of the reusable environment template."
},
"name": {
"type": [
"string",
"null"
],
"minLength": 0,
"description": "An optional human-readable display name for the template."
},
"object": {
"type": "string",
"enum": [
"agent.environment.template"
],
"default": "agent.environment.template",
"x-stainless-const": true,
"description": "The object type. Always `agent.environment.template`."
},
"created_at": {
"type": "integer",
"format": "int64",
"description": "The Unix timestamp, in seconds, when the template was created."
},
"updated_at": {
"type": "integer",
"format": "int64",
"description": "The Unix timestamp, in seconds, when the template was last updated."
},
"packages": {
"$ref": "#/$defs/EnvironmentPackagesResource",
"description": "Packages installed in each fresh OpenAI-hosted environment."
},
"network": {
"$ref": "#/$defs/NetworkPolicyResource",
"description": "Runtime network access for each OpenAI-hosted environment."
},
"capability_directories": {
"type": "array",
"items": {
"type": "string",
"minLength": 0
},
"minItems": 0,
"maxItems": 2000,
"description": "Directories that expose capabilities to the agent."
},
"skills": {
"type": "array",
"items": {
"$ref": "#/$defs/HostedTemplateSkillResource"
},
"minItems": 0,
"maxItems": 200,
"description": "Safe skill metadata, preserving unresolved version selectors."
},
"plugins": {
"type": "array",
"items": {
"$ref": "#/$defs/HostedPluginResource"
},
"minItems": 0,
"maxItems": 32,
"description": "Safe plugin metadata, excluding inline archive contents."
},
"files": {
"type": "array",
"items": {
"$ref": "#/$defs/HostedTemplateFileResource"
},
"minItems": 0,
"maxItems": 50,
"description": "Safe file metadata, excluding contents and session-scoped file IDs."
}
},
"required": [
"id",
"name",
"object",
"created_at",
"updated_at",
"packages",
"network",
"capability_directories",
"skills",
"plugins",
"files"
],
"additionalProperties": false,
"$defs": {
"EnvironmentPackagesResource": {
"type": "object",
"properties": {
"python": {
"type": "array",
"items": {
"type": "string",
"minLength": 0,
"maxLength": 1048576
},
"minItems": 0,
"maxItems": 16384,
"description": "Python packages installed in the environment."
},
"system": {
"type": "array",
"items": {
"type": "string",
"minLength": 0,
"maxLength": 1048576
},
"minItems": 0,
"maxItems": 16384,
"description": "System packages installed in the environment."
},
"npm": {
"type": "array",
"items": {
"type": "string",
"minLength": 0,
"maxLength": 1048576
},
"minItems": 0,
"maxItems": 16384,
"description": "npm packages installed globally in the environment."
}
},
"required": [
"python",
"system",
"npm"
],
"additionalProperties": false,
"description": "Packages installed in an OpenAI-hosted environment."
},
"HostedPluginResource": {
"oneOf": [
{
"$ref": "#/$defs/HostedPluginResourceInline"
}
],
"x-oai-discriminator-values": [
"inline"
],
"description": "A plugin installed in an OpenAI-hosted environment."
},
"HostedPluginResourceInline": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"inline"
],
"default": "inline",
"x-stainless-const": true,
"description": "The type of the object. Always `inline`."
},
"name": {
"type": "string",
"minLength": 0,
"description": "The installed plugin name."
},
"description": {
"type": "string",
"minLength": 0,
"description": "The installed plugin description."
}
},
"required": [
"type",
"name",
"description"
],
"additionalProperties": false,
"description": "A plugin installed from an inline ZIP archive."
},
"HostedTemplateFileResource": {
"oneOf": [
{
"$ref": "#/$defs/HostedTemplateFileResourceFileId"
},
{
"$ref": "#/$defs/HostedTemplateFileResourceInline"
}
],
"x-oai-discriminator-values": [
"file_id",
"inline"
],
"description": "Safe metadata for a file configured by an environment template."
},
"HostedTemplateFileResourceFileId": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"file_id"
],
"default": "file_id",
"x-stainless-const": true,
"description": "The type of the object. Always `file_id`."
},
"file_id": {
"type": "string",
"minLength": 0,
"description": "The ID of the uploaded file."
},
"path": {
"type": "string",
"minLength": 0,
"description": "The file's absolute path inside the environment."
}
},
"required": [
"type",
"file_id",
"path"
],
"additionalProperties": false,
"description": "A project-scoped Files API reference resolved separately for each session."
},
"HostedTemplateFileResourceInline": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"inline"
],
"default": "inline",
"x-stainless-const": true,
"description": "The type of the object. Always `inline`."
},
"path": {
"type": "string",
"minLength": 0,
"description": "The file's absolute path inside the environment."
},
"size_bytes": {
"type": "integer",
"format": "int64",
"minimum": 0,
"description": "The decoded size of the inline file in bytes."
}
},
"required": [
"type",
"path",
"size_bytes"
],
"additionalProperties": false,
"description": "Metadata for confidential inline file contents."
},
"HostedTemplateSkillResource": {
"oneOf": [
{
"$ref": "#/$defs/HostedTemplateSkillResourceSkillReference"
},
{
"$ref": "#/$defs/HostedTemplateSkillResourceInline"
}
],
"x-oai-discriminator-values": [
"skill_reference",
"inline"
],
"description": "Safe metadata for a skill configured by an environment template."
},
"HostedTemplateSkillResourceInline": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"inline"
],
"default": "inline",
"x-stainless-const": true,
"description": "The type of the object. Always `inline`."
},
"name": {
"type": "string",
"minLength": 0,
"description": "The skill name declared in `SKILL.md`."
},
"description": {
"type": "string",
"minLength": 0,
"description": "The skill description declared in `SKILL.md`."
}
},
"required": [
"type",
"name",
"description"
],
"additionalProperties": false,
"description": "Safe metadata for an inline skill archive."
},
"HostedTemplateSkillResourceSkillReference": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"skill_reference"
],
"default": "skill_reference",
"x-stainless-const": true,
"description": "The type of the object. Always `skill_reference`."
},
"skill_id": {
"type": "string",
"minLength": 0,
"description": "The referenced skill ID."
},
"version": {
"type": [
"string",
"null"
],
"minLength": 0,
"description": "The requested version selector, including `latest`."
}
},
"required": [
"type",
"skill_id",
"version"
],
"additionalProperties": false,
"description": "A skill resolved afresh from the Skills API whenever a session starts."
},
"NetworkAccessResource": {
"type": "string",
"enum": [
"enabled",
"disabled",
"restricted"
],
"x-enumDescriptions": [
"Allows unrestricted network access.",
"Disables network access.",
"Allows access only to configured domains."
],
"description": "The network access mode for an OpenAI-hosted environment."
},
"NetworkPolicyResource": {
"type": "object",
"properties": {
"access": {
"$ref": "#/$defs/NetworkAccessResource",
"description": "The environment's network access mode."
},
"allowed_domains": {
"type": "array",
"items": {
"type": "string",
"minLength": 0
},
"minItems": 0,
"maxItems": 2000,
"description": "Domains the environment may access when network access is restricted."
}
},
"required": [
"access",
"allowed_domains"
],
"additionalProperties": false,
"description": "Network access for an OpenAI-hosted environment."
}
}
}
Work with this as data
Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for schemas
4 MCP tools reach this
find_json_schemasBrowse and filter every JSON Schema in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/openai-environment-template-resource"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.