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

# List collection sessions

> Retrieve a paginated list of sessions associated with an issue collection. Returns lightweight session summaries by default, with optional includes for timeline, clicks, and screenshots.



## OpenAPI

````yaml GET /api/v1/monitoring/issue-collections/{collectionId}/sessions
openapi: 3.0.3
info:
  title: Decipher API
  version: 1.0.0
  description: >-
    API for retrieving test run data from Decipher. Use your API key to
    authenticate requests.
servers:
  - url: https://api.getdecipher.com
    description: Production
security: []
paths:
  /api/v1/monitoring/issue-collections/{collectionId}/sessions:
    get:
      summary: List sessions for an issue collection
      description: >-
        Retrieve a paginated list of sessions associated with an issue
        collection. Returns lightweight session summaries by default, with
        optional includes for timeline, clicks, and screenshots.
      parameters:
        - schema:
            type: string
            description: Collection ID
            example: '123'
          required: true
          description: The ID of the issue collection
          name: collectionId
          in: path
        - schema:
            type: integer
            minimum: 1
            maximum: 50
            default: 10
          required: false
          name: limit
          in: query
        - schema:
            type: string
          required: false
          name: cursor
          in: query
          description: >-
            Cursor for pagination. Use the nextCursor value from a previous
            response.
        - schema:
            type: string
          required: false
          name: since
          in: query
          description: >-
            ISO 8601 datetime. Only return sessions with issues after this time.
            Defaults to 24 hours ago.
        - schema:
            type: string
          required: false
          name: until
          in: query
          description: >-
            ISO 8601 datetime. Only return sessions with issues before this
            time. Defaults to now.
        - schema:
            type: string
            example: timeline,clicks
          required: false
          name: include
          in: query
          description: >-
            Comma-separated list of optional fields to include: timeline,
            clicks, screenshots. Requesting screenshots automatically includes
            clicks.
      responses:
        '200':
          description: Paginated list of collection sessions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MonitoringCollectionSessionsListResponse'
        '400':
          description: Invalid parameter
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: Authentication error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '404':
          description: Collection not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
      security:
        - bearerAuth: []
components:
  schemas:
    MonitoringCollectionSessionsListResponse:
      type: object
      properties:
        object:
          type: string
          enum:
            - list
        collection:
          $ref: '#/components/schemas/MonitoringCollectionSummary'
        data:
          type: array
          items:
            $ref: '#/components/schemas/MonitoringCollectionSession'
        includes:
          type: array
          items:
            type: string
            enum:
              - timeline
              - clicks
              - screenshots
          description: Which optional fields were included in the request
        screenshotsExpiresAt:
          type: string
          nullable: true
          description: >-
            ISO timestamp when included screenshot URLs expire (~3h). Null when
            no screenshot URLs are present.
        hasMore:
          type: boolean
        nextCursor:
          type: string
          nullable: true
        window:
          type: object
          properties:
            since:
              type: string
              description: ISO 8601 start of the query window
            until:
              type: string
              description: ISO 8601 end of the query window
          required:
            - since
            - until
      required:
        - object
        - collection
        - data
        - includes
        - hasMore
        - nextCursor
        - window
    ApiError:
      type: object
      properties:
        error:
          type: object
          properties:
            type:
              type: string
              enum:
                - authentication_error
                - authorization_error
                - not_found_error
                - validation_error
                - rate_limit_error
                - api_error
            code:
              type: string
            message:
              type: string
            field:
              type: string
          required:
            - type
            - code
            - message
      required:
        - error
    MonitoringCollectionSummary:
      type: object
      properties:
        id:
          type: number
        type:
          type: string
        rootCause:
          type: string
        shortenedPath:
          type: string
        createdAt:
          type: string
        isResolved:
          type: boolean
        errorCount:
          type: number
          description: Number of error occurrences in the time window
        sessionCount:
          type: number
          description: Number of affected sessions in the time window
        estimatedUsers:
          type: number
          description: Estimated number of affected users, adjusted for sample rate
      required:
        - id
        - type
        - rootCause
        - shortenedPath
        - createdAt
        - isResolved
        - errorCount
        - sessionCount
        - estimatedUsers
    MonitoringCollectionSession:
      type: object
      properties:
        object:
          type: string
          enum:
            - session
        id:
          type: string
          format: uuid
        url:
          type: string
          description: Decipher dashboard link for the session
        createdAt:
          type: string
        duration:
          type: number
          nullable: true
          description: Session duration in milliseconds
        userEmail:
          type: string
          nullable: true
        userId:
          type: string
          nullable: true
        userAccount:
          type: string
          nullable: true
        userUsername:
          type: string
          nullable: true
        userPlan:
          type: string
          nullable: true
        userRole:
          type: string
          nullable: true
        browser:
          type: string
          nullable: true
        device:
          type: string
          nullable: true
        countryCode:
          type: string
          nullable: true
        hasTimeline:
          type: boolean
          description: Whether AI timeline analysis is available
        representativeIssue:
          $ref: '#/components/schemas/MonitoringRepresentativeIssue'
        timeline:
          nullable: true
          description: >-
            AI-generated session timeline. Only present when include contains
            "timeline".
          allOf:
            - $ref: '#/components/schemas/MonitoringTimeline'
        clicks:
          type: array
          description: >-
            Session click interactions. Only present when include contains
            "clicks".
          items:
            $ref: '#/components/schemas/SessionClick'
        errorScreenshots:
          description: >-
            Error screenshot URLs. Only present when include contains
            "screenshots".
          allOf:
            - $ref: '#/components/schemas/MonitoringErrorScreenshots'
      required:
        - object
        - id
        - url
        - createdAt
        - duration
        - userEmail
        - userId
        - userAccount
        - userUsername
        - userPlan
        - userRole
        - browser
        - device
        - countryCode
        - hasTimeline
        - representativeIssue
    MonitoringRepresentativeIssue:
      type: object
      properties:
        errorId:
          type: string
          format: uuid
        latestIssueAt:
          type: string
          description: ISO 8601 timestamp of the most recent occurrence of this issue
        shortenedPath:
          type: string
          nullable: true
        fullPath:
          type: string
          nullable: true
        aiSummary:
          $ref: '#/components/schemas/MonitoringIssueAiSummary'
      required:
        - errorId
        - latestIssueAt
        - shortenedPath
        - fullPath
        - aiSummary
    MonitoringTimeline:
      type: object
      properties:
        overview:
          type: string
          nullable: true
        tags:
          type: array
          items:
            $ref: '#/components/schemas/TimelineTag'
        pages:
          type: array
          items:
            $ref: '#/components/schemas/TimelinePage'
        loadingIssues:
          type: array
          items:
            $ref: '#/components/schemas/TimelineLoadingIssue'
      required:
        - overview
        - tags
        - pages
        - loadingIssues
    SessionClick:
      type: object
      properties:
        id:
          type: number
        type:
          type: string
          description: 'Click type: click, multiClick, slowClick, deadClick'
        timestamp:
          type: number
          nullable: true
          description: Click timestamp (epoch ms)
        clickCount:
          type: number
          nullable: true
          description: Number of clicks (for multiClick)
        navigationTo:
          type: string
          nullable: true
          description: URL navigated to after this click, if any
        screenshots:
          type: object
          properties:
            before:
              type: string
              nullable: true
              description: Signed URL for screenshot taken before the click
            after:
              type: string
              nullable: true
              description: Signed URL for screenshot taken after the click
          required:
            - before
            - after
      required:
        - id
        - type
        - timestamp
        - clickCount
        - navigationTo
        - screenshots
    MonitoringErrorScreenshots:
      type: object
      properties:
        main:
          type: string
          nullable: true
          description: Signed URL for the main error screenshot
        after:
          type: string
          nullable: true
          description: Signed URL for the screenshot taken after the error
      required:
        - main
        - after
    MonitoringIssueAiSummary:
      type: object
      properties:
        category:
          type: string
          nullable: true
          description: AI-categorized issue type
        behavior:
          type: string
          nullable: true
          description: Description of the user behavior when the issue occurred
        productFeature:
          type: string
          nullable: true
          description: Product feature area affected
        errorText:
          type: string
          nullable: true
          description: Error message text
        reasoning:
          type: string
          nullable: true
          description: AI reasoning about the issue
      required:
        - category
        - behavior
        - productFeature
        - errorText
        - reasoning
    TimelineTag:
      type: object
      properties:
        tag:
          type: string
        reasoning:
          type: string
      required:
        - tag
        - reasoning
    TimelinePage:
      type: object
      properties:
        page:
          type: string
        startTime:
          type: number
        endTime:
          type: number
        clickCount:
          type: number
        featuresUsed:
          type: array
          items:
            type: string
        activities:
          type: array
          items:
            $ref: '#/components/schemas/TimelineActivity'
      required:
        - page
        - startTime
        - endTime
        - clickCount
        - featuresUsed
        - activities
    TimelineLoadingIssue:
      type: object
      properties:
        description:
          type: string
        longDescription:
          type: string
        durationInSeconds:
          type: number
        timestamp:
          type: number
      required:
        - description
        - longDescription
        - durationInSeconds
        - timestamp
    TimelineActivity:
      type: object
      properties:
        startTime:
          type: string
        endTime:
          type: string
        summary:
          type: string
        userAction:
          type: string
          nullable: true
        userBehavior:
          type: string
          nullable: true
      required:
        - startTime
        - endTime
        - summary
        - userAction
        - userBehavior
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: API key authentication. Use your Decipher API key as the bearer token.

````