# List available toolkits

**Documentation:** /reference/api-reference/toolkits/getToolkits

Retrieves a comprehensive list of toolkits of their latest versions that are available to the authenticated project. Toolkits represent integration points with external services and applications, each containing a collection of tools and triggers. This endpoint supports filtering by category and management type, as well as different sorting options.

---

## GET `/api/v3/toolkits`

**Endpoint:** `https://backend.composio.dev/api/v3/toolkits`

**Summary:** List available toolkits

Retrieves a comprehensive list of toolkits of their latest versions that are available to the authenticated project. Toolkits represent integration points with external services and applications, each containing a collection of tools and triggers. This endpoint supports filtering by category and management type, as well as different sorting options.

### Authentication

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

### Query Parameters

- `category` (string): Filter toolkits by category
- `managed_by` (enum: "composio" | "all" | "project"): Filter toolkits by who manages them
- `sort_by` (enum: "usage" | "alphabetically"): Sort order for returned toolkits
- `include_deprecated` (boolean,null): Include deprecated toolkits in the response
- `search` (string): Search query to filter toolkits by name, slug, or description
- `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.

### Responses

#### 200 - Toolkits retrieved successfully. Returns a paginated list of available toolkits with detailed metadata.

**Response Schema:**

- `items` (array<object>) *(required)*
  - Array items:
    - `slug` (string) *(required)*: URL-friendly unique identifier for the toolkit
    - `name` (string) *(required)*: Human-readable name of the toolkit
    - `auth_schemes` (array<string>): List of authentication methods supported by this toolkit
    - `composio_managed_auth_schemes` (array<string>): List of authentication methods that Composio manages for this toolkit
    - `is_local_toolkit` (boolean) *(required)*: DEPRECATED: This field is no longer meaningful and will always return false. It was previously used to indicate if a toolkit is specific to the current project.
    - `no_auth` (boolean): When true, this toolkit can be used without authentication
    - `auth_guide_url` (string,null): URL to a guide page with authentication setup instructions for this toolkit
    - `deprecated` (object) *(required)*: Deprecated toolkit ID
      - `toolkitId` (string) *(required)*
    - `meta` (object) *(required)*: Additional metadata about the toolkit
      - `created_at` (string) *(required)*: Creation date and time of the toolkit
      - `updated_at` (string) *(required)*: Last modification date and time of the toolkit
      - `description` (string) *(required)*: Human-readable description explaining the toolkit's purpose and functionality
      - `logo` (string) *(required)*: Image URL for the toolkit's branding
      - `app_url` (string,null): Link to the toolkit's main application or service website
      - `categories` (array<object>) *(required)*: List of categories associated with this toolkit
        - Array items:
          - ...
      - `triggers_count` (number) *(required)*: Count of available triggers in this toolkit
      - `tools_count` (number) *(required)*: Count of available tools in this toolkit
      - `version` (string) *(required)*: Version of the toolkit
- `next_cursor` (string,null)
- `total_pages` (number) *(required)*
- `current_page` (number) *(required)*
- `total_items` (number) *(required)*

**Example Response:**

```json
{
  "items": [
    {
      "slug": "string",
      "name": "string",
      "auth_schemes": [
        "..."
      ],
      "composio_managed_auth_schemes": [
        "..."
      ],
      "is_local_toolkit": true,
      "no_auth": true,
      "auth_guide_url": null,
      "deprecated": {
        "toolkitId": "..."
      },
      "meta": {
        "created_at": "...",
        "updated_at": "...",
        "description": "...",
        "logo": "...",
        "app_url": "...",
        "categories": "...",
        "triggers_count": "...",
        "tools_count": "...",
        "version": "..."
      }
    }
  ],
  "next_cursor": null,
  "total_pages": 1,
  "current_page": 1,
  "total_items": 1
}
```

#### 400 - Bad request. The query parameters may be invalid or in an incorrect format.

**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>)

#### 404 - Not found. The toolkits you are looking for do not exist.

**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/toolkits" \
  -H "x-api-key: YOUR_API_KEY"
```