OpenAI · Schema
AgentResource
A reusable agent scoped to the caller's project.
LLMOpenAIArtificial IntelligenceGenerative AIChatbotsFoundation ModelsT1
Properties
| Name | Type | Description |
|---|---|---|
| id | string | The ID of the reusable agent. |
| object | string | The object type. Always `agent`. |
| created_at | integer | The Unix timestamp, in seconds, when the agent was created. |
| updated_at | integer | The Unix timestamp, in seconds, when the agent was last updated. |
| name | stringnull | A human-readable name for the agent, or null if it is unnamed. |
| metadata | object | Custom string key-value pairs attached to the agent. |
| model | string | The requested model name used for inference. |
| reasoning | object | The resolved reasoning configuration, including the model default for an omitted effort. |
| text | object | The resolved configuration for text generated by the agent. |
| service_tier | object | The resolved service-tier policy used for model requests. |
| instructions | stringnull | Custom instructions appended to the agent's default base instructions. |
| tools | array | Tools available to the agent. |
| multi_agent | object | The resolved configuration for creating and coordinating subagents. |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://raw.githubusercontent.com/api-evangelist/openai/main/json-schema/openai-agent-resource-schema.json",
"title": "AgentResource",
"description": "A reusable agent scoped to the caller's project.",
"x-generated": "2026-09-23",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": "openapi/openai-agents-api-openapi.yml#/components/schemas/AgentResource",
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 0,
"description": "The ID of the reusable agent."
},
"object": {
"type": "string",
"enum": [
"agent"
],
"default": "agent",
"x-stainless-const": true,
"description": "The object type. Always `agent`."
},
"created_at": {
"type": "integer",
"format": "int64",
"description": "The Unix timestamp, in seconds, when the agent was created."
},
"updated_at": {
"type": "integer",
"format": "int64",
"description": "The Unix timestamp, in seconds, when the agent was last updated."
},
"name": {
"type": [
"string",
"null"
],
"minLength": 0,
"description": "A human-readable name for the agent, or null if it is unnamed."
},
"metadata": {
"type": "object",
"additionalProperties": {
"type": "string",
"minLength": 0
},
"propertyNames": {
"type": "string",
"minLength": 0
},
"minProperties": 0,
"description": "Custom string key-value pairs attached to the agent."
},
"model": {
"type": "string",
"minLength": 0,
"description": "The requested model name used for inference."
},
"reasoning": {
"$ref": "#/$defs/ReasoningResource",
"description": "The resolved reasoning configuration, including the model default for an omitted effort."
},
"text": {
"$ref": "#/$defs/TextResource",
"description": "The resolved configuration for text generated by the agent."
},
"service_tier": {
"$ref": "#/$defs/ServiceTierResource",
"description": "The resolved service-tier policy used for model requests."
},
"instructions": {
"type": [
"string",
"null"
],
"minLength": 0,
"description": "Custom instructions appended to the agent's default base instructions."
},
"tools": {
"type": "array",
"items": {
"$ref": "#/$defs/PersistedAgentToolResource"
},
"minItems": 0,
"maxItems": 2000,
"description": "Tools available to the agent."
},
"multi_agent": {
"$ref": "#/$defs/MultiAgentConfigResource",
"description": "The resolved configuration for creating and coordinating subagents."
}
},
"required": [
"id",
"object",
"created_at",
"updated_at",
"name",
"metadata",
"model",
"reasoning",
"text",
"service_tier",
"instructions",
"tools",
"multi_agent"
],
"additionalProperties": false,
"$defs": {
"McpConnectionOriginResource": {
"type": "string",
"enum": [
"service",
"environment"
],
"description": "Where outbound MCP HTTP connections originate."
},
"MultiAgentConfigResource": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Whether subagent tools are enabled. Defaults to false."
},
"max_concurrent_subagents": {
"type": [
"integer",
"null"
],
"format": "int64",
"minimum": 1,
"maximum": 4294967295,
"description": "Maximum number of subagents that may run concurrently, or null when disabled. Defaults to 6 when enabled."
}
},
"required": [
"enabled",
"max_concurrent_subagents"
],
"additionalProperties": false,
"description": "The resolved configuration for creating and coordinating subagents."
},
"PersistedAgentToolResource": {
"oneOf": [
{
"$ref": "#/$defs/PersistedAgentToolResourceFunction"
},
{
"$ref": "#/$defs/PersistedAgentToolResourceToolSearch"
},
{
"$ref": "#/$defs/PersistedAgentToolResourceProgrammaticToolCalling"
},
{
"$ref": "#/$defs/PersistedAgentToolResourceMcp"
},
{
"$ref": "#/$defs/PersistedAgentToolResourceWebSearch"
}
],
"x-oai-discriminator-values": [
"function",
"tool_search",
"programmatic_tool_calling",
"mcp",
"web_search"
],
"description": "A credential-free tool available to a reusable agent."
},
"PersistedAgentToolResourceFunction": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"function"
],
"default": "function",
"x-stainless-const": true,
"description": "The type of the object. Always `function`."
},
"name": {
"type": "string",
"minLength": 0,
"description": "The name of the function."
},
"description": {
"type": "string",
"minLength": 0,
"description": "A description of what the function does."
},
"parameters": {
"type": "object",
"additionalProperties": {},
"propertyNames": {
"type": "string",
"minLength": 0
},
"minProperties": 0,
"description": "A JSON Schema object describing the function's arguments."
},
"defer_loading": {
"type": "boolean",
"description": "Whether the function is deferred and discovered through tool search."
}
},
"required": [
"type",
"name",
"description",
"parameters",
"defer_loading"
],
"additionalProperties": false,
"description": "A function defined by the application."
},
"PersistedAgentToolResourceMcp": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"mcp"
],
"default": "mcp",
"x-stainless-const": true,
"description": "The type of the object. Always `mcp`."
},
"server_label": {
"type": "string",
"minLength": 0,
"description": "A label used to identify the MCP server in tool calls."
},
"credential_id": {
"type": [
"string",
"null"
],
"minLength": 0,
"description": "The vault credential selected for this MCP server, if any."
},
"transport": {
"$ref": "#/$defs/PersistedMcpTransportResource",
"description": "The credential-free transport used to connect to the MCP server."
},
"request_metadata": {
"type": "object",
"additionalProperties": {},
"propertyNames": {
"type": "string",
"minLength": 0
},
"minProperties": 0,
"description": "Metadata included with requests to this MCP server."
},
"allowed_tools": {
"type": [
"array",
"null"
],
"items": {
"type": "string",
"minLength": 0
},
"minItems": 0,
"maxItems": 2000,
"description": "The MCP tools the agent may call, or null when all server tools are allowed."
},
"required": {
"type": "boolean",
"description": "Whether this MCP server must initialize before the first turn."
},
"connection_origin": {
"$ref": "#/$defs/McpConnectionOriginResource",
"description": "Where outbound MCP HTTP connections originate."
}
},
"required": [
"type",
"server_label",
"credential_id",
"transport",
"request_metadata",
"allowed_tools",
"required",
"connection_origin"
],
"additionalProperties": false,
"description": "Tools provided by a remote MCP server without stored credentials."
},
"PersistedAgentToolResourceProgrammaticToolCalling": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"programmatic_tool_calling"
],
"default": "programmatic_tool_calling",
"x-stainless-const": true,
"description": "The type of the object. Always `programmatic_tool_calling`."
},
"enabled": {
"type": "boolean",
"description": "Whether tools can be called from model-generated code."
}
},
"required": [
"type",
"enabled"
],
"additionalProperties": false,
"description": "Enables calling tools from model-generated code."
},
"PersistedAgentToolResourceToolSearch": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"tool_search"
],
"default": "tool_search",
"x-stainless-const": true,
"description": "The type of the object. Always `tool_search`."
}
},
"required": [
"type"
],
"additionalProperties": false,
"description": "Discovers deferred function tools and loads them into the model context."
},
"PersistedAgentToolResourceWebSearch": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"web_search"
],
"default": "web_search",
"x-stainless-const": true,
"description": "The type of the object. Always `web_search`."
},
"mode": {
"$ref": "#/$defs/WebSearchModeResource",
"description": "The source used for web search results."
},
"context_size": {
"$ref": "#/$defs/WebSearchContextSizeResource",
"description": "The amount of search context made available to the model. Defaults to `medium`."
},
"allowed_domains": {
"type": [
"array",
"null"
],
"items": {
"type": "string",
"minLength": 0
},
"minItems": 0,
"maxItems": 2000,
"description": "Allowed search domains, or `null` when the search is unrestricted."
},
"location": {
"anyOf": [
{
"$ref": "#/$defs/WebSearchLocationResource"
},
{
"type": "null"
}
],
"description": "Approximate location used to localize search results, if provided."
}
},
"required": [
"type",
"mode",
"context_size",
"allowed_domains",
"location"
],
"additionalProperties": false,
"description": "Web search."
},
"PersistedMcpTransportResource": {
"oneOf": [
{
"$ref": "#/$defs/PersistedMcpTransportResourceHttp"
},
{
"$ref": "#/$defs/PersistedMcpTransportResourceStdio"
}
],
"x-oai-discriminator-values": [
"http",
"stdio"
],
"description": "A credential-free transport used to connect to an MCP server."
},
"PersistedMcpTransportResourceHttp": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"http"
],
"default": "http",
"x-stainless-const": true,
"description": "The type of the object. Always `http`."
},
"server_url": {
"type": "string",
"minLength": 0,
"description": "The URL of the MCP server."
},
"headers": {
"type": "object",
"additionalProperties": {
"type": "string",
"minLength": 0
},
"propertyNames": {
"type": "string",
"minLength": 0
},
"minProperties": 0,
"description": "Non-secret HTTP headers sent to the MCP server."
}
},
"required": [
"type",
"server_url",
"headers"
],
"additionalProperties": false,
"description": "Connects to an MCP server over HTTP."
},
"PersistedMcpTransportResourceStdio": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"stdio"
],
"default": "stdio",
"x-stainless-const": true,
"description": "The type of the object. Always `stdio`."
},
"command": {
"type": "string",
"minLength": 0,
"description": "The command used to start the MCP server."
},
"args": {
"type": "array",
"items": {
"type": "string",
"minLength": 0
},
"minItems": 0,
"maxItems": 2000,
"description": "Arguments passed to the MCP server command."
},
"cwd": {
"type": "string",
"minLength": 0,
"description": "The working directory used to start the MCP server."
},
"env_vars": {
"type": "array",
"items": {
"type": "string",
"minLength": 0
},
"minItems": 0,
"maxItems": 2000,
"description": "Environment variable names inherited from the execution environment."
}
},
"required": [
"type",
"command",
"args",
"cwd",
"env_vars"
],
"additionalProperties": false,
"description": "Starts an MCP server as a local process."
},
"ReasoningEffortResource": {
"type": "string",
"enum": [
"none",
"minimal",
"low",
"medium",
"high",
"xhigh",
"max"
],
"description": "The amount of reasoning effort used by an agent."
},
"ReasoningResource": {
"type": "object",
"properties": {
"effort": {
"anyOf": [
{
"$ref": "#/$defs/ReasoningEffortResource"
},
{
"type": "null"
}
],
"description": "The requested reasoning effort, or `null` when the model selects its own default."
},
"summary": {
"anyOf": [
{
"$ref": "#/$defs/ReasoningSummaryResource"
},
{
"type": "null"
}
],
"description": "The requested reasoning summary format, or `null` when summaries are disabled."
}
},
"required": [
"effort",
"summary"
],
"additionalProperties": false,
"description": "The reasoning configuration used by an agent."
},
"ReasoningSummaryResource": {
"type": "string",
"enum": [
"concise",
"detailed",
"auto"
],
"x-enumDescriptions": [
"Returns a concise reasoning summary when supported.",
"Returns a detailed reasoning summary when supported.",
"Automatically selects the most detailed summary supported by the model."
],
"description": "The reasoning summary format requested from an agent."
},
"ServiceTierResource": {
"type": "string",
"enum": [
"auto",
"default",
"flex",
"priority",
"fast"
],
"description": "The service-tier policy configured for an agent."
},
"TextFormatResource": {
"oneOf": [
{
"$ref": "#/$defs/TextFormatResourceText"
},
{
"$ref": "#/$defs/TextFormatResourceJsonSchema"
}
],
"x-oai-discriminator-values": [
"text",
"json_schema"
],
"description": "The effective output format for generated text."
},
"TextFormatResourceJsonSchema": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"json_schema"
],
"default": "json_schema",
"x-stainless-const": true,
"description": "The type of the object. Always `json_schema`."
},
"schema": {
"type": "object",
"additionalProperties": {},
"propertyNames": {
"type": "string",
"minLength": 0
},
"minProperties": 0,
"description": "The JSON Schema that generated text must match."
}
},
"required": [
"type",
"schema"
],
"additionalProperties": false,
"description": "Constrains generated text to a JSON Schema."
},
"TextFormatResourceText": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"text"
],
"default": "text",
"x-stainless-const": true,
"description": "The type of the object. Always `text`."
}
},
"required": [
"type"
],
"additionalProperties": false,
"description": "Generates ordinary text without a structured-output constraint."
},
"TextResource": {
"type": "object",
"properties": {
"format": {
"$ref": "#/$defs/TextFormatResource",
"description": "The effective output format. Defaults to ordinary text."
},
"verbosity": {
"$ref": "#/$defs/VerbosityResource",
"description": "The amount of text produced by the agent. Defaults to `medium`."
}
},
"required": [
"format",
"verbosity"
],
"additionalProperties": false,
"description": "The text configuration used by an agent."
},
"VerbosityResource": {
"type": "string",
"enum": [
"low",
"medium",
"high"
],
"description": "The amount of text produced by an agent."
},
"WebSearchContextSizeResource": {
"type": "string",
"enum": [
"low",
"medium",
"high"
],
"description": "The amount of web search context made available to the model."
},
"WebSearchLocationResource": {
"type": "object",
"properties": {
"country": {
"type": [
"string",
"null"
],
"minLength": 0,
"description": "The two-letter ISO country code, such as `US`."
},
"region": {
"type": [
"string",
"null"
],
"minLength": 0,
"description": "The region or state name."
},
"city": {
"type": [
"string",
"null"
],
"minLength": 0,
"description": "The city name."
},
"timezone": {
"type": [
"string",
"null"
],
"minLength": 0,
"description": "The IANA timezone, such as `America/Los_Angeles`."
}
},
"required": [
"country",
"region",
"city",
"timezone"
],
"additionalProperties": false,
"description": "Approximate user location used to localize web search results."
},
"WebSearchModeResource": {
"type": "string",
"enum": [
"disabled",
"cached",
"live"
],
"description": "The source used for web search results."
}
}
}
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-agent-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.