---
title: "The workspace's saved campaign templates"
method: GET
path: "/business/campaign-templates"
tags: ["Campaign templates"]
---

# The workspace's saved campaign templates

`GET /business/campaign-templates`

## Request

- Base URL: `https://api.tryfuse.ai/api/v1`
- URL: `https://api.tryfuse.ai/api/v1/business/campaign-templates`
- Auth: HTTP basic

Lists the saved campaign templates you can see - your own plus those shared by your team's visibility settings - newest first, with the schedule settings and the full step sequence each one snapshots. Pass a template's `id` as `templateId` when creating a campaign to copy its steps and channels. This endpoint returns at most the 100 most recent templates; `pagination.total` tells you whether there are more. Rate limit: 30 requests/minute and 1,000/day per token owner, shared by every campaign, scheduled-send, campaign-template and knowledge-hub endpoint.

Errors:
- `429` `RATE_LIMITED` — More than 30 campaign requests in a minute, or 1,000 in a day, for this token owner (the bucket is shared by every /business/campaigns, /business/scheduled-sends, /business/campaign-templates and /business/knowledge-hubs call).
- `500` `UNEXPECTED_ERROR` — An unhandled failure; the detail stays in our logs and is never returned.

Requires one of the following token scopes: campaigns.

## Response `200`

Success

- object
  - `templates` object[], required
    - `id` string, nullable, required
    - `name` string, nullable, required
    - `type` 'ai-generated' | 'manual', required: The campaignType a campaign built from this template will carry.
    - `timezone` string, nullable, required
    - `emailDays` string[], required
    - `emailStartHour` string, nullable, required: Start of the daily sending window, local to `timezone`.
    - `emailEndHour` string, nullable, required
    - `listIds` string[], required: Source lists captured when the template was saved.
    - `generalTopic` string, nullable, required: The overall brief captured from an AI campaign; null for a manual one.
    - `createdAt` string, date-time, nullable, required
    - `steps` object[], required: The snapshotted sequence. A snapshot stores fewer fields than a live step - no step type, title or cc.
      - `id` string, nullable, required
      - `sequenceNumber` integer, nullable, required: 0-based slot in the snapshotted sequence.
      - `channel` string, nullable, required
      - `daysBetween` integer, nullable, required
      - `topic` string, nullable, required: Empty string on a manual step that never had a topic.
      - `subject` string, nullable, required
      - `body` string, nullable, required
  - `pagination` object, required
    - `page` integer, required: 1-based page number this response covers.
    - `pageSize` integer, required: Rows requested per page.
    - `total` integer, required: Total rows matching the query.
    - `totalPages` integer, required: Total pages at this page size.

## Other responses

- `400`: Error
- `401`: Error
- `402`: Error
- `403`: Error
- `404`: Error
- `409`: Error
- `422`: Error
- `429`: Error
- `500`: Error

---

[API](https://skmtc.dev/fuseai/apis/fuse-business-api.md) · [All operations](https://skmtc.dev/fuseai/apis/fuse-business-api/llms.txt) · [OpenAPI document](https://skmtc.dev/fuseai/apis/fuse-business-api/revisions/50d95e0536f4?raw)
