> ## Documentation Index
> Fetch the complete documentation index at: https://docs.apifycloud.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Search Campaigns

> Search campaigns with advanced filters and cursor pagination

## Endpoint

`POST https://api.apifycloud.io/api/v1/analytics/{appId}/campaigns/search`

## Authentication

Bearer token required.

Scope: `campaigns:read`

## Request body

* `limit` (number, optional)
* `cursor` (string, optional)
* `filter.status` (array of strings, optional)
* `filter.name` (string, optional)
* `filter.tags` (array of strings, optional)
* `filter.startDate` (string, optional, ISO datetime)
* `filter.endDate` (string, optional, ISO datetime)

```json theme={null}
{
  "limit": 25,
  "filter": {
    "status": ["running", "scheduled"],
    "name": "launch",
    "tags": ["vip"],
    "startDate": "2026-02-01T00:00:00.000Z",
    "endDate": "2026-02-28T23:59:59.999Z"
  }
}
```

## Response

```json theme={null}
{
  "data": [
    {
      "id": "uuid",
      "name": "Launch 1",
      "status": "running",
      "total_contacts": 2000,
      "sent_count": 1500,
      "created_at": "2026-02-18T00:00:00.000Z"
    }
  ],
  "meta": {
    "timestamp": "2026-02-18T00:00:00.000Z"
  },
  "pagination": {
    "limit": 25,
    "hasMore": false,
    "nextCursor": null
  }
}
```

## Errors

* `400 invalid_json` invalid JSON body
* `400 validation_error` invalid request body
* `403 forbidden` unauthorized for app or missing scope
* `429 rate_limit_exceeded`
* `500 server_error`
