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

# List sessions

> Returns a filterable, cursor-paginated list of normalized sessions.



## OpenAPI

````yaml get /sessions/v2
openapi: 3.1.0
info:
  title: ReAdmin API
  version: 1.0.0
  description: ReAdmin developer api
  termsOfService: http://panel.readmin.app/legal/terms/
  contact:
    email: help@readmin.app
  x-fiddle-import-file: true
servers:
  - url: https://api.readmin.app
  - url: https://api.readmin.dev
    description: ReAdmin development API, only usable by ReAdmin developers.
security: []
tags:
  - name: Ranking Key
    description: Information about a key
  - name: Group Shout
    description: Update the group shout
  - name: Join Requests
    description: Get and manage join requests
  - name: Members
    description: Rank and exile members
  - name: Orders
    description: Operations related to orders management
  - name: Workspace
    description: Operations related to orders management
  - description: ''
    name: games
  - description: ''
    name: staff history
  - name: Activity
    description: Staff activity and minutes
  - name: Running Games
    description: Live tracked game servers
  - name: Time Off
    description: View and review time off requests
  - name: Teams
    description: Teams and team membership
  - name: Promotion Requests
    description: View promotion (nomination) requests
  - name: Calls
    description: In-game support calls and live chat
  - name: Sessions v2
    description: >-
      Modern, fully-normalized sessions API. Resources are flat and predictable,
      names are resolved, and lists are filterable and cursor-paginated.
externalDocs:
  description: ReAdmin docs
  url: http://docs.readmin.app
paths:
  /sessions/v2:
    get:
      tags:
        - Sessions v2
      summary: List sessions
      description: Returns a filterable, cursor-paginated list of normalized sessions.
      operationId: listSessionsV2
      parameters:
        - name: status
          in: query
          required: false
          description: Filter by lifecycle status.
          schema:
            type: string
            enum:
              - scheduled
              - live
              - ended
              - all
            default: all
        - name: templateId
          in: query
          required: false
          description: Only return sessions for this template.
          schema:
            type: string
        - name: from
          in: query
          required: false
          description: Only sessions starting on/after this ISO date-time.
          schema:
            type: string
            format: date-time
        - name: to
          in: query
          required: false
          description: Only sessions starting on/before this ISO date-time.
          schema:
            type: string
            format: date-time
        - name: order
          in: query
          required: false
          description: Sort direction by start time.
          schema:
            type: string
            enum:
              - asc
              - desc
            default: asc
        - name: limit
          in: query
          required: false
          description: Page size (1-100).
          schema:
            type: integer
            default: 25
            minimum: 1
            maximum: 100
        - name: cursor
          in: query
          required: false
          description: Opaque pagination cursor returned as pagination.nextCursor.
          schema:
            type: string
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V2SessionListResponse'
        '500':
          $ref: '#/components/responses/ServerError'
      security:
        - loader-id: []
components:
  schemas:
    V2SessionListResponse:
      type: object
      properties:
        success:
          type: boolean
          default: true
        data:
          type: array
          items:
            $ref: '#/components/schemas/V2Session'
        pagination:
          $ref: '#/components/schemas/V2Pagination'
    V2Session:
      type: object
      properties:
        id:
          type: string
        groupId:
          type: string
        name:
          type: string
        description:
          type: string
        status:
          type: string
          enum:
            - scheduled
            - live
            - ended
          description: Derived from the current time relative to startsAt/endsAt.
        startsAt:
          type: string
          format: date-time
        endsAt:
          type: string
          format: date-time
        durationMinutes:
          type: integer
        appearsAt:
          type: string
          format: date-time
          nullable: true
        templateId:
          type: string
          nullable: true
        oneOff:
          type: boolean
        game:
          $ref: '#/components/schemas/V2Game'
        roleGroupIds:
          type: array
          items:
            type: string
        servers:
          type: array
          items:
            $ref: '#/components/schemas/V2Server'
        counts:
          type: object
          properties:
            servers:
              type: integer
            claims:
              type: integer
            attendees:
              type: integer
        createdBy:
          type: string
          nullable: true
        createdAt:
          type: string
          format: date-time
    V2Pagination:
      type: object
      properties:
        total:
          type: integer
          description: Total number of matching sessions.
        limit:
          type: integer
          description: Page size used for this response.
        count:
          type: integer
          description: Number of items in this response.
        hasMore:
          type: boolean
          description: Whether more results exist beyond this page.
        nextCursor:
          type: string
          nullable: true
          description: >-
            Opaque cursor to fetch the next page. Null when there are no more
            results.
    V2Game:
      type: object
      nullable: true
      properties:
        gameId:
          type: integer
          nullable: true
        placeId:
          type: integer
          nullable: true
        name:
          type: string
          nullable: true
        thumbnail:
          type: string
          nullable: true
    V2Server:
      type: object
      properties:
        id:
          type: string
          description: Server id (UUID).
        nickname:
          type: string
          nullable: true
        linked:
          type: boolean
          description: Whether this server is linked to a live game server.
        linkedServerId:
          type: string
          nullable: true
        linkedJobId:
          type: string
          nullable: true
        linkedBy:
          type: string
          nullable: true
        claims:
          type: array
          items:
            $ref: '#/components/schemas/V2Claim'
        attendees:
          type: array
          items:
            $ref: '#/components/schemas/V2Attendee'
    V2Claim:
      type: object
      properties:
        userId:
          type: string
        roleId:
          type: string
          nullable: true
          description: The claimed subrole id.
        roleName:
          type: string
          nullable: true
          description: Human-readable name of the claimed role.
        state:
          type: string
          enum:
            - none
            - current
            - completed
            - passed
            - failed
        claimedBy:
          type: string
        claimedAt:
          type: string
          format: date-time
        claimId:
          type: string
          nullable: true
    V2Attendee:
      type: object
      properties:
        userId:
          type: string
        state:
          type: string
          enum:
            - none
            - current
            - completed
            - passed
            - failed
          nullable: true
        addedBy:
          type: string
  responses:
    ServerError:
      description: Internal server error
      content:
        application/json:
          schema:
            type: object
            properties:
              success:
                type: boolean
                default: false
              reason:
                type: string
  securitySchemes:
    loader-id:
      type: apiKey
      name: loader-id
      in: header

````