Execute a tool within a tool router session
Changed onExecutes a specific tool within a tool router session. This is the primary execution endpoint for both meta tools and app tools exposed by the session. The toolkit is automatically inferred from the tool slug. For app tools, the tool must belong to an allowed toolkit and must not be disabled in the session configuration. The endpoint validates permissions, resolves connected accounts when needed, and executes the tool with the session context. The top-level account field applies only to direct app tool execution in multi-account sessions. Meta/helper tools either ignore it or define their own account-selection fields, for example COMPOSIO_MULTI_EXECUTE_TOOL.tools[].account.
Request
- Base URLhttps://backend.composio.dev
- URLhttps://backend.composio.dev/api/v3/tool_router/session/{session_id}/execute
- AuthAPI key in header x-api-key
Path parameters
The unique identifier of the tool router session. Required for public API endpoints, optional for internal endpoints where it is injected by middleware.
Tool router session ID (required for public API, optional for internal - injected by middleware)
Request body
Example request
{
"tool_slug": "GITHUB_CREATE_AN_ISSUE",
"arguments": {
"repository": "octocat/Hello-World",
"workflow_id": "main.yml",
"ref": "main",
"inputs": {
"environment": "production"
}
},
"account": "coup_hurricane_dal_analytical",
"enable_auto_workbench_offload": true,
"input_responses": {
"elicit_3f9a1c2b7d4e5f60": {
"action": "accept",
"content": {
"decision": "approve"
}
}
}
}Response
The tool call completed, failed, or needs the user's input before it can run. The result_type field says which of these happened.
Example response
{
"data": {
"message": "Hello, World!",
"status": "success"
},
"log_id": "log_abc123xyz"
}Changes
- info
the endpoint scheme security
workbench_access_keywas removed from the API
- info
- breaking
added to the response body
oneOflist for the response status - info
added
blockedmapping keys to the response discriminator for the response status - info
added the optional property
////to the response with the status - info
added the optional property
////to the response with the status
- breaking