> ## Documentation Index
> Fetch the complete documentation index at: https://docs.bodhveda.com/llms.txt
> Use this file to discover all available pages before exploring further.

# List notifications

> Retrieve a paginated list of notifications for a recipient, ordered by most recent first.

This is the **recipient-facing** feed, so it excludes notifications the recipient was never shown: `muted` (their preferences disallowed it), `quota_exceeded`, and `not_requested` (an *email-only* send, which created no in-app notification). To see those, use the Console — they are exactly the rows you need when asking “why didn't they get it?”.



## OpenAPI

````yaml GET /recipients/{recipient_id}/notifications
openapi: 3.0.3
info:
  title: Bodhveda Notifications API
  version: '1.0'
  description: API for sending notifications to recipients or broadcasting to all.
servers: []
security: []
paths:
  /recipients/{recipient_id}/notifications:
    get:
      tags:
        - Notifications
      summary: List notifications for a recipient
      description: >-
        Retrieve a paginated list of notifications for a recipient, ordered by
        most recent first.


        This is the **recipient-facing** feed, so it excludes notifications the
        recipient was never shown: `muted` (their preferences disallowed it),
        `quota_exceeded`, and `not_requested` (an *email-only* send, which
        created no in-app notification). To see those, use the Console — they
        are exactly the rows you need when asking “why didn't they get it?”.
      operationId: listRecipientNotifications
      parameters:
        - name: recipient_id
          in: path
          required: true
          schema:
            type: string
          description: The unique identifier of the recipient.
        - name: before
          in: query
          required: false
          schema:
            type: string
          description: >-
            Returns results before the specified cursor. Use this to paginate
            backwards or fetch earlier items in the list.
        - name: after
          in: query
          required: false
          schema:
            type: string
          description: >-
            Returns results after the specified cursor. Use this to paginate
            forwards or fetch newer items in the list.
        - name: limit
          in: query
          required: false
          schema:
            type: integer
            default: 10
            maximum: 100
          description: Maximum number of notifications to return.
      responses:
        '200':
          description: List of notifications for the recipient.
          content:
            application/json:
              examples:
                Notifications list:
                  summary: Notifications List Response
                  value:
                    data:
                      notifications:
                        - id: 42069
                          recipient_id: recipient_123
                          payload:
                            title: Elon, Zuck and others commented on your post.
                            post_url: /posts/post_id_123#comments
                          broadcast_id: null
                          target:
                            channel: posts
                            topic: post_id_123
                            event: new_comment
                          read: false
                          opened: false
                          created_at: '2025-11-07T05:31:56Z'
                          updated_at: '2025-11-07T05:31:56Z'
                      cursor:
                        before: '42069'
                        after: '42069'
      security:
        - BearerAuthWithAPIKeyWithEitherScope: []
      x-codeSamples:
        - lang: curl
          label: cURL
          source: >-
            curl -G
            https://api.bodhveda.com/recipients/recipient_123/notifications \
              -H "Authorization: Bearer bv_xxxxxxxxx" \
              --data-urlencode "limit=10" 
        - lang: javascript
          label: JavaScript
          source: >-
            import { Bodhveda } from "@bodhveda/js";


            const bodhveda = new Bodhveda("bv_xxxxxxxxx");


            const res = await
            bodhveda.recipients.notifications.list("recipient_123", {
                limit: 10,
            });

            // res.notifications, res.cursor
        - lang: go
          label: Go
          source: >-
            import (
                "context"

                bodhveda "github.com/MudgalLabs/bodhveda/sdk/go"
            )


            ctx := context.Background()

            client := bodhveda.NewClient("bv_xxxxxxxxx", nil)


            limit := 10

            res, _ := client.Recipients.Notifications.List(ctx, "recipient_123",
            &bodhveda.ListNotificationsRequest{
                Limit: &limit,
            })

            // res.Notifications, res.Cursor
        - lang: jsx
          label: React
          source: >-
            import { useNotifications } from "@bodhveda/react";


            // Requires a <BodhvedaProvider recipientID="recipient_123"> higher
            in the tree.

            function Inbox() {
                const { data, fetchNextPage, hasNextPage } = useNotifications({ limit: 10 });
                return (
                    <ul>
                        {data?.notifications.map((n) => (
                            <li key={n.id}>{JSON.stringify(n.payload)}</li>
                        ))}
                    </ul>
                );
            }
components:
  securitySchemes:
    BearerAuthWithAPIKeyWithEitherScope:
      type: http
      scheme: bearer
      bearerFormat: APIKey
      description: >-
        Bearer authentication header of the form `Bearer bv_xxxxxxxxx`, where
        `bv_xxxxxxxxx` is your **API Key** with `Full access` or `Recipient
        acess` scope.

````