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

# List active airline pilots

> Returns active airline memberships with pilot statistics. Suspended, rejected, left, and removed memberships are excluded. Results are ordered by joinedAt from oldest to newest.



## OpenAPI

````yaml /virtual-airlines/openapi.json get /api/v1/va/pilots
openapi: 3.1.0
info:
  title: FlyHub Virtual Airlines API
  version: '2026-07-21'
  description: >-
    Read-only airline information and Discord notification payloads for Virtual
    Airlines integrations. Resources are scoped to the airline that issued the
    fhva_live bearer key.
servers:
  - url: https://flyhub.app
    description: FlyHub production API
security: []
tags:
  - name: public-api
    description: >-
      Read-only resources for airline websites, dashboards, and private
      integrations.
    x-group: Public VA API
  - name: discord-webhooks
    description: Discord notification payloads for selected airline activity.
    x-group: Discord webhooks
paths:
  /api/v1/va/pilots:
    get:
      tags:
        - public-api
      summary: List active airline pilots
      description: >-
        Returns active airline memberships with pilot statistics. Suspended,
        rejected, left, and removed memberships are excluded. Results are
        ordered by joinedAt from oldest to newest.
      operationId: listVaPilots
      parameters:
        - $ref: '#/components/parameters/Limit'
        - $ref: '#/components/parameters/Offset'
      responses:
        '200':
          $ref: '#/components/responses/PilotsResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/RateLimited'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
      security:
        - vaApiKey: []
components:
  parameters:
    Limit:
      name: limit
      in: query
      description: >-
        Requested page size. The API uses 25 by default, accepts 1–100, and caps
        larger values at 100. Invalid values fall back to the default.
      schema:
        type: integer
        minimum: 1
        maximum: 100
        default: 25
    Offset:
      name: offset
      in: query
      description: >-
        Number of records to skip. The API uses 0 by default and caps values at
        10000.
      schema:
        type: integer
        minimum: 0
        maximum: 10000
        default: 0
  responses:
    PilotsResponse:
      description: Paginated active pilot roster.
      headers:
        Cache-Control:
          $ref: '#/components/headers/CacheControl'
        X-RateLimit-Limit:
          $ref: '#/components/headers/RateLimitLimit'
        X-RateLimit-Remaining:
          $ref: '#/components/headers/RateLimitRemaining'
        X-RateLimit-Reset:
          $ref: '#/components/headers/RateLimitReset'
      content:
        application/json:
          schema:
            type: object
            required:
              - data
              - pagination
              - meta
            properties:
              data:
                type: array
                items:
                  $ref: '#/components/schemas/Pilot'
              pagination:
                $ref: '#/components/schemas/Pagination'
              meta:
                $ref: '#/components/schemas/Meta'
    Unauthorized:
      description: A valid FlyHub VA API key is required.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Forbidden:
      description: The key does not include the required read scope.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    RateLimited:
      description: The request rate is temporarily limited.
      headers:
        Retry-After:
          $ref: '#/components/headers/RetryAfter'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    ServiceUnavailable:
      description: FlyHub cannot safely serve the request at the moment.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  headers:
    CacheControl:
      description: >-
        The response is private and should not be stored as a shared cache
        entry.
      schema:
        type: string
        example: private, no-store
    RateLimitLimit:
      description: Requests allowed in the current public API window.
      schema:
        type: integer
    RateLimitRemaining:
      description: Requests remaining in the current public API window.
      schema:
        type: integer
    RateLimitReset:
      description: ISO timestamp when the public API request window resets.
      schema:
        type: string
        format: date-time
    RetryAfter:
      description: Seconds to wait before retrying after a rate limit.
      schema:
        type: integer
  schemas:
    Pilot:
      type: object
      required:
        - displayName
        - rank
        - joinedAt
        - lastActivityAt
        - completedFlights
        - completedHours
        - contributionPoints
        - reliabilityScore
        - lastFlightAt
      properties:
        displayName:
          type: string
        rank:
          type:
            - string
            - 'null'
        joinedAt:
          type:
            - string
            - 'null'
          format: date-time
        lastActivityAt:
          type:
            - string
            - 'null'
          format: date-time
        completedFlights:
          type: integer
          minimum: 0
        completedHours:
          type: number
          minimum: 0
        contributionPoints:
          type: number
          minimum: 0
        reliabilityScore:
          type: number
        lastFlightAt:
          type:
            - string
            - 'null'
          format: date-time
    Pagination:
      type: object
      required:
        - offset
        - limit
        - total
      properties:
        offset:
          type: integer
          minimum: 0
        limit:
          type: integer
          minimum: 1
          maximum: 100
        total:
          type: integer
          minimum: 0
    Meta:
      type: object
      required:
        - apiVersion
      properties:
        apiVersion:
          type: string
          example: '2026-07-21'
    Error:
      type: object
      required:
        - error
      properties:
        error:
          type: object
          required:
            - code
            - message
          properties:
            code:
              type: string
            message:
              type: string
  securitySchemes:
    vaApiKey:
      type: http
      scheme: bearer
      bearerFormat: fhva_live_...
      description: >-
        A read-only FlyHub VA API key created from Ownership. Keep it on your
        integration server.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.