# OpenAI tools — index (built-in, function calling, MCP, containers, skills) **Status:** DOCUMENTED + LIVE_VERIFIED (12 of 16 tool types called live on 2026-09-18 with `gpt-5.4-nano` / `gpt-5.4-mini`; `computer_use_preview` ACCOUNT_RESTRICTED, `local_shell` FAILED_VERIFICATION/LEGACY, `programmatic_tool_calling`, `computer`, `web_search_preview*`, `web_search_2025_08_26` DOCUMENTED only). **Sources:** https://developers.openai.com/api/docs/guides/tools · https://developers.openai.com/api/docs/guides/function-calling · https://developers.openai.com/api/reference/resources/responses/methods/create · openapi-master.yaml (`Tool` union) · model pages `## Supported tools` · https://developers.openai.com/api/docs/pricing#built-in-tools **Last verified:** 2026-09-18 · machine-readable: `generated/fragments/tools/openai-tools.json`, `parameters/openai-tools.json`, `streaming-events/openai-tools.json`, `endpoints/openai-containers-skills.json` ## Exact `type` strings (OpenAPI `Tool` union, 16 members) and live status | `type` | Category | Doc | Live 2026-09-18 | |---|---|---|---| | `function` | client | [function-calling](function-calling.md) | LIVE_VERIFIED (nano; forced, round trip, stream, strict 400) | | `custom` | client | [custom-tools](custom-tools.md) | LIVE_VERIFIED (regex grammar) | | `namespace` | client | [function-calling](function-calling.md#namespaces) | LIVE_VERIFIED (nano) | | `tool_search` | hosted | [tool-search](tool-search.md) | LIVE_VERIFIED (gpt-5.4-mini) | | `programmatic_tool_calling` | hosted | [tool-loop](../../openai/tool-loop.md#programmatic-tool-calling) | DOCUMENTED | | `web_search` / `web_search_2025_08_26` | hosted | [web-search](web-search.md) | LIVE_VERIFIED / DOCUMENTED | | `web_search_preview` / `web_search_preview_2025_03_11` | hosted, LEGACY | [web-search](web-search.md) | DOCUMENTED | | `file_search` | hosted | [file-search](file-search.md) | LIVE_VERIFIED | | `code_interpreter` | hosted | [code-interpreter](code-interpreter.md) | LIVE_VERIFIED (+ containers API) | | `computer_use_preview` | client, PREVIEW | [computer-use](computer-use.md) | ACCOUNT_RESTRICTED (404 model_not_found) | | `computer` | client | [computer-use](computer-use.md) | DOCUMENTED | | `image_generation` | hosted | [image-generation](image-generation.md) | LIVE_VERIFIED error path only | | `mcp` | mcp | [mcp-and-connectors](mcp-and-connectors.md) | LIVE_VERIFIED (DeepWiki, approvals) | | `shell` | hosted / client | [shell](shell.md) | LIVE_VERIFIED (local + hosted with skill) | | `local_shell` | client, LEGACY | [shell](shell.md#local_shell-legacy) | FAILED_VERIFICATION: 400 “no longer supported” on nano | | `apply_patch` | client | [apply-patch](apply-patch.md) | LIVE_VERIFIED | | *(not a tool)* `skill_reference` / `inline` skills | hosted attachment | [skills](skills.md), [Skills API](../../openai/skills-api.md) | LIVE_VERIFIED | ## Tool × Endpoint matrix | Tool | POST /v1/responses | POST /v1/chat/completions | Realtime / Live | Agents API | Assistants (legacy) | |---|---|---|---|---|---| | function | yes | yes (`{type:function, function:{…}}`) | yes (`session.tools`) | yes | yes | | custom | yes | yes (`{type:custom, custom:{…}}`) | no | no | no | | namespace, tool_search, programmatic_tool_calling | yes | no | no | tool_search / PTC yes | no | | web_search | yes | only via search models (`gpt-5-search-api`, `web_search_options`) | Live: `{type: web_search}` | yes | no | | file_search | yes | no | no | no | yes | | code_interpreter | yes | no | no | sandbox | yes | | computer / computer_use_preview | yes | no | no | no | no | | image_generation | yes | no | no | no | no | | mcp | yes | no | yes (Realtime MCP) | yes (MCP connections) | no | | shell / apply_patch / local_shell | yes | no | no | shell in sandbox | no | ## Tool × Model matrix (from the `## Supported tools` section of each model page, 2026-09-18) Keys as written on the model pages. Note: gpt-5.6-*, gpt-6-astra and gpt-daybreak-* pages omit `function_calling` although function calling is documented for them (GPT-6 Astra requires Responses for tool calling); `computer-use-preview` and `codex-mini-latest` pages have no section. | Model | function / custom / namespace | web_search(_preview) | file_search | code_interpreter | image_generation | mcp | shell (hosted) | apply_patch | skills | computer / computer_use_preview | tool_search | |---|---|---|---|---|---|---|---|---|---|---|---| | `chat-latest` | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | | | | | | | `gpt-4.1-mini` | ✓ | ✓ | ✓ | ✓ | | ✓ | | | | | | | `gpt-4.1-nano` | ✓ | | ✓ | ✓ | ✓ | ✓ | | | | | | | `gpt-4.1` | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | | | | | | | `gpt-4o-mini-audio-preview` | | ✓ | ✓ | ✓ | | ✓ | | | | | | | `gpt-4o-mini` | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | | | | | | | `gpt-4o` | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | | | | | | | `gpt-5-chat-latest` | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | | | | | | | `gpt-5-codex` | ✓ | ✓ | | | | | | | | | | | `gpt-5-mini` | ✓ | ✓ | ✓ | ✓ | | ✓ | | | | | | | `gpt-5-nano` | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | | | | | | | `gpt-5-pro` | ✓ | ✓ | ✓ | | ✓ | ✓ | | | | | | | `gpt-5.1-chat-latest` | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | | | | | | | `gpt-5.1-codex-max` | ✓ | ✓ | | | | | | | | | | | `gpt-5.1-codex-mini` | ✓ | ✓ | | | | | | | | | | | `gpt-5.1-codex` | ✓ | ✓ | | | | | | | | | | | `gpt-5.1` | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | | ✓ | | | | | `gpt-5.2-chat-latest` | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | | | | | | | `gpt-5.2-codex` | ✓ | ✓ | | | | | ✓ | | ✓ | | | | `gpt-5.2-pro` | ✓ | ✓ | ✓ | | ✓ | ✓ | | | | | | | `gpt-5.2` | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | | | | `gpt-5.3-chat-latest` | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | | | | | | | `gpt-5.3-codex` | ✓ | ✓ | | | | | ✓ | | ✓ | | | | `gpt-5.4-mini` | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | | `gpt-5.4-nano` | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | | | | `gpt-5.4-pro` | ✓ | ✓ | ✓ | | ✓ | ✓ | | ✓ | | ✓ | ✓ | | `gpt-5.4` | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | | `gpt-5.5-pro` | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | | | | | | `gpt-5.5` | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | | `gpt-5.6-cyber` | | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | | `gpt-5.6-luna` | | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | | `gpt-5.6-sol` | | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | | `gpt-5.6-terra` | | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | | `gpt-5` | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | | | | | | | `gpt-6-astra` | | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | | `gpt-audio-mini` | ✓ | | | | | | | | | | | | `gpt-daybreak-blue-latest` | | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | | `gpt-daybreak-red-latest` | | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | | `gpt-oss-120b` | ✓ | ✓ | | ✓ | | ✓ | | | | | | | `gpt-oss-20b` | ✓ | ✓ | | ✓ | | ✓ | | | | | | | `o1-mini` | | | ✓ | ✓ | | ✓ | | | | | | | `o1-pro` | ✓ | | ✓ | | | ✓ | | | | | | | `o1` | ✓ | | ✓ | | | ✓ | | | | | | | `o3-deep-research` | | ✓ | | ✓ | | ✓ | | | | | | | `o3-mini` | ✓ | | ✓ | ✓ | ✓ | ✓ | | | | | | | `o3-pro` | ✓ | ✓ | ✓ | | ✓ | ✓ | | | | | | | `o3` | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | | | | | | | `o4-mini-deep-research` | | ✓ | | ✓ | | ✓ | | | | | | | `o4-mini` | ✓ | ✓ | ✓ | ✓ | | ✓ | | | | | | ## Pricing pointers (owned by the pricing fragment; cited here) | Tool | Price | Source | |---|---|---| | Web search (`web_search`, all models; image web search) | $10.00 / 1k calls + search content tokens at model rates | pricing#built-in-tools | | Web search preview | $10 / 1k (reasoning models) · $25 / 1k with free content tokens (non-reasoning) | pricing#built-in-tools | | Containers (hosted shell, code interpreter) | 1 GB $0.03 · 4 GB $0.12 · 16 GB $0.48 · 64 GB $1.92 per 20-minute session per container | pricing#built-in-tools | | File search | $2.50 / 1k calls; storage $0.10 / GB / day (1 GB free) | pricing#built-in-tools | | MCP, function, custom, apply_patch, shell (local), tool_search | tokens only | pricing | | image_generation | image-model token pricing | pricing#image-generation | ## `include[]` values that belong to tools `file_search_call.results`, `web_search_call.results`, `web_search_call.action.sources`, `code_interpreter_call.outputs`, `computer_call_output.output.image_url` (plus non-tool: `message.input_image.image_url`, `reasoning.encrypted_content`, `message.output_text.logprobs`). ## Live run summary (2026-09-18) ~45 tool-related requests, est. total ≈ $0.35 (web search 6 × $0.01, containers 7 sessions × $0.03, file search 5 × $0.0025, tokens < $0.03). All raw responses in `tmp-live/tools/` (gitignored); log `reports/live-requests.jsonl`. See also: [containers](../../openai/containers.md) · [Skills API](../../openai/skills-api.md) · [tool loop patterns](../../openai/tool-loop.md).