# Execute a meta tool within a tool router session

**Documentation:** /reference/api-reference/tool-router/postToolRouterSessionBySessionIdExecuteMeta

Executes a Composio meta tool (COMPOSIO_*) within a tool router session.

---

## POST `/api/v3/tool_router/session/{session_id}/execute_meta`

**Endpoint:** `https://backend.composio.dev/api/v3/tool_router/session/{session_id}/execute_meta`

**Summary:** Execute a meta tool within a tool router session

Executes a Composio meta tool (COMPOSIO_*) within a tool router session.

### Authentication

**ApiKeyAuth** - API Key in `header` header `x-api-key` OR **UserApiKeyAuth** - API Key in `header` header `x-user-api-key`

### Path Parameters

- `session_id` (string (toolRouterSessionId)) *(required)*: Tool router session ID (required for public API, optional for internal - injected by middleware)

### Request Body

**Schema:**

- `slug` (enum: "COMPOSIO_SEARCH_TOOLS" | "COMPOSIO_MULTI_EXECUTE_TOOL" | "COMPOSIO_MANAGE_CONNECTIONS" | ...) *(required)*: The unique slug identifier of the meta tool to execute
- `arguments` (object): The arguments required by the meta tool
  - `[key: string]` (any)

**Example:**

```json
{
  "slug": "COMPOSIO_SEARCH_TOOLS",
  "arguments": {}
}
```

### Responses

#### 200 - Successfully executed the meta tool. Returns execution result, logs, and status.

**Response Schema:**

- `data` (object) *(required)*: The data returned by the tool execution
  - `[key: string]` (any)
- `error` (string,null) *(required)*: Error message if the execution failed, null otherwise
- `log_id` (string) *(required)*: Unique identifier for the execution log

**Example Response:**

```json
{
  "data": {
    "key": null
  },
  "error": null,
  "log_id": "string"
}
```

#### 400 - Bad request

**Response Schema:**

- `error` (object) *(required)*
  - `message` (string) *(required)*
  - `code` (number) *(required)*
  - `slug` (string) *(required)*
  - `status` (number) *(required)*
  - `request_id` (string)
  - `suggested_fix` (string)
  - `errors` (array<string>)

#### 401 - Unauthorized

**Response Schema:**

- `error` (object) *(required)*
  - `message` (string) *(required)*
  - `code` (number) *(required)*
  - `slug` (string) *(required)*
  - `status` (number) *(required)*
  - `request_id` (string)
  - `suggested_fix` (string)
  - `errors` (array<string>)

#### 403 - Forbidden

**Response Schema:**

- `error` (object) *(required)*
  - `message` (string) *(required)*
  - `code` (number) *(required)*
  - `slug` (string) *(required)*
  - `status` (number) *(required)*
  - `request_id` (string)
  - `suggested_fix` (string)
  - `errors` (array<string>)

#### 404 - Not found

**Response Schema:**

- `error` (object) *(required)*
  - `message` (string) *(required)*
  - `code` (number) *(required)*
  - `slug` (string) *(required)*
  - `status` (number) *(required)*
  - `request_id` (string)
  - `suggested_fix` (string)
  - `errors` (array<string>)

#### 500 - Internal server error

**Response Schema:**

- `error` (object) *(required)*
  - `message` (string) *(required)*
  - `code` (number) *(required)*
  - `slug` (string) *(required)*
  - `status` (number) *(required)*
  - `request_id` (string)
  - `suggested_fix` (string)
  - `errors` (array<string>)

### Example cURL Request

```bash
curl -X POST "https://backend.composio.dev/api/v3/tool_router/session/string/execute_meta" \
  -H "x-api-key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "slug": "COMPOSIO_SEARCH_TOOLS",
    "arguments": {}
  }'
```