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

# List License Keys

> Retrieve a paginated and filterable list of active, expired, or banned license keys.



## OpenAPI

````yaml /api-reference/openapi/qpapel.json get /keys
openapi: 3.0.3
info:
  title: qPapel Protection Web API
  version: 1.0.0
  description: >
    qPapel Protection API provides developer-grade license validation, remote
    software configuration, staff URL delegation, client anti-cheat heuristics,
    and Discord community integration for desktop applications and loaders.
  contact:
    name: PapelShip Developer Support
    url: https://papelship.com
servers:
  - url: https://app.papelship.com/api/qpapel/v1
    description: Production Server
security:
  - BearerAuth: []
  - ApiKeyHeader: []
  - ApiKeyHeaderLegacy: []
tags:
  - name: License Keys
    description: >-
      Programmatic management of customer license keys, hardware ID bindings,
      activations, and bans.
  - name: Reseller Keys
    description: >-
      Multi-seat reseller key creation, extension, duration freeze, and license
      allocation.
  - name: Remote Settings
    description: >-
      Secure remote runtime configuration mapping, build SHA-256 verification,
      and dynamic values.
  - name: Staff Management
    description: Temporary and scope-limited web portal URLs for support moderators.
  - name: Discord Integrations
    description: >-
      Guild linkage, anti-cheat event channel streaming, and role-based bot
      permissions.
  - name: Client Security & Anti-Cheat
    description: >-
      Device fingerprint monitoring, process blacklists, window title filters,
      and server-side protected strings/files.
paths:
  /keys:
    get:
      tags:
        - License Keys
      summary: List License Keys
      description: >-
        Retrieve a paginated and filterable list of active, expired, or banned
        license keys.
      operationId: listLicenseKeys
      parameters:
        - name: scope
          in: query
          description: >-
            Scope filter for key ownership: 'me' (own keys), 'resellers', or
            'all'.
          schema:
            type: string
            enum:
              - me
              - resellers
              - all
            default: me
        - name: product
          in: query
          description: Filter keys by specific product cheat_value or product ID.
          schema:
            type: string
        - name: search
          in: query
          description: >-
            Case-insensitive search string matching license key sequence or user
            notes.
          schema:
            type: string
        - name: expiresInDays
          in: query
          description: Filter keys scheduled to expire within the specified number of days.
          schema:
            type: integer
            minimum: 1
        - name: limit
          in: query
          description: Number of records to return per page.
          schema:
            type: integer
            default: 25
            minimum: 1
            maximum: 1000
        - name: offset
          in: query
          description: Number of records to skip for pagination.
          schema:
            type: integer
            default: 0
            minimum: 0
        - name: sortBy
          in: query
          description: Field name to sort results by.
          schema:
            type: string
            enum:
              - created_at
              - end_time
              - used_count
              - key_value
            default: created_at
        - name: sortOrder
          in: query
          description: Sort ordering direction.
          schema:
            type: string
            enum:
              - ASC
              - DESC
            default: DESC
      responses:
        '200':
          description: Successful retrieval of license keys.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    example: true
                  keys:
                    type: array
                    items:
                      $ref: '#/components/schemas/LicenseKey'
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '500':
          $ref: '#/components/responses/InternalServerError'
components:
  schemas:
    LicenseKey:
      type: object
      properties:
        id:
          type: integer
          example: 541
        key_value:
          type: string
          example: ABCD-EFGH-IJKL-USER
        product:
          type: string
          example: cs2_cheat
        start_time:
          type: string
          format: date-time
          nullable: true
          example: '2026-06-12T00:00:00.000Z'
        end_time:
          type: string
          format: date-time
          nullable: true
          example: '2026-07-12T00:00:00.000Z'
        used_count:
          type: integer
          example: 0
        max_uses:
          type: integer
          example: 1
        is_banned:
          type: boolean
          example: false
        is_active:
          type: boolean
          example: true
        note:
          type: string
          nullable: true
          example: API generated license
        created_at:
          type: string
          format: date-time
          example: '2026-06-12T06:00:00.000Z'
    StandardErrorResponse:
      type: object
      properties:
        success:
          type: boolean
          example: false
        error:
          type: string
          example: Invalid parameters provided
  responses:
    UnauthorizedError:
      description: Authentication failed. Missing or invalid developer API key.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/StandardErrorResponse'
          example:
            success: false
            error: Unauthorized access. Valid API key required.
    InternalServerError:
      description: Server error occurred during operation processing.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/StandardErrorResponse'
          example:
            success: false
            error: Internal server error
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: API_KEY
      description: >-
        Standard HTTP Bearer token authentication header (e.g. `Authorization:
        Bearer pk_live_...`).
    ApiKeyHeader:
      type: apiKey
      in: header
      name: x-api-key
      description: >-
        Custom header API key authentication parameter (`x-api-key:
        pk_live_...`).
    ApiKeyHeaderLegacy:
      type: apiKey
      in: header
      name: api-key
      description: >-
        Legacy custom header API key fallback parameter (`api-key:
        pk_live_...`).

````