> For the complete documentation index, see [llms.txt](https://scalemate.gitbook.io/scalemate-api/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://scalemate.gitbook.io/scalemate-api/api/campaign-templates.md).

# Campaign templates

List your **Campaign Launcher** templates and check which ones can be launched through the [Launch Campaigns](https://www.scalemate.co/docs/api/launch-campaigns) endpoint. Each template comes with a compatibility verdict, so you can see up front which are launchable and why the rest are not.

### Endpoint Details

URL: `https://api.scalemate.co/api/external/v2/templates`

Method: `GET`

### Headers

```
Content-Type: application/json
X-Api-Key: <YOUR_API_KEY>
```

You can generate the API Key at the [Settings](https://app.scalemate.co/profile) page under the API Key section.

### Example cURL Request

```bash
curl --location 'https://api.scalemate.co/api/external/v2/templates' \
--header 'Content-Type: application/json' \
--header 'X-Api-Key: <YOUR_API_KEY>'
```

### Example Response

```json
{
  "templates": [
    {
      "id": 123,
      "name": "US prospecting",
      "platform_type": "facebook",
      "ad_account_id": "1234567890",
      "adset_count": 2,
      "supported": true,
      "unsupported_reasons": [],
      "daily_budget_override_supported": true,
      "updated_at": "2026-07-16T10:00:00Z"
    }
  ]
}
```

### Response fields

| Field                             | Description                                                                                                                 |
| --------------------------------- | --------------------------------------------------------------------------------------------------------------------------- |
| `id`                              | Template id — pass as `template_id` to the [Launch Campaigns](https://www.scalemate.co/docs/api/launch-campaigns) endpoint. |
| `name`                            | Template name.                                                                                                              |
| `platform_type`                   | `facebook` or `tiktok`. Only `facebook` is launchable in v2.                                                                |
| `ad_account_id`                   | Ad account the template launches into.                                                                                      |
| `adset_count`                     | Number of ad sets in the template.                                                                                          |
| `supported`                       | `true` if the template can be launched through the API.                                                                     |
| `unsupported_reasons`             | Machine-readable reasons the template can't be launched (empty when `supported` is `true`).                                 |
| `daily_budget_override_supported` | `true` if this template accepts the `daily_budget_override` launch param. Independent of `supported`.                       |

### `unsupported_reasons` codes

| Code                    | Meaning                                                                      |
| ----------------------- | ---------------------------------------------------------------------------- |
| `platform_not_facebook` | Only Facebook templates are supported in v2 (e.g. TikTok templates are not). |
| `app_promotion`         | App-promotion / SKAdNetwork campaigns are not supported in v2.               |
| `dynamic_creative`      | The template has a Dynamic Creative ad set.                                  |
| `missing_ad_account`    | The template has no ad account set.                                          |
| `missing_page_id`       | An ad set is missing a Facebook Page in its ad defaults.                     |
| `no_campaigns`          | The template has no campaigns.                                               |

### `daily_budget_override_supported`

The [`daily_budget_override`](https://www.scalemate.co/docs/api/launch-campaigns) param writes a daily budget onto the entities the launch **creates** — the campaign under CBO, every ad set under ABO. A template only accepts it when all of those targets are newly created and already use a daily budget; otherwise the launch is rejected with `422`.

Blocking codes, returned in the launch `error` message:

| Code                        | Meaning                                                                                |
| --------------------------- | -------------------------------------------------------------------------------------- |
| `existing_campaign`         | CBO template that reuses an existing campaign — its budget is not touched by a launch. |
| `campaign_not_daily_budget` | The CBO campaign uses a lifetime budget.                                               |
| `existing_adset`            | ABO template that reuses an existing ad set.                                           |
| `adset_not_daily_budget`    | An ABO ad set uses a lifetime budget.                                                  |
| `unknown_budget_mode`       | The template has no CBO/ABO budget mode set, so there is nowhere to write the budget.  |
| `no_campaigns`              | The template has no campaigns.                                                         |

An ABO template that reuses an **existing campaign** is fine — the budget lives on the newly created ad sets.

Returns your **active** templates only, newest first.
