Client Tool Compatibility
The OpenAI Responses API defines several client tool types (tool_search, local_shell, custom, and more). This page lists their compatibility across upstream protocols, and which models have a Responses-native upstream.
Responses-native models
These models have at least one supplier route that natively speaks the Responses API. When a request is routed to such a route, server-executed tools (web_search, mcp, the server variant of tool_search, etc.) are carried by the upstream itself; when routed elsewhere, the matrix below applies.
responses_nativeonly guarantees that at least one such route exists for the model — it does not mean this particular call will be routed there or is exempt from the matrix below. Routing is decided by the platform.
To see which models are currently Responses-native, query the model catalog endpoint (GET /api/v1/models, field responses_native).
Tool type compatibility matrix
| Tool type | When routed to a Responses-native route | Otherwise |
|---|---|---|
function | Supported | Supported |
custom (e.g. Codex exec) | Supported | Adapted (Gemini routes pending) |
local_shell | Supported | Adapted |
namespace (tool groups) | Supported (flattened) | Same |
tool_search · execution:"client" | Supported | Adapted (rolling out) |
tool_search · server-side search | Supported | Not supported: 400 with reason=server_executed |
shell (local) / apply_patch | Supported | Planned: 400 with reason=not_adapted |
computer / computer_use_preview | Supported | Planned (needs multimodal tool output) |
mcp / web_search / file_search / code_interpreter / image_generation | Supported | Not supported: 400 with reason=server_executed |
Status reflects the current production release and is updated on deploy; rejected requests state the reason and available alternatives in the error message.