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

# Send a Push Campaign

> Send a push campaign now or schedule it

# Send a Push Campaign

Sends a draft or scheduled push campaign now, or schedules it when `scheduledAt` is a future ISO 8601 time. The campaign needs a title or message, an audience with at least one contact that has an active device, and at least one selected platform set up in push settings. The audience is re-evaluated when delivery starts.

Each contact receives one notification per active device. If a push service is temporarily unavailable, only devices that have not accepted the message are retried. Requires the `campaigns:send` scope.

## Request

<ParamField path="campaignId" type="string" required>
  The push campaign ID.
</ParamField>

<ParamField body="scheduledAt" type="string | null">
  Future ISO 8601 time. Omit or pass `null` to send immediately.
</ParamField>

```bash theme={null}
curl -X POST "https://api.sequenzy.com/api/v1/push/campaigns/cmp_abc123/send" \
  --header "Authorization: Bearer $SEQUENZY_API_KEY" \
  --header "Content-Type: application/json" \
  --data '{}'
```

## Responses

<ResponseExample>
  ```json 200 theme={null}
  {
    "success": true,
    "campaign": {
      "id": "cmp_abc123",
      "name": "Flash sale",
      "type": "push",
      "status": "sending",
      "content": {
        "title": "24h sale",
        "body": "30% off everything",
        "url": "https://shop.example.com/sale",
        "imageUrl": null,
        "iconUrl": null,
        "platforms": [
          "web",
          "ios"
        ]
      },
      "targetLists": {
        "type": "all"
      },
      "scheduledAt": null,
      "sentAt": null,
      "estimatedRecipientCount": 340,
      "labelIds": [],
      "createdAt": "2026-10-01T12:00:00.000Z",
      "updatedAt": "2026-10-01T12:00:00.000Z"
    },
    "message": "Push campaign is sending to about 340 contacts."
  }
  ```

  ```json 400 theme={null}
  {
    "error": "No selected contacts can receive push notifications. Contacts need at least one active device."
  }
  ```

  ```json 401 theme={null}
  {
    "error": "Invalid API key"
  }
  ```

  ```json 403 theme={null}
  {
    "error": "API key is missing required scope: campaigns:send"
  }
  ```

  ```json 404 theme={null}
  {
    "error": "Campaign not found."
  }
  ```

  ```json 409 theme={null}
  {
    "error": "Only draft or scheduled push campaigns can be sent or rescheduled."
  }
  ```
</ResponseExample>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.