Journey Docs
Members APINotifications

Get Notifications

Get paginated list of notifications with optional filtering

GET/members/me/notifications

Overview

Returns a paginated list of notifications for the authenticated member. Notifications include system messages, wallet updates, reservation confirmations, and other important updates.

Authentication

Requires a valid Clerk JWT token in the Authorization header.

Query Parameters

limitquerynumber

Maximum number of notifications to return (default: 20, max: 100)

offsetquerynumber

Number of notifications to skip for pagination (default: 0)

sortOrderquerystring

Sort order: "asc" or "desc" (default: "desc" - newest first)

readqueryboolean

Filter by read status: true for read only, false for unread only, omit for all

walletqueryboolean

Filter for wallet-related notifications only (points, transactions, etc.)

Request

curl -X GET "http://localhost:3000/v1/members/me/notifications?limit=10" \
  -H "Authorization: Bearer YOUR_CLERK_JWT"

Response

itemsarrayrequired

List of notification objects

array items
idnumberrequired

Unique notification ID

typestringrequired

Notification type: "wallet", "reservation", "system", "promotion", etc.

titlestring

Notification title/subject

messagestring

Notification message content

messagePartsobject

Structured message parts for rich formatting

isReadbooleanrequired

Whether the notification has been marked as read

isWalletbooleanrequired

Whether this is a wallet-related notification

metadataobject

Additional notification metadata (links, actions, etc.)

createdAtstringrequired

ISO 8601 timestamp when notification was created

updatedAtstringrequired

ISO 8601 timestamp when notification was last updated

readAtstring

ISO 8601 timestamp when notification was marked as read (null if unread)

totalnumberrequired

Total number of notifications matching filters

limitnumberrequired

Current pagination limit

offsetnumberrequired

Current pagination offset

Response

200 Response
{
  "items": [
    {
      "id": 1234,
      "type": "wallet",
      "title": "Points Earned",
      "message": "You earned 2,500 points from your recent stay at Luxury Resort Bali",
      "messageParts": {
        "action": "points_earned",
        "amount": 2500,
        "source": "reservation",
        "propertyName": "Luxury Resort Bali"
      },
      "isRead": false,
      "isWallet": true,
      "metadata": {
        "reservationId": "550e8400-e29b-41d4-a716-446655440000",
        "propertyId": "prop_luxury_resort_bali",
        "pointsType": "VALID"
      },
      "createdAt": "2024-04-20T10:30:00Z",
      "updatedAt": "2024-04-20T10:30:00Z",
      "readAt": null
    },
    {
      "id": 1233,
      "type": "reservation",
      "title": "Booking Confirmed",
      "message": "Your reservation at Tokyo Business Hotel is confirmed for May 15-17",
      "messageParts": {
        "action": "booking_confirmed",
        "propertyName": "Tokyo Business Hotel",
        "checkIn": "2024-05-15",
        "checkOut": "2024-05-17"
      },
      "isRead": true,
      "isWallet": false,
      "metadata": {
        "reservationId": "550e8400-e29b-41d4-a716-446655440001",
        "confirmationCode": "ABC123",
        "actionUrl": "/reservations/550e8400-e29b-41d4-a716-446655440001"
      },
      "createdAt": "2024-04-18T14:20:00Z",
      "updatedAt": "2024-04-18T16:45:00Z",
      "readAt": "2024-04-18T16:45:00Z"
    },
    {
      "id": 1232,
      "type": "promotion",
      "title": "Limited Time Offer",
      "message": "Get 25% bonus points on your next booking this weekend",
      "messageParts": {
        "action": "promotion",
        "bonusPercent": 25,
        "expiryDate": "2024-04-22"
      },
      "isRead": false,
      "isWallet": false,
      "metadata": {
        "campaignId": "weekend-bonus-2024",
        "actionUrl": "/discover/featured",
        "cta": "Book Now"
      },
      "createdAt": "2024-04-17T09:00:00Z",
      "updatedAt": "2024-04-17T09:00:00Z",
      "readAt": null
    },
    {
      "id": 1231,
      "type": "system",
      "title": "Profile Updated",
      "message": "Your travel preferences have been updated successfully",
      "messageParts": {
        "action": "profile_updated",
        "section": "travelPreferences"
      },
      "isRead": true,
      "isWallet": false,
      "metadata": {
        "actionUrl": "/profile"
      },
      "createdAt": "2024-04-16T11:15:00Z",
      "updatedAt": "2024-04-16T12:00:00Z",
      "readAt": "2024-04-16T12:00:00Z"
    }
  ],
  "total": 47,
  "limit": 10,
  "offset": 0
}

Notification Types

wallet

  • Purpose: Points earned, spent, transfers, balance updates
  • isWallet: Always true
  • Common Metadata: pointsType, amount, reservationId

reservation

  • Purpose: Booking confirmations, check-in reminders, modifications
  • isWallet: Always false
  • Common Metadata: reservationId, confirmationCode, actionUrl

promotion

  • Purpose: Special offers, bonus campaigns, member benefits
  • isWallet: Usually false
  • Common Metadata: campaignId, expiryDate, cta

system

  • Purpose: Account updates, profile changes, system messages
  • isWallet: Usually false
  • Common Metadata: actionUrl, section

Filtering Options

By Read Status

  • read=true: Only read notifications
  • read=false: Only unread notifications
  • Omitted: All notifications (both read and unread)

By Category

  • wallet=true: Only wallet-related notifications (points, transactions)
  • wallet=false: Only non-wallet notifications
  • Omitted: All notification types

Sorting

  • sortOrder="desc": Newest first (default)
  • sortOrder="asc": Oldest first

Message Structure

Simple Text

  • message: Plain text notification
  • title: Optional title/subject

Rich Messages

  • messageParts: Structured data for rich formatting
  • metadata: Additional context and actions
  • actionUrl: Deep link for user actions

Example Rich Message

{
  "messageParts": {
    "action": "points_earned",
    "amount": 2500,
    "source": "reservation",
    "propertyName": "Luxury Resort Bali"
  },
  "metadata": {
    "reservationId": "550e8400...",
    "actionUrl": "/reservations/550e8400..."
  }
}

On this page