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

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

# Get a callback template

- **Method:** `GET`
- **Path:** `/v2/apps/{app_id}/callback_templates/{id}`
- **Operation ID:** `get_apps_app_id_callback_templates_id`
- **Tags:** Callback 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

- **`app_id` (required)**: `string`, format: `uuid`

  Id of the app
- **`id` (required)**: `string`, format: `uuid`

  Id of the callback template

## Responses

### 200 The callback template

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

schema: `CallbackTemplateDocument`

- **`data` (required)**: `object`, schema: `CallbackTemplateResource`
  - **`attributes` (required)**: `object`
    - **`action` (required)**: `string | null`, possible values: `"ping", "ping_on_first", "notify_on_reengagement", "ping_adwords", "ping_adwords_deferred", "ping_adwords_post_install", "fetch_adwords_reengagement", "notify_adwords_reengagement", "ping_amazon", "ping_amazon_post_install", "fetch_amazon_reengagement", "notify_amazon_reengagement", "ping_facebook_deferred", "ping_facebook", "ping_facebook_post_install", "fetch_facebook_reengagement", "notify_facebook_reengagement", "ping_double_click_bid_manager", "fetch_double_click_bid_manager_reengagement", "ping_snapchat", "ping_snapchat_post_install", "fetch_snapchat_reengagement", "notify_snapchat_reengagement", "ping_tiktok", "ping_tiktok_post_install", "fetch_tiktok_reengagement", "notify_tiktok_reengagement", "san_callback", null`

      What the callbacks made from the template do, such as `ping_on_first`
    - **`channel_id` (required)**: `integer | null`

      Id of the template's channel
    - **`customer_parameters` (required)**: `object`

      Display name of each parameter a callback sets
    - **`description` (required)**: `string | null`

      Short summary of the callback template
    - **`event` (required)**: `string | null`

      Event that sends the callbacks made from the template
    - **`is_install` (required)**: `boolean`

      Whether an app can have only one callback from the template
    - **`name` (required)**: `string`

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

      Platform of the apps the template is for
    - **`required_by_channel` (required)**: `boolean`

      Whether the channel's click URL shows only once the app has a callback from the template
  - **`id` (required)**: `string`, format: `uuid`
  - **`type` (required)**: `string`, possible values: `"callback_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`

  Always empty

**Example: The callback template**

```json
{
  "data": {
    "id": "b7af0230-913b-416d-8043-06a4048cea30",
    "type": "callback_template",
    "attributes": {
      "name": "Facebook install",
      "description": "Facebook install callback template",
      "action": "ping_on_first",
      "event": "install",
      "customer_parameters": {
        "remote_app_id": "Remote App ID"
      },
      "is_install": false,
      "channel_id": 3,
      "platform": "ios",
      "required_by_channel": false
    }
  },
  "links": {
    "self": "https://api.tenjin.com/v2/apps/17ef8c1a-5729-456e-98db-ccc104bdf860/callback_templates/b7af0230-913b-416d-8043-06a4048cea30"
  },
  "meta": {}
}
```

### 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.
- `CallbackTemplateDocument` — shown above.
- `Links` — shown above.
- `CallbackTemplateResource` — shown above.
