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

# Get the AI waitlist cell state

> Single source of truth for the authenticated athlete's NIL Feed waitlist cell. Returns `not_joined` with facepile and peer counts, `waiting` with position, athletes_ahead, joined_at, and already_joined=true, or `access_granted` when AI access is enabled. No request body is accepted.



## OpenAPI

````yaml /storage/api-docs/api-docs.json get /athlete/ai-waitlist/status
openapi: 3.0.0
info:
  title: MOGL Core API
  description: >-
    MOGL Platform Core API — powering athlete NIL deals, brand partnerships,
    agent management, payments, messaging, and more.
     *
     * ## Authentication
     * - **JWT Bearer Token**: Most endpoints require a Bearer token obtained via `/api/login`.
     * - **Server-to-Server API Key**: Internal/lambda/cron endpoints use an `X-API-KEY` header.
     *
     * ## Rate Limiting
     * - Registration & login endpoints: 4–15 requests per minute
     * - Public/influencer endpoints: 200 requests per minute
     * - Authenticated endpoints: standard Laravel throttle
  version: 1.0.0
servers:
  - url: http://localhost/mogl/mogl-backend/api
    description: Local
  - url: https://dev-api.mogl.online/api
    description: Dev
  - url: https://staging-api.mogl.online/api
    description: Staging
  - url: https://api.mogl.online/api
    description: Production
security:
  - bearerAuth: []
tags:
  - name: Authentication
    description: Login, registration, password reset
  - name: User Registration - Common
    description: Common user registration & email check
  - name: User Registration - Athlete
    description: Athlete registration & onboarding steps
  - name: User Registration - Partner
    description: Partner/Brand registration & onboarding steps
  - name: User Registration - Agent
    description: Agent registration & onboarding steps
  - name: User Registration - Fan
    description: Fan registration & onboarding steps
  - name: User Profile
    description: User profile management, settings, social media
  - name: Athlete
    description: 'Athlete-specific endpoints: search, details, availability'
  - name: Athlete - Availability Confirmation
    description: Post-hiring availability confirmation workflow
  - name: Athlete - NIL Feed
    description: Athlete NIL feed and partner search
  - name: Athlete - AI Assistant
    description: >-
      AI-powered job assistant for athletes — chat, conversation history, read
      state, and clarification drafts
  - name: Athlete - AI Waitlist
    description: AI Athlete Assistant waitlist status, social proof, and joining
  - name: Partner
    description: Partner/Brand-specific endpoints
  - name: Partner - External Job
    description: External job link & applicant management
  - name: Partner - Deliverable Report
    description: Deliverable detail reports for brands
  - name: Partner - Screening Questions
    description: Screening question reports
  - name: Partner - Contract Management
    description: Brand contract management with athletes
  - name: Partner - Content Library
    description: Brand content library for deliverable assets
  - name: Agent
    description: Agent profile, athlete management, contracts
  - name: Agent - Athletes
    description: Agent-athlete relationship management
  - name: Agent - Stripe
    description: Agent payment methods & billing via Stripe
  - name: Agent - Contracts
    description: Agent athlete contract management
  - name: Agent - Availability Confirmation
    description: Agent managing athlete job availability
  - name: Jobs
    description: Job/deal CRUD, search, invitations, hiring, deliverables
  - name: Deals
    description: Deal listing, my deals, bulk operations
  - name: Deal Folder
    description: >-
      Deal folder file workflow — uploads, replacements, approvals, revisions,
      comments. Accessible by athlete, partner/brand, agent, and iOS clients
      (per-action authorisation enforced server-side).
  - name: Deal Folder iOS API
    description: >-
      iOS-only direct-to-S3 multipart upload endpoints for deal folder files
      (initiate/complete for new uploads and replacements). Web clients should
      use the standard `Deal Folder` upload/replace endpoints instead.
  - name: Chat
    description: Messaging, chat contacts, notifications
  - name: Notifications
    description: Notification preferences, in-app notifications
  - name: Payments
    description: Stripe payments, payment history, cards, bulk pay
  - name: Subscription
    description: Brand subscription plans & management
  - name: Public Pages
    description: Public content endpoints (no auth required)
  - name: Public - Influencer/SEO
    description: Public influencer discovery, sitemaps, directories
  - name: Services
    description: Athlete service marketplace
  - name: iOS Device
    description: iOS device tokens, live activities
  - name: Onboarding Tutorial
    description: Onboarding tutorial progress
  - name: MOGL Rosters
    description: Roster management & display
  - name: Internal / Cron
    description: Server-to-server and cron job endpoints
  - name: Internal - AI Athlete Assistant Tools
    description: >-
      Dual-authenticated, athlete-scoped tool gateway used only by the AI
      service
  - name: Affiliate
    description: Athlete affiliate links & tracking
paths:
  /athlete/ai-waitlist/status:
    get:
      tags:
        - Athlete - AI Waitlist
      summary: Get the AI waitlist cell state
      description: >-
        Single source of truth for the authenticated athlete's NIL Feed waitlist
        cell. Returns `not_joined` with facepile and peer counts, `waiting` with
        position, athletes_ahead, joined_at, and already_joined=true, or
        `access_granted` when AI access is enabled. No request body is accepted.
      operationId: aiAthleteAssistantWaitlistStatus
      responses:
        '200':
          description: Current server-driven waitlist state.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AiWaitlistCellState'
        '401':
          description: Unauthenticated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedResponse'
        '500':
          description: Waitlist status could not be loaded.
          content:
            application/json:
              schema:
                properties:
                  status:
                    type: string
                    example: error
                  message:
                    type: string
                    example: >-
                      Unable to load the AI Athlete Assistant waitlist. Please
                      try again.
                type: object
      security:
        - bearerAuth: []
components:
  schemas:
    AiWaitlistCellState:
      required:
        - state
        - on_waitlist
        - ai_enabled
      properties:
        state:
          type: string
          enum:
            - not_joined
            - waiting
            - access_granted
          example: waiting
        on_waitlist:
          type: boolean
          example: true
        ai_enabled:
          type: boolean
          example: false
        position:
          description: Waiting state only; deterministic FIFO position.
          type: integer
          minimum: 1
          example: 1205
        athletes_ahead:
          description: Waiting state only; position minus one.
          type: integer
          minimum: 0
          example: 1204
        total:
          description: Not-joined and waiting states; active total visible to this viewer.
          type: integer
          minimum: 0
          example: 8200
        joined_at:
          description: Waiting state only.
          type: string
          format: date-time
          example: '2026-07-10T18:00:00Z'
        already_joined:
          description: >-
            Waiting state only. Status responses return true; a newly created
            join response returns false.
          type: boolean
          example: true
        social_proof:
          $ref: '#/components/schemas/AiWaitlistSocialProof'
      type: object
    UnauthorizedResponse:
      properties:
        message:
          type: string
          example: Unauthenticated.
      type: object
    AiWaitlistSocialProof:
      properties:
        facepile:
          description: >-
            Present for not_joined; at most five other active athletes, newest
            first.
          type: array
          items:
            $ref: '#/components/schemas/AiWaitlistFacepileAthlete'
        additional_count:
          description: >-
            Exact number of other active athletes beyond the five facepile
            entries.
          type: integer
          minimum: 0
          example: 8194
        same_university_count:
          description: Null when the viewer has no known university.
          type: integer
          minimum: 0
          example: 21
          nullable: true
        university_name:
          type: string
          example: Columbia University
          nullable: true
        same_sport_count:
          description: Null when the viewer has no known sport.
          type: integer
          minimum: 0
          example: 341
          nullable: true
        sport_name:
          type: string
          example: Men's Football
          nullable: true
      type: object
    AiWaitlistFacepileAthlete:
      required:
        - athlete_id
      properties:
        athlete_id:
          type: integer
          example: 101
        avatar_url:
          type: string
          format: uri
          example: https://dfxdmt3q663j6.cloudfront.net/storage/profile.jpg
          nullable: true
      type: object
  securitySchemes:
    bearerAuth:
      type: http
      description: >-
        JWT Bearer token authentication. Use the /api/login endpoint to obtain a
        token.
      scheme: bearer
      bearerFormat: JWT

````