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

# List notifications for a pass

> Lists the pass’s notifications, newest first, with the standard pagination envelope. Each item carries the derived overall `status` plus per-platform delivery detail under `apple` and `google`.

Requires the `pass-notifications:read` scope on the access token.



## OpenAPI

````yaml /api-reference/openapi.json get /v1/passes/{id}/notifications
openapi: 3.1.0
info:
  title: Passlet API (Public)
  version: 0.2.0
  description: >-
    Public integration API for Passlet. Every route is callable with a `plt_*`
    access token, and each operation lists the required access-token scope.
  license:
    name: UNLICENSED
    identifier: UNLICENSED
servers:
  - url: https://api.passlet.io
    description: Production
security: []
paths:
  /v1/passes/{id}/notifications:
    get:
      tags:
        - passes
      summary: List notifications for a pass
      description: >-
        Lists the pass’s notifications, newest first, with the standard
        pagination envelope. Each item carries the derived overall `status` plus
        per-platform delivery detail under `apple` and `google`.


        Requires the `pass-notifications:read` scope on the access token.
      operationId: getV1PassesIdNotifications
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
            format: uuid
            pattern: >-
              ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
          description: Pass identifier
        - name: limit
          in: query
          required: false
          schema:
            default: 20
            type: integer
            minimum: 1
            maximum: 100
          description: Number of items per page
        - name: cursor
          in: query
          required: false
          schema:
            type: string
            minLength: 1
            maxLength: 512
          description: Opaque cursor returned by the previous page
        - name: offset
          in: query
          required: false
          schema:
            default: 0
            type: integer
            minimum: 0
            maximum: 9007199254740991
          description: Deprecated offset compatibility parameter
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListPassNotificationsResponse'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '429':
          description: Rate limited
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '503':
          description: Service unavailable
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
      security:
        - bearerAuth: []
components:
  schemas:
    ListPassNotificationsResponse:
      $schema: https://json-schema.org/draft/2020-12/schema
      type: object
      properties:
        items:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: >-
                  ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                description: Pass notification identifier
              passId:
                type: string
                format: uuid
                pattern: >-
                  ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                description: Pass identifier
              body:
                type: string
                description: Message text
              options:
                anyOf:
                  - type: object
                    properties:
                      google:
                        type: object
                        properties:
                          header:
                            description: >-
                              Title shown above the message in the Google Wallet
                              app
                            type: string
                            minLength: 1
                            maxLength: 100
                        additionalProperties: false
                    additionalProperties: false
                    description: Provider-specific delivery options
                  - type: 'null'
                description: Provider-specific options supplied at creation
              sendAt:
                anyOf:
                  - type: string
                    format: date-time
                    pattern: >-
                      ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                    description: ISO 8601 timestamp
                  - type: 'null'
                description: Scheduled delivery time; null for immediate sends
              status:
                type: string
                enum:
                  - SCHEDULED
                  - PENDING
                  - SENT
                  - PARTIAL
                  - FAILED
                  - SKIPPED
                description: >-
                  Overall delivery status: SCHEDULED (sendAt in the future,
                  nothing dispatched), PENDING (delivery in progress), SENT
                  (delivered on every applicable platform), PARTIAL (one
                  platform sent, the other failed), FAILED (failed on every
                  applicable platform), SKIPPED (no targeted platform was
                  applicable)
                example: SCHEDULED
              apple:
                type: object
                properties:
                  status:
                    type: string
                    enum:
                      - PENDING
                      - SENT
                      - FAILED
                      - SKIPPED
                    description: Per-provider delivery status
                    example: PENDING
                  error:
                    anyOf:
                      - type: string
                      - type: 'null'
                    description: Last delivery error, if any
                  deviceCount:
                    anyOf:
                      - type: integer
                        minimum: -9007199254740991
                        maximum: 9007199254740991
                      - type: 'null'
                    description: >-
                      Registered Apple devices that were pushed to. 0 means the
                      pass artifact was updated but no device is registered for
                      updates
                required:
                  - status
                  - error
                  - deviceCount
                additionalProperties: false
              google:
                type: object
                properties:
                  status:
                    type: string
                    enum:
                      - PENDING
                      - SENT
                      - FAILED
                      - SKIPPED
                    description: Per-provider delivery status
                    example: PENDING
                  error:
                    anyOf:
                      - type: string
                      - type: 'null'
                    description: Last delivery error, if any
                required:
                  - status
                  - error
                additionalProperties: false
              createdAt:
                type: string
                format: date-time
                pattern: >-
                  ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                description: ISO 8601 timestamp
              updatedAt:
                type: string
                format: date-time
                pattern: >-
                  ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                description: ISO 8601 timestamp
            required:
              - id
              - passId
              - body
              - options
              - sendAt
              - status
              - apple
              - google
              - createdAt
              - updatedAt
            additionalProperties: false
        total:
          type: integer
          minimum: -9007199254740991
          maximum: 9007199254740991
          description: Total number of items
        limit:
          type: integer
          minimum: -9007199254740991
          maximum: 9007199254740991
          description: Items per page
        offset:
          type: integer
          minimum: -9007199254740991
          maximum: 9007199254740991
          description: Items skipped
        nextCursor:
          description: Opaque cursor for the next page, or null when exhausted
          anyOf:
            - type: string
            - type: 'null'
        hasMore:
          type: boolean
          description: Whether more items exist
      required:
        - items
        - total
        - limit
        - offset
        - hasMore
      additionalProperties: false
    ApiError:
      $schema: https://json-schema.org/draft/2020-12/schema
      type: object
      properties:
        errorCode:
          type: string
          enum:
            - UNAUTHORIZED
            - FORBIDDEN
            - SCANNER_OFFLINE_DISABLED
            - TOKEN_EXPIRED
            - TOKEN_INVALID
            - CSRF_TOKEN_INVALID
            - TENANT_EXPIRED
            - TENANT_NOT_FOUND
            - ORGANIZATION_REQUIRED
            - TENANT_SUSPENDED
            - VALIDATION_ERROR
            - INVALID_INPUT
            - MISSING_REQUIRED_FIELD
            - INVALID_FORMAT
            - SYSTEM_VARIABLE_READONLY
            - NOT_FOUND
            - PASS_NOT_FOUND
            - TEMPLATE_NOT_FOUND
            - WEBHOOK_NOT_FOUND
            - NOTIFICATION_NOT_FOUND
            - PASS_NOTIFICATION_NOT_FOUND
            - PASS_NOTIFICATION_BROADCAST_NOT_FOUND
            - CONFLICT
            - VERSION_CONFLICT
            - DUPLICATE_PASS
            - IDEMPOTENCY_CONFLICT
            - SCANNER_SNAPSHOT_STALE
            - TEMPLATE_VERSION_NOT_NEWER
            - WEBHOOK_MANAGED_EXTERNALLY
            - WEBHOOK_SUBSCRIPTION_OWNERSHIP_CONFLICT
            - TEMPLATE_PASS_TYPE_LOCKED
            - PASS_ALREADY_ISSUED
            - PASS_ALREADY_VOIDED
            - PASS_NOT_ISSUED
            - PASS_ISSUING_FAILED
            - PASS_NOTIFICATION_ALREADY_SENT
            - PASS_NOTIFICATION_BROADCAST_ALREADY_DISPATCHED
            - APPLE_SIGNING_FAILED
            - APPLE_APNS_FAILED
            - GOOGLE_API_FAILED
            - GOOGLE_JWT_FAILED
            - PROVIDER_UNAVAILABLE
            - LINK_REVOKED
            - LINK_INVALID
            - TOKEN_SIGNATURE_INVALID
            - TOKEN_CLOCK_SKEW
            - RATE_LIMITED
            - TOO_MANY_REQUESTS
            - PASS_NOTIFICATION_RATE_LIMITED
            - INTERNAL_ERROR
            - SERVICE_UNAVAILABLE
            - JOB_FAILED
          description: Machine-readable error code
          example: UNAUTHORIZED
        message:
          type: string
          description: Human-readable error message
        correlationId:
          type: string
          description: Request correlation ID for debugging
        details:
          description: Additional error details
          type: object
          propertyNames:
            type: string
          additionalProperties: {}
      required:
        - errorCode
        - message
        - correlationId
      additionalProperties: false
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: plt_<secret>
      description: >-
        Passlet access token (`plt_*`) sent as `Authorization: Bearer <token>`
        or `X-API-Key`. Authorized scopes are listed per operation under
        `x-required-scopes`.

````