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

# Mobile version gate

> Version-gate + invite flags for native clients (60s cached). Public.



## OpenAPI

````yaml /api-reference/openapi.json get /api/mobile/version
openapi: 3.1.0
info:
  title: D-Sports API
  description: >-
    Public API for the D-Sports fan engagement platform (PWA backend). Most
    endpoints require Clerk Bearer authentication.
  version: 1.0.0
servers:
  - url: https://app.d-sports.org
    description: Production
  - url: http://localhost:3004
    description: Local development
security:
  - bearerAuth: []
tags:
  - name: Auth
    description: Authentication and token exchange
  - name: Logout
    description: Session logout
  - name: Mobile auth
    description: OAuth flow for native apps
  - name: Teams
    description: Teams list and follow/unfollow
  - name: Leaderboard
    description: Leaderboards, seasons, winners, stats
  - name: Locker room
    description: Social feed posts, comments, reactions
  - name: Packs
    description: Packs list, purchase, open
  - name: User
    description: Profile, onboarding, follow, search, privacy
  - name: Quests
    description: Quests and progress
  - name: Rewards
    description: Rewards claim and redeem
  - name: Wallets
    description: Wallets and coin prices
  - name: Checkout
    description: Crypto and D-Sports Cash checkout
  - name: D-Sports Cash
    description: D-Sports Cash balance
  - name: Dashboard
    description: Dashboard stats and balance
  - name: Products
    description: Products and packs catalog
  - name: Webhooks
    description: RevenueCat webhook
  - name: Misc
    description: Image proxy, crypto prices, upload, feedback
  - name: Auth and onboarding
    description: Domain grouping for auth, profile, onboarding, and identity flows
  - name: Social and locker room
    description: Domain grouping for social feed, follows, and community interactions
  - name: Gamification
    description: >-
      Domain grouping for quests, leaderboards, points-facing outcomes, and
      rewards
  - name: Commerce and purchases
    description: >-
      Domain grouping for checkout, cash balance, webhooks, and store purchase
      flows
  - name: Collectibles and packs
    description: Domain grouping for pack lifecycle and collectible inventory
  - name: Wallet and web3
    description: Domain grouping for wallet and crypto-support operations
  - name: Moderation and reporting
    description: >-
      Domain grouping for user-facing report submission and moderation-adjacent
      endpoints
  - name: Platform and infrastructure
    description: >-
      Domain grouping for utility, infrastructure, and platform support
      endpoints
  - name: Rep
    description: Fan / Club / Player / Direct Rep earn, breakdown, and ledger
  - name: Engage
    description: Engage-domain Rep and related mobile contracts
  - name: Admin
    description: Staff-only admin operations
  - name: Binders
    description: Digital binder inventory, PIN, and card transfer
  - name: Games
    description: Team mini-game catalog and play routes
  - name: Game Engine
    description: Engage native catalog and server-authoritative daily session lifecycle
  - name: Events
    description: Game schedule, Game Center, chat, presence, and ratings
  - name: Notifications
    description: Authenticated in-app inbox
  - name: Config
    description: Public catalogs and support matrices
  - name: Discovery
    description: Suggested fans and teams
  - name: Leagues
    description: League metadata and branding
  - name: Marketplace
    description: Listings, bids, offers, cart, and shop merchandising
  - name: KYC
    description: Identity verification session helpers
paths:
  /api/mobile/version:
    get:
      tags:
        - Config
      summary: Mobile version gate
      description: Version-gate + invite flags for native clients (60s cached). Public.
      responses:
        '200':
          description: '{ success, data: MobileVersionData }'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MobileVersionSuccess'
        '404':
          description: App version config not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LaunchGateError'
        '500':
          description: Failed to load app version config
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LaunchGateError'
      security: []
components:
  schemas:
    MobileVersionSuccess:
      type: object
      properties:
        success:
          type: boolean
          enum:
            - true
        data:
          $ref: '#/components/schemas/MobileVersionData'
      required:
        - success
        - data
    LaunchGateError:
      type: object
      properties:
        success:
          type: boolean
          enum:
            - false
        error:
          type: string
        code:
          type: string
      required:
        - success
        - error
    MobileVersionData:
      type: object
      properties:
        latestVersion:
          type: string
        iosStoreUrl:
          type: string
        iosLatestVersion:
          type:
            - string
            - 'null'
        iosTestflightUrl:
          type:
            - string
            - 'null'
        iosAppleId:
          type:
            - string
            - 'null'
        iosStoreEnabled:
          type: boolean
        androidStoreUrl:
          type: string
        androidStoreEnabled:
          type: boolean
        androidTestingUrl:
          type:
            - string
            - 'null'
        messageForce:
          type:
            - string
            - 'null'
        messageSoft:
          type:
            - string
            - 'null'
        androidApkUrl:
          type:
            - string
            - 'null'
        androidApkReleaseUrl:
          type:
            - string
            - 'null'
        androidApkVersion:
          type:
            - string
            - 'null'
        androidApkBuildId:
          type:
            - string
            - 'null'
        androidApkPublishedAt:
          type:
            - string
            - 'null'
        teamHqEnabled:
          type: boolean
        updatedAt:
          type: string
        inviteRequiredFrom:
          type:
            - string
            - 'null'
        inviteRequiredUntil:
          type:
            - string
            - 'null'
        inviteRequired:
          type: boolean
      required:
        - latestVersion
        - iosStoreUrl
        - iosLatestVersion
        - iosTestflightUrl
        - iosAppleId
        - iosStoreEnabled
        - androidStoreUrl
        - androidStoreEnabled
        - androidTestingUrl
        - messageForce
        - messageSoft
        - androidApkUrl
        - androidApkReleaseUrl
        - androidApkVersion
        - androidApkBuildId
        - androidApkPublishedAt
        - teamHqEnabled
        - updatedAt
        - inviteRequiredFrom
        - inviteRequiredUntil
        - inviteRequired
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: 'Clerk session token. Use Authorization: Bearer <token>.'

````