# Get toolkits for a tool router session

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

Retrieves a cursor-paginated list of toolkits available in the tool router session. Includes toolkit metadata, composio-managed auth schemes, and connected accounts if available. Optionally filter by specific toolkit slugs.

---

## GET `/api/v3/tool_router/session/{session_id}/toolkits`

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

**Summary:** Get toolkits for a tool router session

Retrieves a cursor-paginated list of toolkits available in the tool router session. Includes toolkit metadata, composio-managed auth schemes, and connected accounts if available. Optionally filter by specific toolkit slugs.

### 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)*: The unique identifier of the tool router session

### Query Parameters

- `limit` (number,null): Number of items per page, max allowed is 1000
- `cursor` (string): Cursor for pagination. The cursor is a base64 encoded string of the page and limit. The page is the page number and the limit is the number of items per page. The cursor is used to paginate through the items. The cursor is not required for the first page.
- `toolkits` (array,null): Optional comma-separated list of toolkit slugs to filter by. If provided, only these toolkits will be returned, overriding the session configuration.
- `is_connected` (boolean,null): Whether to filter by connected toolkits. If provided, only connected toolkits will be returned.
- `search` (string): Search query to filter toolkits by name, slug, or description

### Responses

#### 200 - Toolkits successfully retrieved. Returns a paginated list of toolkits with their metadata and connected accounts.

**Response Schema:**

- `items` (array<object>) *(required)*
  - Array items:
    - `name` (string) *(required)*: Display name of the toolkit
    - `slug` (string) *(required)*: Unique slug identifier
    - `enabled` (boolean) *(required)*: Whether the toolkit is enabled
    - `is_no_auth` (boolean) *(required)*: Whether the toolkit is no-auth
    - `composio_managed_auth_schemes` (array<string>) *(required)*: Available Composio-managed auth schemes
    - `meta` (object) *(required)*: Toolkit metadata
      - `logo` (string (uri)) *(required)*: URL to the toolkit logo
      - `description` (string) *(required)*: Description of the toolkit
    - `connected_account` (object,null) *(required)*: Connected account if available
- `next_cursor` (string,null)
- `total_pages` (number) *(required)*
- `current_page` (number) *(required)*
- `total_items` (number) *(required)*

**Example Response:**

```json
{
  "items": [
    {
      "name": "string",
      "slug": "string",
      "enabled": true,
      "is_no_auth": true,
      "composio_managed_auth_schemes": [
        "..."
      ],
      "meta": {
        "logo": "...",
        "description": "..."
      },
      "connected_account": null
    }
  ],
  "next_cursor": null,
  "total_pages": 1,
  "current_page": 1,
  "total_items": 1
}
```

#### 400 - Bad request. This may occur if pagination parameters are invalid or the session_id format is incorrect.

**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. Authentication is required or the provided credentials are invalid.

**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. The session does not belong to the authenticated user.

**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. The session with the provided ID does not exist or has been deleted.

**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. An unexpected error occurred while processing the 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>)

### Example cURL Request

```bash
curl -X GET "https://backend.composio.dev/api/v3/tool_router/session/string/toolkits" \
  -H "x-api-key: YOUR_API_KEY"
```