---
title: "List scans"
method: GET
path: "/api/v1/scans"
tags: ["Scans"]
---

# List scans

`GET /api/v1/scans`

## Query parameters

- `perPage` integer
- `entity` string
- `readerId` string
- `passId` string
- `validationType` 'internalValidation' | 'externalValidation'
- `scanType` 'nfc' | 'barcode'
- `status` 'successful' | 'failed'
- `eventId` string
- `passTemplateName` string
- `groupTag` string
- `groupTags[]` string[]
- `createdAfter` string
- `createdBefore` string

## Response `200`

Successful

- object
  - `data` SerializedScanObject[]
    - `id` string — Auto-generated UUID of the scan
    - `type` string
    - `attributes` object
      - `scanType` 'nfc' | 'barcode' — Type of scan: nfc or barcode
      - `scanValue` string — The raw value read by the reader during the scan. For NFC, this is the encoded NFC message. For barcodes, this is the encoded barcode value.
      - `validationType` 'internalValidation' | 'externalValidation' — Type of validation: 'internal' for PassEntry Validation or 'external' for Third-Party Validation.
      - `status` 'successful' | 'failed' — Status of the validation: 'successful' or 'failed'
      - `statusDetail` string — Detailed status of the validation including error details
      - `scannedAt` string — ISO8601 timestamp of the scan
    - `relationships` object — Relationships to other resources.
      - `pass` object
        - `data` object
          - `id` string — Auto-generated UUID of the pass
          - `type` string
      - `reader` object
        - `data` object
          - `id` string — Reader ID
          - `type` string
  - `meta` ScanMeta
    - `successfulScans` integer — Total count of successful scans
    - `failedScans` integer — Total count of failed scans
    - `readersCount` integer — Total count of readers
    - `totalCount` integer — Total count of records returned
    - `resultsPerPage` integer — Number of records returned per page. Set using the perPage query parameter.
    - `currentPage` integer — Index of current page
    - `totalPages` integer — Total pages returned
  - `included` union[]
    - union
      - SerializedPassObject
        - `id` string — Auto-generated UUID of the pass
        - `type` string
        - `attributes` object
          - `downloadUrl` string — Unique download URL of the pass
          - `passType` 'generic' | 'eventTicket' | 'storeCard' | 'transit' — Pass Type
          - `deviceType` 'android' | 'iphone'
          - `createdAt` string — In ISO8601 format, UTC
          - `status` 'issued' | 'active' | 'removed' | 'deactivated' | 'nullified' — Pass Status
          - `extId` string, nullable — Pass External ID
          - `groupTag` string, nullable — Tag used for grouping passes
          - `groupTags` unknown
          - `addedAt` string, nullable — When pass has been added to wallet by the user. In ISO8601 format, UTC
          - `removedAt` string, nullable — When pass has been removed from wallet by the user. In ISO8601 format, UTC
          - `deactivatedAt` string, nullable — When pass has been deactivated. In ISO8601 format, UTC
          - `nullifiedAt` string, nullable — When pass has been nullified. In ISO8601 format, UTC
          - `expiresAt` string, nullable — Pass will expire at this time. In ISO8601 format, UTC
          - `passTemplateUuid` string — UUID of corresponding pass template
          - `passTemplateName` string — Name of corresponding pass template
          - `nfc` string, nullable — If present, the NFC message to be conveyed when the pass is tapped
          - `barcode` object — If present, the barcode type and value
            - `enabled` boolean — Barcode enabled
            - `type` 'qr' | 'code128' | 'aztec' | 'pdf417' — Barcode type
            - `source` 'uuid' | 'extId' | 'custom' — Barcode source
            - `value` string — Barcode value
            - `displayText` boolean — If true, display the barcode value as text on the pass
          - `latestMessage` string, nullable — If present, the last push message sent to the pass
          - `passContent` object
          - `passDesign` object — Pass design values, present if pass template has been overridden for this pass, or if 'includePassDesign' query param is set to true
            - `backgroundColor` string — Pass background color in hex format
            - `labelColor` string — Pass label color in hex format. Only valid for iphone passes
            - `textColor` string — Pass text color in hex format. Only valid for iphone passes
            - `bannerImageUrl` string — URL of pass banner image
            - `logoImageUrl` string — URL of pass logo image
            - `thumbnailImageUrl` string — URL of pass thumbnail image. Only present for generic passes.
            - `artworkImageUrl` string — URL of pass artwork image. Only present for event ticket passes with enhanced event ticket enabled.
            - `secondaryLogoImageUrl` string — URL of pass secondary logo image. Only present for event ticket passes with enhanced event ticket enabled.
            - `venueMapImageUrl` string — URL of pass venue map image. Only present for event ticket passes with enhanced event ticket enabled.
          - `locations` SerializedLocation[] — Locations, present if 'includeLocations' query param is set to true
            - `name` string — Name of the location, used for display purposes only
            - `latitude` number, double — Latitude of the location
            - `longitude` number, double — Longitude of the location
            - `radius` integer — Effective geofence radius of the location in meters. Maximum is 1000 for eventTicket passes, 100 for other pass types. Currently only available on Apple devices, due to Android device restrictions.
            - `message` string — Message to display when user enters geofence. Currently only available on Apple devices, due to Android device restrictions.
            - `address` string — Geocoded address of the location. Used for display purposes only. This is calculated automatically from the latitude and longitude values
          - `beacons` SerializedBeacon[] — Beacons, present if 'includeBeacons' query param is set to true
            - `proximityUuid` string — Unique identifier of the beacon
            - `major` integer — Major Value, provides additional identification for a beacon
            - `minor` integer — Minor Value, provides additional identification for a beacon
            - `message` string, nullable — Message to display on lock screen when the user is in range of the beacon
            - `name` string — Name of the beacon, used for display purposes only
          - `enhancedEventData` object — Enhanced event data for poster event ticket. Only present on event ticket passes with enhanced event ticket enabled on their template. ***Note**: This feature is in **closed beta**. The API structure may change and you may encounter bugs. Please contact PassEntry for access.*
            - `event` object
              - …
            - `venue` object
              - …
            - `seat` object
              - …
            - `eventGuide` object
              - …
          - `passSource` object — Pass source, present if 'includePassDesign' query param is present, one of Apple/Google and current pass status is not 'active'.
            - `oneOf` object
              - …
          - `binding` object, nullable — Account binding status. Present when the pass has a binding record. Automatically included for single pass responses (show, create, update). For list endpoints, use the `includeBinding=true` query parameter.
            - `platform` 'apple' | 'google' | 'null', nullable — The wallet platform this pass is bound to. Null when the pass has been created with binding but not yet downloaded.
            - `bound` boolean — Whether the pass binding has been finalised. True after the pass has been successfully downloaded and the binding verified.
            - `bindingEmail` string, nullable — Masked email address of the pass holder (e.g. `u***@gmail.com`). Null for Apple-bound passes as the email is purged after binding initiation.
            - `learnMoreUrl` string — URL shown to the user explaining account binding.
      - SerializedReaderObject
        - `id` string — Identifier of the reader
        - `type` string
        - `attributes` object
          - `name` string — Friendly display name of the reader
          - `readerType` string — Type of reader: VtapReader or PassentryReader
          - `lastSeenAt` string — Timestamp of the last time the reader was seen. Only present for PassentryReader type
          - `loggedIn` boolean — Whether the reader is currently logged in. Only present for PassentryReader type
          - `scanEnabled` boolean — Whether the reader is enabled for scanning. Only present for PassentryReader type
          - `redeemEnabled` boolean — Whether the reader is enabled for redeeming. Only present for PassentryReader type
          - `addPointsEnabled` boolean — Whether the reader is enabled for adding points. Only present for PassentryReader type
          - `mifareClassicNfcEnabled` boolean — Whether the reader is enabled for Mifare Classic NFC scanning. Only present for PassentryReader type
          - `qrEnabled` boolean — Whether the reader is enabled for QR code scanning. Only present for PassEntryReader type
  - `links` IndexLinks
    - `first` string, nullable — Path to first page, null if currentPage is first page
    - `prev` string, nullable — Path to prev page, null if currentPage is first page
    - `next` string, nullable — Path to next page, null if currentPage is last page
    - `last` string, nullable — Path to last page, null if currentPage is last page

## Other responses

- `401` — Error: Unauthorized

---

[API](https://skmtc.net/passentry/apis/passentry-api.md) · [All operations](https://skmtc.net/passentry/apis/passentry-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/passentry/passentry-api/versions/2c7dc0306b04/schema)
