> ## 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.

# Agent-wide pay feed

> Every deal this agent represents, whoever the money reached (ENG-1413). The agent is taken from the access token; do not send an athlete ID. Membership comes from the representation the application recorded, not from the agent's current roster, so history remains after unlink. Gross, MOGL retained, and net come from stripe_payout once paid. In-flight rows expose deliverable price as gross_amount and leave commission/net null. Athlete-direct deals (Notre Dame) are included with amount_to_agent 0. No subscription or card-charge rows.
     *
     * Filter names match the athlete Pay endpoints, so the same filter bar drives both views.



## OpenAPI

````yaml /storage/api-docs/api-docs.json get /agent/pay-feed
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 - Pay
    description: 'Agent-wide payout feed: money MOGL sends the agent through Stripe Express'
  - 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 Assistant Tools
    description: >-
      Server-to-server Athlete Assistant tool gateway used by mogl-ai-service.
      Eight Laravel tools share POST /internal/ai-assistant/tools/{tool}.
      search_kb is Python-local and is not in this path enum.
  - name: Affiliate
    description: Athlete affiliate links & tracking
paths:
  /agent/pay-feed:
    get:
      tags:
        - Agent - Pay
      summary: Agent-wide pay feed
      description: >-
        Every deal this agent represents, whoever the money reached (ENG-1413).
        The agent is taken from the access token; do not send an athlete ID.
        Membership comes from the representation the application recorded, not
        from the agent's current roster, so history remains after unlink. Gross,
        MOGL retained, and net come from stripe_payout once paid. In-flight rows
        expose deliverable price as gross_amount and leave commission/net null.
        Athlete-direct deals (Notre Dame) are included with amount_to_agent 0.
        No subscription or card-charge rows.
             *
             * Filter names match the athlete Pay endpoints, so the same filter bar drives both views.
      operationId: agentPayFeed
      parameters:
        - name: page
          in: query
          description: Page number
          required: false
          schema:
            type: integer
            example: 1
        - name: limit
          in: query
          description: Rows per page (default 10)
          required: false
          schema:
            type: integer
            example: 10
        - name: status
          in: query
          required: false
          schema:
            type: string
            enum:
              - Pending
              - Deliverable Submitted
              - Deliverable Approved
              - Payment Processing
              - Paid
              - Failed
            example: Paid
        - name: search_keyword
          in: query
          description: Matches deal name or athlete name
          required: false
          schema:
            type: string
            example: Spring
        - name: min_amount
          in: query
          description: Minimum gross_amount, the deal value the row leads with
          required: false
          schema:
            type: number
            format: float
            example: 10
        - name: max_amount
          in: query
          description: Maximum gross_amount, same basis as min_amount
          required: false
          schema:
            type: number
            format: float
            example: 500
        - name: payment_mode
          in: query
          description: >-
            Payout method as stored on the payout row. 'All' (the All Modes
            option) is treated as no filter. Only paid rows carry a mode, so
            filtering by one drops in-flight rows.
          required: false
          schema:
            type: string
            enum:
              - All
              - Stripe
              - PayPal
              - Paid Manually
            example: Stripe
        - name: paymentDate
          in: query
          description: 'Single date picker: matches the row''s most recent activity date'
          required: false
          schema:
            type: string
            example: '2026-09-08'
      responses:
        '200':
          description: Paginated Agent Pay rows
          content:
            application/json:
              schema:
                properties:
                  data:
                    type: array
                    items:
                      properties:
                        payout_id:
                          type: integer
                          example: 1692
                          nullable: true
                        transaction_id:
                          type: integer
                          example: 154880
                          nullable: true
                        athlete_id:
                          type: integer
                          example: 15901
                        athlete_name:
                          type: string
                          example: Jordan Reyes
                        athlete_profile_image:
                          type: string
                          example: storage/images/profile_photo/abc.png
                          nullable: true
                        job_id:
                          type: integer
                          example: 2104
                        job_name:
                          type: string
                          example: Spring Campaign
                        partner_name:
                          type: string
                          example: Example Collective
                          nullable: true
                        deliverable_id:
                          type: integer
                          example: 5312
                        deliverable_name:
                          type: string
                          example: 1st Deliverable
                        deliverable_type:
                          type: string
                          example: Instagram Post
                          nullable: true
                        gross_amount:
                          description: >-
                            Deal value. Present before payout as the deliverable
                            price. Both agent-paid and athlete-direct rows lead
                            with this.
                          type: number
                          format: float
                          example: 120
                          nullable: true
                        amount_to_agent:
                          description: >-
                            What reached the agent. 0 on an athlete-direct row,
                            whether or not it has been paid. Null while an
                            agent-paid row is still in flight.
                          type: number
                          format: float
                          example: 95
                          nullable: true
                        commission_amount:
                          description: >-
                            Everything MOGL retained (platform fee + agent
                            commission). Null until paid, and null on
                            athlete-direct rows. Do not label this as the
                            agent's commission.
                          type: number
                          format: float
                          example: 25
                          nullable: true
                        commission_percentage:
                          description: >-
                            Agent commission rate stored on the payout. Null
                            until paid, and null on athlete-direct rows.
                          type: number
                          format: float
                          example: 5
                          nullable: true
                        agent_commission_amount:
                          description: >-
                            The agent's own commission in dollars. Null until
                            paid, and null on athlete-direct rows.
                          type: number
                          format: float
                          example: 5
                          nullable: true
                        net_amount:
                          description: >-
                            Same as amount_to_agent on an agent-paid row. Null
                            until paid, and null on athlete-direct rows.
                          type: number
                          format: float
                          example: 95
                          nullable: true
                        currency:
                          type: string
                          example: USD
                        payout_status:
                          type: string
                          enum:
                            - Pending
                            - Deliverable Submitted
                            - Deliverable Approved
                            - Payment Processing
                            - Paid
                            - Failed
                          example: Paid
                        payout_created_at:
                          type: string
                          example: '2026-08-14 09:12:03'
                          nullable: true
                        payout_arrival_date:
                          type: string
                          example: '2026-08-18 00:00:00'
                          nullable: true
                        payment_mode:
                          description: >-
                            Where the money actually went, which on an
                            athlete-direct row is the athlete's own destination.
                          type: string
                          example: Stripe
                          nullable: true
                        payment_received_on_account_type:
                          type: string
                          example: checking
                          nullable: true
                        payment_received_on_detail:
                          type: string
                          example: '4321'
                          nullable: true
                        transfer_reference:
                          type: string
                          example: tr_1QiC2qH7wGo4cnrNzJaTk4z8
                          nullable: true
                        remark:
                          type: string
                          nullable: true
                        payout_recipient:
                          description: >-
                            Who the money went to. The completed payout is
                            authoritative; before that it is the application's
                            snapshot.
                          type: string
                          enum:
                            - Athlete
                            - Agent
                          example: Agent
                      type: object
                  links:
                    type: object
                  meta:
                    type: object
                type: object
        '401':
          description: Unauthenticated
        '403':
          description: Caller is not an Agent
      security:
        - bearerAuth: []
components:
  securitySchemes:
    bearerAuth:
      type: http
      description: >-
        JWT Bearer token authentication. Use the /api/login endpoint to obtain a
        token.
      scheme: bearer
      bearerFormat: JWT

````