# List Campaigns — TikTok Ads Manager

> List campaigns in a TikTok Ads account with optional filters. Returns campaign IDs, names, status, objective, and budget. Use campaign IDs returned here as input to List Ad Groups or Get Report. See the documentation

- Key: `tiktok_ads_manager-list-campaigns`
- Type: Action (Read-only)
- Version: 0.0.2
- App: TikTok Ads Manager (`tiktok_ads_manager`) — https://pipedream.com/apps/tiktok-ads-manager.md
- This page (HTML): https://pipedream.com/apps/tiktok-ads-manager/actions/list-campaigns
- Hints: read-only · open-world
- Source: https://github.com/PipedreamHQ/pipedream/blob/master/components/tiktok_ads_manager/actions/list-campaigns/list-campaigns.mjs

## Description

List campaigns in a TikTok Ads account with optional filters. Returns campaign IDs, names, status, objective, and budget. Use campaign IDs returned here as input to **List Ad Groups** or **Get Report**. [See the documentation](https://business-api.tiktok.com/portal/docs/get-campaigns/v1.3)

## Props

| Prop | Type | Required | Description |
|---|---|---|---|
| `advertiserId` | `string` | Yes | Your TikTok Ads Manager advertiser ID. Find it in the Ads Manager URL after aadvid= (e.g., aadvid=7123456789012345678). Also visible under Account Info in Business Center. |
| `campaignIds` | `string[]` | No | Filter by specific campaign IDs (max 100). Leave blank to list all campaigns. |
| `campaignName` | `string` | No | Filter by campaign name. Fuzzy match is supported. |
| `primaryStatus` | `string` | No | Filter by primary status. Default is STATUS_NOT_DELETE (all except deleted). Use STATUS_ALL to include deleted campaigns. |
| `secondaryStatus` | `string` | No | Filter by campaign secondary status. Example values: CAMPAIGN_STATUS_ENABLE, CAMPAIGN_STATUS_DISABLE, CAMPAIGN_STATUS_DELETE. |
| `objectiveType` | `string` | No | Filter by advertising objective. Example values: REACH, TRAFFIC, VIDEO_VIEWS, LEAD_GENERATION, APP_PROMOTION, CONVERSIONS, PRODUCT_SALES. |
| `campaignType` | `string` | No | Filter by campaign type. REGULAR_CAMPAIGN for standard campaigns; IOS14_CAMPAIGN for iOS 14 Dedicated Campaigns. |
| `creationFilterStartTime` | `string` | No | Return campaigns created after this time. Format: YYYY-MM-DD HH:MM:SS (UTC). A range within 6 months is recommended. |
| `creationFilterEndTime` | `string` | No | Return campaigns created before this time. Format: YYYY-MM-DD HH:MM:SS (UTC). A range within 6 months is recommended. |
| `page` | `integer` | No | Page number for paginated results. Starts at 1. |
| `pageSize` | `integer` | No | Number of results per page. Default: 10, max: 1000. |

## Run it

**MCP**

```ts
import { Client } from "@modelcontextprotocol/sdk/client/index.js"
import { StreamableHTTPClientTransport } from "@modelcontextprotocol/sdk/client/streamableHttp.js"
import { PipedreamClient } from "@pipedream/sdk"

const pd = new PipedreamClient({
  projectId: process.env.PIPEDREAM_PROJECT_ID!,
  clientId: process.env.PIPEDREAM_CLIENT_ID!,
  clientSecret: process.env.PIPEDREAM_CLIENT_SECRET!,
  projectEnvironment: "production",
})

const accessToken = await pd.rawAccessToken

const transport = new StreamableHTTPClientTransport(
  new URL("https://remote.mcp.pipedream.net/v3"),
  {
    requestInit: {
      headers: {
        Authorization: `Bearer ${accessToken}`,
        "x-pd-project-id": process.env.PIPEDREAM_PROJECT_ID!,
        "x-pd-environment": "production",
        "x-pd-external-user-id": "{external_user_id}", // any stable ID for this user in your system
        "x-pd-app-slug": "tiktok_ads_manager",
      },
    },
  },
)

const mcp = new Client({ name: "my-agent", version: "1.0.0" })
await mcp.connect(transport)

const { tools } = await mcp.listTools()

// listTools() hands your model this tool's input schema, so it can
// fill the arguments itself:
const result = await mcp.callTool({
  name: "tiktok_ads_manager-list-campaigns",
  arguments: {
    advertiserId: "Advertiser ID",
    campaignIds: ["Campaign IDs"],
  },
})
```

**TypeScript**

```ts
import { PipedreamClient } from "@pipedream/sdk"

const pd = new PipedreamClient({
  projectId: process.env.PIPEDREAM_PROJECT_ID!,
  clientId: process.env.PIPEDREAM_CLIENT_ID!,
  clientSecret: process.env.PIPEDREAM_CLIENT_SECRET!,
  projectEnvironment: "production",
})

const result = await pd.actions.run({
  id: "tiktok_ads_manager-list-campaigns",
  externalUserId: "{external_user_id}", // any stable ID for this user in your system
  configuredProps: {
    tiktok_ads_manager: { authProvisionId: "apn_xxxxxxx" },
    advertiserId: "Advertiser ID",
    campaignIds: ["Campaign IDs"],
  },
})

console.log(result)
```

**cURL**

```bash
curl -X POST https://api.pipedream.com/v1/connect/{project_id}/actions/run \
  -H "Content-Type: application/json" \
  -H "X-PD-Environment: production" \
  -H "Authorization: Bearer {access_token}" \
  -d '{
    "external_user_id": "{external_user_id}",
    "id": "tiktok_ads_manager-list-campaigns",
    "configured_props": {
      "tiktok_ads_manager": { "authProvisionId": "apn_xxxxxxx" },
      "advertiserId": "Advertiser ID",
      "campaignIds": ["Campaign IDs"]
    }
  }'
```

---

- App: https://pipedream.com/apps/tiktok-ads-manager.md · All apps: https://pipedream.com/apps
