[Tenjin API Reference](https://api-docs.tenjin.com/llms.txt) › [Campaign Management API](https://api-docs.tenjin.com/campaign-management-api.md) › Get callback group templates

- Campaign Management API OpenAPI spec: https://api-docs.tenjin.com/openapi/campaign-management-api.json

# Get callback group templates

- **Method:** `GET`
- **Path:** `/v2/integrations/{integration_id}/callback_group_templates`
- **Operation ID:** `get_integrations_integration_id_callback_group_templates`
- **Tags:** Callback Group Templates

## Effective servers

- `https://api.tenjin.com`

## Authentication

- **Bearer**: HTTP bearer (`JWT`)

  Generate an access token on the [Access Tokens](https://dashboard.tenjin.com/dashboard/access_tokens) page of the Tenjin dashboard and send it as `Authorization: Bearer <access token>`. [API access tokens](https://tenjin.com/docs/api-access-tokens/) explains them.

## Path parameters

- **`integration_id` (required)**: `integer`

  Id of the integration: its channel id

## Query parameters

- **`page`**: `integer`, default: `1`

  Page of results to fetch.
- **`per_page`**: `integer`, default: `25`, minimum: `0`, maximum: `1000`

  Number of results to return per page.

## Responses

### 200 Callback group templates

**Headers:**

- **`Link`**

  URLs of the first, previous, next and last pages (RFC 8288); sent only when the list has more than one page

  `string`
- **`Total`**

  Number of items on all pages

  `integer`
- **`Per-Page`**

  Number of items per page

  `integer`

**Content type:** `application/json`

schema: `CallbackGroupTemplateListDocument`

- **`data` (required)**: `array`

  **Items:**

  schema: `CallbackGroupTemplateResource`
  - **`attributes` (required)**: `object`
    - **`allow_multiple` (required)**: `boolean`

      Whether an app can have several callback groups from the template
    - **`event` (required)**: `string | null`

      Standard event of the template; null for a custom event, which each callback group picks
    - **`event_type` (required)**: `string | null`

      Display name of the standard event; null for a custom event
    - **`integration_id` (required)**: `integer | null`

      Id of the integration: its channel id
    - **`name` (required)**: `string`

      Name of the callback group template
    - **`platform` (required)**: `string | null`, possible values: `"amazon", "android", "android_other", "ios", "windows", "unspecified", null`

      Platform of the apps the template is for
    - **`required_settings` (required)**: `array of string`

      Settings a callback group from the template needs in its callback_settings
    - **`user_filter_default` (required)**: `string`, possible values: `"all", "channel", "channel_and_organic", "defer_to_template"`

      User filter of a new callback group. `defer_to_template`: each callback uses the user filter of its callback template
    - **`user_filter_editable` (required)**: `boolean`

      Whether a callback group can change the template's user filter
  - **`id` (required)**: `string`, format: `uuid`
  - **`type` (required)**: `string`, possible values: `"callback_group_template"`
- **`links` (required)**: `object`, schema: `Links`
  - **`self` (required)**: `string`, format: `uri`

    URL of this request
  - **`first`**: `string`, format: `uri`

    URL of the first page of a list
  - **`last`**: `string`, format: `uri`

    URL of the last page of a list
  - **`next`**: `string`, format: `uri`

    URL of the next page of a list
  - **`prev`**: `string`, format: `uri`

    URL of the previous page of a list
- **`meta` (required)**: `object`, schema: `PageMeta`
  - **`count` (required)**: `integer`

    Number of items on all pages
  - **`per_page` (required)**: `integer`

    Number of items per page

**Example: Callback group templates**

```json
{
  "data": [
    {
      "id": "5af128e0-78ae-4df7-9591-91f6f8411b83",
      "type": "callback_group_template",
      "attributes": {
        "platform": "ios",
        "allow_multiple": false,
        "user_filter_default": "all",
        "user_filter_editable": true,
        "name": "Custom event",
        "integration_id": 18,
        "event": "open",
        "required_settings": [
          "event_name"
        ],
        "event_type": null
      }
    },
    {
      "id": "5af128e0-78ae-4df7-9591-91f6f8411b84",
      "type": "callback_group_template",
      "attributes": {
        "platform": "ios",
        "allow_multiple": false,
        "user_filter_default": "channel",
        "user_filter_editable": false,
        "name": "Install",
        "integration_id": 18,
        "event": "open",
        "required_settings": [],
        "event_type": null
      }
    }
  ],
  "links": {
    "self": "https://api.tenjin.com/v2/integrations/18/callback_group_templates"
  },
  "meta": {
    "count": 2,
    "per_page": 25
  }
}
```

### 400, 401, 403, 498

- `400` A param is missing or invalid, a record is not found, or the request cannot be served
- `401` Missing or invalid credentials, or no access to the requested data
- `403` Invalid token, or the user's role does not allow the request
- `498` Expired token, or a token with an invalid signature

**Content type:** `application/json`

schema: `Error`

- **`error` (required)**: `string`

  What went wrong

**Example:**

```json
{
  "error": ""
}
```

## Schemas

- `Error` — shown above.
- `CallbackGroupTemplateListDocument` — shown above.
- `Links` — shown above.
- `PageMeta` — shown above.
- `CallbackGroupTemplateResource` — shown above.
