> ## 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 Test Push

> Send a test push to a device or a contact's devices

# Send a Test Push

Sends a real push to one device (`deviceId`) or to every active device of a contact (`email` or `subscriberId`). Provide `title`, `body`, or both. Tests are excluded from stats and limited to 200 per company in a rolling 24-hour window. Requires the `campaigns:send` scope.

## Request

<ParamField body="deviceId" type="string">
  One device to notify.
</ParamField>

<ParamField body="email" type="string">
  Notify every active device of this contact.
</ParamField>

<ParamField body="subscriberId" type="string">
  Notify every active device of this subscriber.
</ParamField>

<ParamField body="title" type="string">
  Notification title, up to 120 characters. Merge tags such as `{{FIRST_NAME|there}}` work.
</ParamField>

<ParamField body="body" type="string">
  Notification message, up to 500 characters. Merge tags work.
</ParamField>

<ParamField body="url" type="string | null">
  Link opened on tap: an https URL, an app deep link (`myapp://...`), or a merge
  tag. Browsers only open https links. `null` clears it.
</ParamField>

<ParamField body="imageUrl" type="string | null">
  Optional https image shown in the notification.
</ParamField>

<ParamField body="iconUrl" type="string | null">
  Optional https icon for web push. Defaults to the icon in push settings.
</ParamField>

<ParamField body="platforms" type="string[]">
  Limit delivery to `web`, `ios`, and/or `android`. Omit or pass `[]` for every
  platform.
</ParamField>

```bash theme={null}
curl -X POST "https://api.sequenzy.com/api/v1/push/test" \
  --header "Authorization: Bearer $SEQUENZY_API_KEY" \
  --header "Content-Type: application/json" \
  --data '{"email":"you@example.com","title":"Test","body":"Hello from Sequenzy"}'
```

## Responses

<ResponseExample>
  ```json 200 theme={null}
  {
    "success": true,
    "pushSendId": "push_abc",
    "deviceCount": 2,
    "remainingToday": 198,
    "message": "Test push queued for 2 devices."
  }
  ```

  ```json 400 theme={null}
  {
    "error": "This contact has no active device on a platform that is set up."
  }
  ```

  ```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": "Device not found."
  }
  ```

  ```json 429 theme={null}
  {
    "error": "Test push limit reached (200 per 24 hours). Try again later."
  }
  ```
</ResponseExample>


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