NotificationAPI In-App Inbox API

Read and update a user's in-app (INAPP_WEB) notifications.

OpenAPI Specification

notificationapi-in-app-inbox-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: NotificationAPI REST In-App Inbox API
  description: NotificationAPI is notifications infrastructure for developers. A single REST API sends multi-channel notifications - email, SMS, mobile push, web push, in-app inbox, automated voice call, and Slack - manages user identities, enforces per-user notification preferences and opt-outs, schedules and retracts notifications, and exposes delivery logs. All endpoints are scoped to your account via the clientId path segment and authenticated with HTTP Basic auth using clientId:clientSecret.
  termsOfService: https://www.notificationapi.com/terms
  contact:
    name: NotificationAPI Support
    email: support@notificationapi.com
    url: https://docs.notificationapi.com
  version: '2.8'
servers:
- url: https://api.notificationapi.com/{clientId}
  description: US region
  variables:
    clientId:
      default: your_client_id
      description: Your NotificationAPI account clientId.
- url: https://api.eu.notificationapi.com/{clientId}
  description: EU region
  variables:
    clientId:
      default: your_client_id
      description: Your NotificationAPI account clientId.
- url: https://api.ca.notificationapi.com/{clientId}
  description: Canada region
  variables:
    clientId:
      default: your_client_id
      description: Your NotificationAPI account clientId.
security:
- basicAuth: []
tags:
- name: In-App Inbox
  description: Read and update a user's in-app (INAPP_WEB) notifications.
paths:
  /users/{userId}/notifications/INAPP_WEB:
    parameters:
    - $ref: '#/components/parameters/UserId'
    get:
      operationId: getInAppNotifications
      tags:
      - In-App Inbox
      summary: Get a user's in-app notifications
      description: Returns the in-app (INAPP_WEB) notification inbox for a user, ordered newest first, for rendering the in-app inbox component. Supports pagination with `before` and `count`. Authenticated with the per-user HMAC Authorization header.
      parameters:
      - in: query
        name: count
        required: false
        schema:
          type: integer
          default: 50
        description: Maximum number of notifications to return.
      - in: query
        name: before
        required: false
        schema:
          type: string
          format: date-time
        description: Return notifications older than this ISO 8601 timestamp, for pagination.
      responses:
        '200':
          description: The user's in-app notifications.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InAppNotificationsResponse'
    patch:
      operationId: updateInAppNotifications
      tags:
      - In-App Inbox
      summary: Update in-app notifications
      description: Marks one or more in-app notifications (by trackingId) as opened, clicked, archived, or actioned, or attaches a reply. Authenticated with the per-user HMAC Authorization header.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/InAppNotificationPatchRequest'
            example:
              trackingIds:
              - 3f9c1b2a-7d4e-4a0b-9f21-8c6e2d1a0b34
              opened: '2026-07-01T12:00:00.000Z'
      responses:
        '200':
          description: In-app notifications updated.
components:
  parameters:
    UserId:
      in: path
      name: userId
      required: true
      schema:
        type: string
      description: The ID of the user in your system.
  schemas:
    InAppNotificationsResponse:
      type: object
      properties:
        notifications:
          type: array
          items:
            $ref: '#/components/schemas/InAppNotification'
        oldestReceived:
          type: string
          format: date-time
          description: Timestamp of the oldest returned notification, for pagination.
    InAppNotification:
      type: object
      properties:
        trackingId:
          type: string
        title:
          type: string
        url:
          type: string
        image:
          type: string
        date:
          type: string
          format: date-time
        opened:
          type: string
          format: date-time
        clicked:
          type: string
          format: date-time
        archived:
          type: string
          format: date-time
    InAppNotificationPatchRequest:
      type: object
      required:
      - trackingIds
      properties:
        trackingIds:
          type: array
          items:
            type: string
          description: The trackingIds of the in-app notifications to update.
        opened:
          type: string
          format: date-time
        clicked:
          type: string
          format: date-time
        archived:
          type: string
          format: date-time
        actioned1:
          type: string
          format: date-time
        actioned2:
          type: string
          format: date-time
        reply:
          type: object
          properties:
            date:
              type: string
              format: date-time
            message:
              type: string
  securitySchemes:
    basicAuth:
      type: http
      scheme: basic
      description: HTTP Basic authentication. For account-level calls the username is your clientId and the password is your clientSecret. Per-user calls (identify user, in-app inbox, delete preferences) use `base64(clientId:userId:hmac)` where hmac is HMAC-SHA256(userId) keyed with the clientSecret.