---
title: "POST /api/admin/notifications/user-notifications"
method: POST
path: "/api/admin/notifications/user-notifications"
tags: ["Admin"]
---

# POST /api/admin/notifications/user-notifications

`POST /api/admin/notifications/user-notifications`

## Request body

- object
  - `userId` string, required
  - `limit` integer

## Response `200`

OK

- object
  - `userId` string, required
  - `userName` string, nullable, required
  - `timezone` string, nullable, required
  - `notificationsEnabled` boolean, required
  - `apnsConfigured` boolean, required
  - `deviceCount` integer, required
  - `lastSeenAt` string, nullable, required
  - `goodHourLocal` integer, nullable, required
  - `goodMinuteLocal` integer, nullable, required
  - `goodHourSampleSize` integer, required
  - `goodHourSource` 'computed' | 'default' | 'quiet_hour_clamp', nullable, required
  - `activeCampaign` object, nullable, required
    - `id` string, required
    - `anchorKind` string, required
    - `scheduledHourLocal` integer, required
    - `scheduledMinuteLocal` integer, required
    - `scheduledTimezone` string, required
    - `startedAt` string, required
    - `daySent` integer, required
    - `lastPushAt` string, nullable, required
  - `campaigns` object[], required
    - `id` string, required
    - `userId` string, required
    - `userName` string, nullable, required
    - `userPhoneNumber` string, nullable, required
    - `anchorKind` string, required
    - `scheduledHourLocal` integer, required
    - `scheduledMinuteLocal` integer, required
    - `scheduledTimezone` string, required
    - `startedAt` string, required
    - `stoppedAt` string, nullable, required
    - `stopReason` 'engaged' | 'exhausted' | 'send_failed' | 'new_batch' | 'admin_canceled', nullable, required
    - `daySent` integer, required
    - `lastPushAt` string, nullable, required
  - `personalStats` object, required
    - `sent30d` integer, required
    - `opened30d` integer, required
    - `openRate30d` number, required
  - `discoverPush` object, required
    - `eligible` boolean, required
    - `blockedReason` string, nullable, required
    - `nextSlotAt` string, nullable, required
    - `lastPushAt` string, nullable, required
    - `lastAppOpenedAt` string, nullable, required
    - `unseenCardCount` integer, required
    - `unansweredPushCount` integer, required
    - `pushEveryDays` integer, required
    - `card` object, nullable, required
      - `id` string, required
      - `headline` string, required
      - `sourceKind` string, required
    - `previewTitle` string, nullable, required
    - `previewBody` string, nullable, required
  - `pending` object[], required
    - `id` string, required
    - `userId` string, required
    - `userName` string, nullable, required
    - `userPhoneNumber` string, nullable, required
    - `userTimezone` string, nullable, required
    - `storyId` string, nullable, required
    - `storyTitle` string, nullable, required
    - `kind` string, required
    - `title` string, required
    - `body` string, required
    - `scheduledFor` string, required
    - `status` 'pending' | 'sent' | 'failed' | 'expired' | 'canceled', required
    - `attemptedAt` string, nullable, required
    - `sentAt` string, nullable, required
    - `failureReason` string, nullable, required
    - `createdAt` string, required
    - `campaignId` string, nullable, required
    - `campaignDay` integer, nullable, required
  - `recent` object[], required
    - `id` string, required
    - `userId` string, required
    - `userName` string, nullable, required
    - `userPhoneNumber` string, nullable, required
    - `userTimezone` string, nullable, required
    - `storyId` string, nullable, required
    - `storyTitle` string, nullable, required
    - `kind` string, required
    - `title` string, required
    - `body` string, required
    - `scheduledFor` string, required
    - `status` 'pending' | 'sent' | 'failed' | 'expired' | 'canceled', required
    - `attemptedAt` string, nullable, required
    - `sentAt` string, nullable, required
    - `failureReason` string, nullable, required
    - `createdAt` string, required
    - `campaignId` string, nullable, required
    - `campaignDay` integer, nullable, required

---

[API](https://skmtc.dev/fromolive/apis/olive-api.md) · [All operations](https://skmtc.dev/fromolive/apis/olive-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/fromolive/olive-api/revisions/01f6261481a3/schema)
