OpenAI · Schema
SessionEvent
An event emitted by a Managed Agents session.
LLMOpenAIArtificial IntelligenceGenerative AIChatbotsFoundation ModelsT1
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://raw.githubusercontent.com/api-evangelist/openai/main/json-schema/openai-session-event-schema.json",
"title": "SessionEvent",
"description": "An event emitted by a Managed Agents 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/SessionEvent",
"oneOf": [
{
"$ref": "#/$defs/SessionEventError"
},
{
"$ref": "#/$defs/SessionEventAgentSessionEnvironmentReady"
},
{
"$ref": "#/$defs/SessionEventAgentSessionEnvironmentReset"
},
{
"$ref": "#/$defs/SessionEventAgentOutputCommandExecutionOutputDelta"
},
{
"$ref": "#/$defs/SessionEventAgentSessionCreated"
},
{
"$ref": "#/$defs/SessionEventAgentSessionTurnCreated"
},
{
"$ref": "#/$defs/SessionEventAgentSessionTurnInProgress"
},
{
"$ref": "#/$defs/SessionEventAgentSessionTurnCompleted"
},
{
"$ref": "#/$defs/SessionEventAgentSessionTurnFailed"
},
{
"$ref": "#/$defs/SessionEventAgentSessionTurnCancelled"
},
{
"$ref": "#/$defs/SessionEventAgentSessionTurnItemAdded"
},
{
"$ref": "#/$defs/SessionEventAgentSessionIdle"
},
{
"$ref": "#/$defs/SessionEventAgentSessionInProgress"
},
{
"$ref": "#/$defs/SessionEventAgentSessionRequiresAction"
},
{
"$ref": "#/$defs/SessionEventAgentSessionFailed"
},
{
"$ref": "#/$defs/SessionEventAgentSessionEnvironmentPending"
},
{
"$ref": "#/$defs/SessionEventAgentSessionEnvironmentConnected"
},
{
"$ref": "#/$defs/SessionEventAgentSessionEnvironmentDisconnected"
},
{
"$ref": "#/$defs/SessionEventAgentSessionEnvironmentFailed"
},
{
"$ref": "#/$defs/SessionEventAgentSessionSubagentCreated"
},
{
"$ref": "#/$defs/SessionEventAgentSessionSubagentActive"
},
{
"$ref": "#/$defs/SessionEventAgentSessionSubagentClosed"
},
{
"$ref": "#/$defs/SessionEventAgentSessionTurnItemDone"
},
{
"$ref": "#/$defs/SessionEventAgentSessionTurnContentPartAdded"
},
{
"$ref": "#/$defs/SessionEventAgentSessionTurnContentPartDone"
},
{
"$ref": "#/$defs/SessionEventAgentSessionTurnOutputTextDelta"
},
{
"$ref": "#/$defs/SessionEventAgentSessionTurnOutputTextDone"
},
{
"$ref": "#/$defs/SessionEventAgentSessionTurnReasoningSummaryPartAdded"
},
{
"$ref": "#/$defs/SessionEventAgentSessionTurnReasoningSummaryPartDone"
},
{
"$ref": "#/$defs/SessionEventAgentSessionTurnReasoningSummaryTextDelta"
},
{
"$ref": "#/$defs/SessionEventAgentSessionTurnReasoningSummaryTextDone"
}
],
"x-oai-discriminator-values": [
"error",
"agent.session.environment.ready",
"agent.session.environment.reset",
"agent.output.command_execution_output.delta",
"agent.session.created",
"agent.session.turn.created",
"agent.session.turn.in_progress",
"agent.session.turn.completed",
"agent.session.turn.failed",
"agent.session.turn.cancelled",
"agent.session.turn.item.added",
"agent.session.idle",
"agent.session.in_progress",
"agent.session.requires_action",
"agent.session.failed",
"agent.session.environment.pending",
"agent.session.environment.connected",
"agent.session.environment.disconnected",
"agent.session.environment.failed",
"agent.session.subagent.created",
"agent.session.subagent.active",
"agent.session.subagent.closed",
"agent.session.turn.item.done",
"agent.session.turn.content_part.added",
"agent.session.turn.content_part.done",
"agent.session.turn.output_text.delta",
"agent.session.turn.output_text.done",
"agent.session.turn.reasoning_summary_part.added",
"agent.session.turn.reasoning_summary_part.done",
"agent.session.turn.reasoning_summary_text.delta",
"agent.session.turn.reasoning_summary_text.done"
],
"$defs": {
"AgentContentResource": {
"oneOf": [
{
"$ref": "#/$defs/OutputTextResource"
},
{
"$ref": "#/$defs/EncryptedContentResource"
}
],
"x-oai-discriminator-values": [
"output_text",
"encrypted_content"
],
"description": "A plaintext or encrypted content part exchanged between agents."
},
"AgentMessageItemResource": {
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 0,
"description": "The ID of the message."
},
"turn_id": {
"type": "string",
"minLength": 0,
"description": "The ID of the turn that contains this item."
},
"type": {
"type": "string",
"enum": [
"agent_message"
],
"default": "agent_message",
"x-stainless-const": true,
"description": "The item type. Always `agent_message`."
},
"sender_agent_id": {
"type": "string",
"minLength": 0,
"description": "The ID or name of the sending agent."
},
"recipient_agent_id": {
"type": "string",
"minLength": 0,
"description": "The ID or name of the receiving agent."
},
"content": {
"type": "array",
"items": {
"$ref": "#/$defs/AgentContentResource"
},
"minItems": 0,
"maxItems": 2000,
"description": "The content exchanged between the agents."
}
},
"required": [
"id",
"turn_id",
"type",
"sender_agent_id",
"recipient_agent_id",
"content"
],
"additionalProperties": false,
"description": "A message exchanged between agent threads."
},
"AgentOutputItemResource": {
"oneOf": [
{
"$ref": "#/$defs/AssistantMessageItemResource"
},
{
"$ref": "#/$defs/ReasoningItemResource"
},
{
"$ref": "#/$defs/FunctionCallItemResource"
},
{
"$ref": "#/$defs/McpCallItemResource"
},
{
"$ref": "#/$defs/WebSearchCallItemResource"
},
{
"$ref": "#/$defs/CommandExecutionItemResource"
},
{
"$ref": "#/$defs/CreateSubagentCallItemResource"
},
{
"$ref": "#/$defs/SendSubagentInputCallItemResource"
},
{
"$ref": "#/$defs/ResumeSubagentCallItemResource"
},
{
"$ref": "#/$defs/WaitForSubagentsCallItemResource"
},
{
"$ref": "#/$defs/InterruptSubagentCallItemResource"
},
{
"$ref": "#/$defs/CloseSubagentCallItemResource"
}
],
"x-oai-discriminator-values": [
"message",
"reasoning",
"function_call",
"mcp_call",
"web_search_call",
"command_execution",
"create_subagent_call",
"send_subagent_input_call",
"resume_subagent_call",
"wait_for_subagents_call",
"interrupt_subagent_call",
"close_subagent_call"
],
"description": "An output item produced by an agent."
},
"AgentToolResource": {
"oneOf": [
{
"$ref": "#/$defs/AgentToolResourceFunction"
},
{
"$ref": "#/$defs/AgentToolResourceProgrammaticToolCalling"
},
{
"$ref": "#/$defs/AgentToolResourceMcp"
},
{
"$ref": "#/$defs/AgentToolResourceWebSearch"
}
],
"x-oai-discriminator-values": [
"function",
"programmatic_tool_calling",
"mcp",
"web_search"
],
"description": "A tool available to the agent."
},
"AgentToolResourceFunction": {
"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."
},
"AgentToolResourceMcp": {
"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 attached vault credential selected for this MCP server, if any. Optional when exactly one attached credential matches the server URL."
},
"transport": {
"$ref": "#/$defs/McpTransportResource",
"description": "The 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."
},
"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."
},
"AgentToolResourceProgrammaticToolCalling": {
"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."
},
"AgentToolResourceWebSearch": {
"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."
},
"AssistantMessageItemResource": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"message"
],
"default": "message",
"x-stainless-const": true,
"description": "The item type. Always `message`."
},
"id": {
"type": "string",
"minLength": 0,
"description": "The ID of the message."
},
"turn_id": {
"type": "string",
"minLength": 0,
"description": "The ID of the turn that contains this item."
},
"role": {
"type": "string",
"enum": [
"assistant"
],
"default": "assistant",
"x-stainless-const": true,
"description": "The role of the message author. Always `assistant`."
},
"status": {
"$ref": "#/$defs/OutputItemStatusResource",
"description": "The status of the message."
},
"content": {
"type": "array",
"items": {
"$ref": "#/$defs/OutputTextResource"
},
"minItems": 0,
"maxItems": 2000,
"description": "The content of the message."
},
"phase": {
"anyOf": [
{
"$ref": "#/$defs/MessagePhaseResource"
},
{
"type": "null"
}
],
"description": "The phase of the assistant message."
}
},
"required": [
"type",
"id",
"turn_id",
"role",
"status",
"content",
"phase"
],
"additionalProperties": false,
"description": "An assistant message produced by the agent."
},
"CloseSubagentCallItemResource": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"close_subagent_call"
],
"default": "close_subagent_call",
"x-stainless-const": true,
"x-enumDescriptions": [
"The current public item type."
],
"description": "The item type. Always `close_subagent_call`."
},
"id": {
"type": "string",
"minLength": 0,
"description": "The ID of the tool call item."
},
"turn_id": {
"type": "string",
"minLength": 0,
"description": "The ID of the turn that contains this item."
},
"status": {
"$ref": "#/$defs/FunctionCallStatusResource",
"description": "The status of the tool call."
},
"sender_agent_id": {
"type": "string",
"minLength": 0,
"description": "The ID of the agent requesting the close."
},
"recipient_agent_id": {
"type": "string",
"minLength": 0,
"description": "The ID of the agent to close."
}
},
"required": [
"type",
"id",
"turn_id",
"status",
"sender_agent_id",
"recipient_agent_id"
],
"additionalProperties": false,
"description": "A request to close a subagent."
},
"CommandExecutionItemResource": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"command_execution"
],
"default": "command_execution",
"x-stainless-const": true,
"description": "The item type. Always `command_execution`."
},
"id": {
"type": "string",
"minLength": 0,
"description": "The ID of the command execution item."
},
"turn_id": {
"type": "string",
"minLength": 0,
"description": "The ID of the turn that contains this item."
},
"command": {
"type": "string",
"minLength": 0,
"description": "The command that was executed."
},
"cwd": {
"type": [
"string",
"null"
],
"minLength": 0,
"description": "The working directory used to execute the command."
},
"status": {
"$ref": "#/$defs/FunctionCallStatusResource",
"description": "The status of the command execution."
},
"output": {
"type": [
"string",
"null"
],
"minLength": 0,
"description": "The command output, if available."
},
"exit_code": {
"type": [
"integer",
"null"
],
"format": "int64",
"description": "The process exit code, if the command completed."
},
"duration_ms": {
"type": [
"integer",
"null"
],
"format": "int64",
"description": "The command duration in milliseconds."
}
},
"required": [
"type",
"id",
"turn_id",
"command",
"cwd",
"status",
"output",
"exit_code",
"duration_ms"
],
"additionalProperties": false,
"description": "A command execution produced by the agent."
},
"CreateSubagentCallItemResource": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"create_subagent_call"
],
"default": "create_subagent_call",
"x-stainless-const": true,
"x-enumDescriptions": [
"The current public item type."
],
"description": "The item type. Always `create_subagent_call`."
},
"id": {
"type": "string",
"minLength": 0,
"description": "The ID of the tool call item."
},
"turn_id": {
"type": "string",
"minLength": 0,
"description": "The ID of the turn that contains this item."
},
"status": {
"$ref": "#/$defs/FunctionCallStatusResource",
"description": "The status of the tool call."
},
"agent_id": {
"type": "string",
"minLength": 0,
"description": "The ID of the agent that requested the subagent."
},
"content": {
"type": "array",
"items": {
"$ref": "#/$defs/AgentContentResource"
},
"minItems": 0,
"maxItems": 2000,
"description": "The task given to the spawned agent."
},
"model": {
"type": [
"string",
"null"
],
"minLength": 0,
"description": "The model requested for the spawned agent."
},
"reasoning_effort": {
"type": [
"string",
"null"
],
"minLength": 0,
"description": "The reasoning effort requested for the spawned agent."
}
},
"required": [
"type",
"id",
"turn_id",
"status",
"agent_id",
"content",
"model",
"reasoning_effort"
],
"additionalProperties": false,
"description": "A request to spawn a subagent."
},
"EncryptedContentResource": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"encrypted_content"
],
"default": "encrypted_content",
"x-stainless-const": true,
"description": "The content type. Always `encrypted_content`."
},
"encrypted_content": {
"type": "string",
"minLength": 0,
"description": "The encrypted content payload."
}
},
"required": [
"type",
"encrypted_content"
],
"additionalProperties": false,
"description": "Encrypted content exchanged between agents."
},
"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."
},
"EnvironmentResource": {
"oneOf": [
{
"$ref": "#/$defs/EnvironmentResourceNone"
},
{
"$ref": "#/$defs/EnvironmentResourceOpenaiHosted"
},
{
"$ref": "#/$defs/EnvironmentResourceSelfHosted"
}
],
"x-oai-discriminator-values": [
"none",
"openai_hosted",
"self_hosted"
],
"description": "The execution environment for a session."
},
"EnvironmentResourceNone": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"none"
],
"default": "none",
"x-stainless-const": true,
"description": "The type of the object. Always `none`."
}
},
"required": [
"type"
],
"additionalProperties": false,
"description": "The session talks to CCA without selecting or provisioning an execution environment."
},
"EnvironmentResourceOpenaiHosted": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"openai_hosted"
],
"default": "openai_hosted",
"x-stainless-const": true,
"description": "The type of the object. Always `openai_hosted`."
},
"id": {
"type": "string",
"minLength": 0,
"description": "The public ID of the environment."
},
"packages": {
"$ref": "#/$defs/EnvironmentPackagesResource",
"description": "Packages installed in the environment."
},
"network": {
"$ref": "#/$defs/NetworkPolicyResource",
"description": "The effective network access policy for the environment."
},
"capability_directories": {
"type": "array",
"items": {
"type": "string",
"minLength": 0
},
"minItems": 0,
"maxItems": 2000,
"description": "Directories that contain capabilities exposed to the agent."
},
"skills": {
"type": "array",
"items": {
"$ref": "#/$defs/HostedSkillResource"
},
"minItems": 0,
"maxItems": 2000,
"description": "Skills installed in the environment, excluding their archive contents."
},
"plugins": {
"type": "array",
"items": {
"$ref": "#/$defs/HostedPluginResource"
},
"minItems": 0,
"maxItems": 2000,
"description": "Plugins installed in the environment, excluding their archive contents."
},
"files": {
"type": "array",
"items": {
"$ref": "#/$defs/HostedEnvironmentFileResource"
},
"minItems": 0,
"maxItems": 50,
"description": "Files available in the environment, excluding their contents."
}
},
"required": [
"type",
"id",
"packages",
"network",
"capability_directories",
"skills",
"plugins",
"files"
],
"additionalProperties": false,
"description": "An environment hosted by OpenAI."
},
"EnvironmentResourceSelfHosted": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"self_hosted"
],
"default": "self_hosted",
"x-stainless-const": true,
"description": "The type of the object. Always `self_hosted`."
},
"remote_url": {
"type": "string",
"minLength": 0,
"description": "Pass this URL unchanged to `codex exec-server --remote` when connecting this environment."
},
"id": {
"type": "string",
"minLength": 0,
"description": "The public ID of the environment."
},
"workspace_directory": {
"type": "string",
"minLength": 0,
"description": "The absolute project directory inside the environment. Defaults to `/workspace`."
},
"capability_directories": {
"type": "array",
"items": {
"type": "string",
"minLength": 0
},
"minItems": 0,
"maxItems": 2000,
"description": "Directories that contain capabilities exposed to the agent."
}
},
"required": [
"type",
"remote_url",
"id",
"workspace_directory",
"capability_directories"
],
"additionalProperties": false,
"description": "An environment hosted by the application."
},
"FunctionCallItemResource": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"function_call"
],
"default": "function_call",
"x-stainless-const": true,
"description": "The item type. Always `function_call`."
},
"id": {
"type": "string",
"minLength": 0,
"description": "The ID of the function call item."
},
"turn_id": {
"type": "string",
"minLength": 0,
"description": "The ID of the turn that contains this item."
},
"call_id": {
"type": "string",
"minLength": 0,
"description": "The ID used to submit the function result."
},
"name": {
"type": "string",
"minLength": 0,
"description": "The name of the function to call."
},
"arguments": {
"description": "The arguments to pass to the function."
},
"status": {
"$ref": "#/$defs/FunctionCallStatusResource",
"description": "The status of the function call."
}
},
"required": [
"type",
"id",
"turn_id",
"call_id",
"name",
"arguments",
"status"
],
"additionalProperties": false,
"description": "A function call produced by the agent."
},
"FunctionCallOutputItemResource": {
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 0,
"description": "The ID of the function call output item."
},
"turn_id": {
"type": "string",
"minLength": 0,
"description": "The ID of the turn that contains this item."
},
"type": {
"type": "string",
"enum": [
"function_call_output"
],
"default": "function_call_output",
"x-stainless-const": true,
"description": "The item type. Always `function_call_output`."
},
"call_id": {
"type": "string",
"minLength": 0,
"description": "The ID of the function call that produced this output."
},
"status": {
"$ref": "#/$defs/FunctionCallStatusResource",
"description": "The status of the function call."
},
"output": {
"anyOf": [
{
"$ref": "#/$defs/FunctionCallOutputResource"
},
{
"type": "null"
}
],
"description": "The function result, if the call succeeded."
},
"error": {
"type": [
"string",
"null"
],
"minLength": 0,
"description": "The error message, if the call failed."
}
},
"required": [
"id",
"turn_id",
"type",
"call_id",
"status",
"output",
"error"
],
"additionalProperties": false,
"description": "The result supplied for a function call."
},
"FunctionCallOutputResource": {
"oneOf": [
{
"type": "string",
"minLength": 0
},
{
"type": "array",
"items": {
"$ref": "#/$defs/InputContentResource"
},
"minItems": 0,
"maxItems": 2000
}
],
"description": "The text or model-input content supplied as a function result."
},
"FunctionCallStatusResource": {
"type": "string",
"enum": [
"in_progress",
"completed",
"failed",
"incomplete"
],
"x-enumDescriptions": [
"The call is in progress.",
"The call completed successfully.",
"The call failed.",
"The call stopped before completing."
],
"description": "The status of a tool call."
},
"HostedEnvironmentFileResource": {
"oneOf": [
{
"$ref": "#/$defs/HostedEnvironmentFileResourceFileId"
},
{
"$ref": "#/$defs/HostedEnvironmentFileResourceInline"
}
],
"x-oai-discriminator-values": [
"file_id",
"inline"
],
"description": "Metadata for a file materialized in an OpenAI-hosted execution environment."
},
"HostedEnvironmentFileResourceFileId": {
"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`."
},
"id": {
# --- truncated at 32 KB (137 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/openai/refs/heads/main/json-schema/openai-session-event-schema.json
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-session-event"
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.