---
title: "List the token owner's campaigns with headline analytics"
method: GET
path: "/business/campaigns"
tags: ["Campaigns"]
---

# List the token owner's campaigns with headline analytics

`GET /business/campaigns`

## Request

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

Lists the campaigns you own with their headline analytics, newest first. Campaigns delegated to you, and campaigns your team's visibility settings share with you, are NOT listed: every other endpoint in this family resolves the token owner's own campaigns only, so listing them would hand back ids that answer 404 everywhere else. `createdBy` is the campaign's owner and is therefore always the token owner. Deleted campaigns are never returned. Engagement rates are percentages of messages sent. 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:
- `422` `VALIDATION_FAILED` — A query parameter is out of range or not one of the accepted values; `param` names it.
- `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.

## Query parameters

- `limit` integer: Page size, 1-100 (default 25).
- `pageNum` integer: 1-based page number (default 1).
- `search` string: Free text matched case-insensitively against the campaign name only (1-200 characters); any string is accepted. The value reaches the store as a regular expression rather than a literal, so metacharacters such as ( ) [ ] + * ? | are interpreted — send plain words, or escape them. A term that matches no campaign returns an empty page, not an error.
- `type` 'ai-generated' | 'manual': Restrict to ai-generated or manual campaigns — the same values a campaign's `type` reports.
- `status` 'active' | 'initializing' | 'initialization_failed' | 'stopped' | 'paused_manual': Restrict to one status: initializing (draft, not yet approved), active (approved and sending), stopped (stopped via /stop or deleted), paused_manual (paused by the app), initialization_failed (AI initialization failed; see initializationError).
- `folderId` string: Return only campaigns filed in this sequences folder (see GET /business/folders).

## Response `200`

Success

- object
  - `campaigns` object[], required
    - `id` string, nullable, required
    - `name` string, nullable, required
    - `status` 'initializing' | 'active' | 'stopped' | 'paused_manual' | 'initialization_failed' | 'null', nullable, required
    - `type` 'manual' | 'ai-generated' | 'null', nullable, required
    - `createdAt` string, date-time, nullable, required
    - `startDate` string, date-time, nullable, required: When sending may start; null until the campaign has a start date.
    - `folderId` string, nullable, required: Sequences folder the campaign is filed in, or null for the root.
    - `createdBy` string, nullable, required: Display name of the campaign's owner.
    - `leadsStatus` string, nullable, required: Enrollment progress of the source lists (for example not_started, in_progress, completed).
    - `initializationError` string, nullable, required: Our own status text when AI initialization failed.
    - `autoReply` boolean, required
    - `isDynamic` boolean, required
    - `channels` string[], required
    - `lists` object[], required
      - `id` string, nullable, required
      - `name` string, nullable, required
    - `recipients` integer, required: Contacts enrolled in the campaign.
    - `messagesSent` integer, required
    - `completedActions` object, required
      - `emails` integer, required
      - `linkedinMessages` integer, required
      - `linkedinInvites` integer, required
      - `inmails` integer, required
      - `profileVisits` integer, required
      - `postsLiked` integer, required
      - `callsMade` integer, required
    - `opened` object, required
      - `count` integer, required
      - `rate` number, required: Percentage of messages sent, 0-100.
    - `clicked` object, required
      - `count` integer, required
      - `rate` number, required: Percentage of messages sent, 0-100.
    - `replied` object, required
      - `count` integer, required
      - `rate` number, required: Percentage of messages sent, 0-100.
    - `positiveReplied` object, required
      - `count` integer, required
      - `rate` number, required: Percentage of messages sent, 0-100.
  - `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)
