NotificationAPI In-App Inbox API

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

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/notificationapi-in-app-inbox-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

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.