> ## 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 external job Campaign Tracker (hired athletes)

> Paginated Campaign Tracker list for the external hired view. One row per hired, non-voided athlete + deliverable + file (milestones and files are merged into flat rows). Supports date range, sort, athlete filter, and rich AG-Grid style column filters. Requires valid external token (middleware).



## OpenAPI

````yaml /storage/api-docs/api-docs.json post /external/getExternalJobCampaignTracker
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:
  /external/getExternalJobCampaignTracker:
    post:
      tags:
        - Partner - External Job
      summary: Get external job Campaign Tracker (hired athletes)
      description: >-
        Paginated Campaign Tracker list for the external hired view. One row per
        hired, non-voided athlete + deliverable + file (milestones and files are
        merged into flat rows). Supports date range, sort, athlete filter, and
        rich AG-Grid style column filters. Requires valid external token
        (middleware).
      operationId: getExternalJobCampaignTracker
      requestBody:
        required: true
        content:
          application/json:
            schema:
              required:
                - token
              properties:
                token:
                  description: External job link token (required by middleware).
                  type: string
                  example: abc123def456
                page:
                  description: Page number (default 1).
                  type: integer
                  example: 1
                  nullable: true
                limit:
                  description: Items per page, max 100 (default 12).
                  type: integer
                  example: 15
                  nullable: true
                athlete_id:
                  description: Filter to a single athlete ID.
                  type: integer
                  example: null
                  nullable: true
                date_filter_range:
                  description: >-
                    Date range: `All`, `last_30_days`, `last_week`, `this_week`,
                    or `MM/DD/YYYY-MM/DD/YYYY`.
                  type: string
                  example: All
                  nullable: true
                sort_column:
                  description: Column to sort by (e.g. `hired_date`, `athlete`, `score`).
                  type: string
                  example: hired_date
                  nullable: true
                sort_order:
                  type: string
                  enum:
                    - asc
                    - desc
                    - ASC
                    - DESC
                  example: desc
                  nullable: true
                timezone_diff:
                  description: Client timezone offset (hours).
                  type: number
                  format: float
                  example: 5.5
                  nullable: true
                filter:
                  description: >-
                    AG-Grid style column filters. Each key is a column name; the
                    value is either a text/number/date filter object
                    ({filterType, type, filter | dateFrom, dateTo}) or an array
                    of {id, name} entries for enum-style columns (availability,
                    deliverable_status, file_preview, file_status).
                  type: object
                  example:
                    athlete:
                      filterType: text
                      type: contains
                      filter: rehan
                    university:
                      filterType: text
                      type: contains
                      filter: Abilene
                    sport:
                      filterType: text
                      type: contains
                      filter: Foot
                    score:
                      filterType: number
                      type: lessThan
                      filter: 50
                    hired_date:
                      filterType: date
                      type: inRange
                      dateFrom: '2025-10-01'
                      dateTo: '2025-10-31'
                    availability:
                      - id: Confirmed
                        name: Confirmed
                      - id: Unconfirmed
                        name: Unconfirmed
                    instagram:
                      filterType: number
                      type: greaterThan
                      filter: 100
                    tiktok:
                      filterType: number
                      type: greaterThan
                      filter: 0
                    twitter:
                      filterType: number
                      type: equals
                      filter: 1
                    deliverable_name:
                      filterType: text
                      type: contains
                      filter: Instagram Post
                    deliverable_type:
                      filterType: text
                      type: contains
                      filter: Video
                    deliverable_due_date:
                      filterType: date
                      type: lessThan
                      dateFrom: '2025-12-31'
                    deliverable_status:
                      - id: Needs Approval
                        name: Needs Approval
                      - id: Approved
                        name: Approved
                    deliverable_live_link:
                      filterType: text
                      type: contains
                      filter: instagram.com
                    file_name:
                      filterType: text
                      type: contains
                      filter: .mp4
                    file_preview:
                      - id: Preview
                        name: Preview
                      - id: No Preview
                        name: No Preview
                    file_uploaded_at:
                      filterType: date
                      type: inRange
                      dateFrom: '2025-10-01'
                      dateTo: '2025-10-31'
                    file_uploaded_by:
                      filterType: text
                      type: contains
                      filter: rehan
                    revision_comments:
                      filterType: text
                      type: contains
                      filter: please redo
                    file_status:
                      - id: Revision Requested
                        name: Revision Requested
                      - id: Voided
                        name: Voided
                  nullable: true
              type: object
      responses:
        '200':
          description: >-
            Campaign Tracker paginated list (hired athletes + deliverable/file
            merge)
      security: []
components:
  securitySchemes:
    bearerAuth:
      type: http
      description: >-
        JWT Bearer token authentication. Use the /api/login endpoint to obtain a
        token.
      scheme: bearer
      bearerFormat: JWT

````