Execute a tool within a tool router sessionv3.1
Execute a tool (meta or app) within an existing tool router session.
Project API key authentication
In: header
Path Parameters
Tool router session ID (required for public API, optional for internal - injected by middleware)
toolRouterSessionIdRequest Body
application/json
The unique slug identifier of the tool to execute. Supports both meta tools and app tools exposed by the session.
The arguments required by the tool
Account identifier to specify which connected account to use for direct tool execution. Use the account ID (e.g. "coup_hurricane_dal_analytical") or an alias. When omitted with a single account, the default is used. When omitted with multiple accounts, an error lists available accounts. Meta/helper tools either ignore this top-level field or define their own account-selection fields, for example COMPOSIO_MULTI_EXECUTE_TOOL.tools[].account.
When true, direct non-meta tool execution may return a workbench offload preview if the response exceeds the configured threshold and the session workbench is enabled. When omitted or false, direct tool execution returns the normal inline response. Meta/helper tools are unaffected, and COMPOSIO_MULTI_EXECUTE_TOOL uses session.workbench configuration for its own batch-level offload behavior.
The user's answers to an input_required response, keyed by the ids in its input_requests. Send them by repeating the same call (same tool and arguments) with this field added, along with the response's request_state if present. An approved call runs; a denied or declined one returns failed.
The request_state from the input_required response, sent back unchanged with input_responses.
Inline custom tools and toolkits for this request. v3.1 sessions do not persist customs — pass them on every request that needs them.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/api/v3.1/tool_router/session/{session_id}/execute" \ -H "Content-Type: application/json" \ -d '{ "tool_slug": "GITHUB_CREATE_AN_ISSUE" }'{ "result_type": "completed", "instant_charge": { "amount": "string", "currency": "USD", "charged_by": "composio" }, "data": { "message": "Hello, World!", "status": "success" }, "error": "string", "log_id": "log_abc123xyz"}