# List trigger types

**Documentation:** /reference/api-reference/triggers/getTriggersTypes

Retrieve a list of available trigger types with optional filtering by toolkit. Results are paginated and can be filtered by toolkit.

---

## GET `/api/v3/triggers_types`

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

**Summary:** List trigger types

Retrieve a list of available trigger types with optional filtering by toolkit. Results are paginated and can be filtered by toolkit.

### Authentication

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

### Query Parameters

- `toolkit_slugs` (array,null): Array of toolkit slugs to filter triggers by
- `toolkit_versions` (any): Toolkit version specification. Use "latest" for latest versions or bracket notation for specific versions per toolkit.
- `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 - Successfully retrieved triggers

**Response Schema:**

- `items` (array<object>) *(required)*
  - Array items:
    - `slug` (string) *(required)*: Unique identifier for the trigger type
    - `name` (string) *(required)*: Human-readable name of the trigger
    - `description` (string) *(required)*: Detailed description of what the trigger does
    - `instructions` (string) *(required)*: Step-by-step instructions on how to set up and use this trigger
    - `type` (enum: "webhook" | "poll") *(required)*: The trigger mechanism - either webhook (event-based) or poll (scheduled check)
    - `toolkit` (object) *(required)*: Information about the toolkit that provides this trigger
      - `slug` (string) *(required)*: Unique identifier for the parent toolkit
      - `name` (string) *(required)*: Deprecated: Use slug instead
      - `logo` (string) *(required)*: Logo of the toolkit
    - `config` (object) *(required)*: Configuration schema required to set up this trigger
      - `[key: string]` (any)
    - `payload` (object) *(required)*: Schema of the data payload this trigger will deliver when it fires
      - `[key: string]` (any)
    - `version` (string) *(required)*: Version of the trigger type
- `next_cursor` (string,null)
- `total_pages` (number) *(required)*
- `current_page` (number) *(required)*
- `total_items` (number) *(required)*

**Example Response:**

```json
{
  "items": [
    {
      "slug": "string",
      "name": "string",
      "description": "string",
      "instructions": "string",
      "type": "webhook",
      "toolkit": {
        "slug": "...",
        "name": "...",
        "logo": "..."
      },
      "config": {
        "key": "..."
      },
      "payload": {
        "key": "..."
      },
      "version": "string"
    }
  ],
  "next_cursor": null,
  "total_pages": 1,
  "current_page": 1,
  "total_items": 1
}
```

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

#### 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 GET "https://backend.composio.dev/api/v3/triggers_types" \
  -H "x-api-key: YOUR_API_KEY"
```