Execute a tool within a tool router session
Changed onExecute a tool (meta or app) within an existing tool router session.
Request
- Base URLhttps://backend.composio.dev
- URLhttps://backend.composio.dev/api/v3.1/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"
}
}
},
"experimental": {
"custom_toolkits": [
{
"slug": "ecommerce",
"name": "E-Commerce API",
"description": "Internal e-commerce API for order management and fulfillment",
"tools": [
{
"slug": "GET_CUSTOMER_ORDERS",
"name": "Get Customer Orders",
"description": "Fetch recent orders for a customer by their email address",
"input_schema": {
"type": "object",
"properties": {
"email": {
"type": "string",
"description": "Customer email"
}
},
"required": [
"email"
]
}
}
]
}
],
"custom_tools": [
{
"slug": "GET_IMPORTANT_EMAILS",
"name": "Get Important Emails",
"description": "Fetch emails marked as important from the last 24 hours",
"input_schema": {
"type": "object",
"properties": {
"limit": {
"type": "number",
"description": "Max results to return"
}
}
},
"extends_toolkit": "gmail"
}
]
}
}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