Invoke one Athlete Assistant tool
Server-to-server gateway used by mogl-ai-service. The path accepts exactly seven Laravel tools: get_portfolio, search_deals, get_deal, get_timeline, get_deal_folder, propose_brand_draft, and propose_support. search_kb is Python-local and is rejected here. Auth: both X-API-KEY and X-Mogl-Turn-Token are required; athlete identity is derived from the turn token and is never accepted in the body. HTTP 200 carries successful results and expected domain/tool errors (ok=false). HTTP 401 is reserved for missing or invalid credentials. HTTP 422 returns invalid_params. HTTP 503 returns unavailable. Unknown, deleted, unauthorized, and cross-athlete records use not_found. get_portfolio list rows with total_count at most three may include next_work_item for remaining Deal Folder or completion work; next_due_* remains the calendar deadline and may name a different deliverable. Compact lists of four or more omit next_work_item. Count and overview actions do not load folder work. get_deal_folder is a live read-only Deal Folder read for one host-bound standard job. Fan requests return fan_deal_not_allowed. Optional file_id must already appear as deal_folder_file: on a successful current-turn result. File states are awaiting_upload, awaiting_brand_review, revision_requested, approved, voided, and unknown; legacy submitted is rejected. Empty non-voided rows are awaiting_upload even when not applicable. approved requires a real approved file. unknown is non-actionable. remaining_upload_slots is capacity, not outstanding work. Ordinary latest_brand_comment is optional context. Formal revision reasons come only from active_revision_request. Focused comments include kind=comment|revision_request. File approval of an In-Progress deliverable continues through completion_mode and proof_of_work_required. Comments and files are bounded. The tool never marks comments read or changes folder state. get_deal.deal_folder is compatibility data only. Selected-deal focus (selected_deal_id) is host-derived on the AI loop result consumed by Laravel; it is not a field on this tool response and is not exposed on public athlete chat/history items.
Authorizations
Server-to-Server API Key for internal/lambda/cron calls
Signed short-lived AI turn token. The gateway derives athlete identity from this header; athlete IDs are never accepted in the tool body.
Headers
Server-to-server API key.
Signed short-lived turn token. Supplies athlete identity.
Path Parameters
Laravel Athlete Assistant tool name. Seven values are accepted. Seven Laravel Athlete Assistant tools. search_kb is Python-local and is not accepted on this path.
get_portfolio, search_deals, get_deal, get_timeline, get_deal_folder, propose_brand_draft, propose_support "get_deal_folder"
Body
Closed per-tool input. Extra properties are rejected. get_deal_folder requires deal_id; deal_type defaults to job; file_id is optional and must already be trusted on the current turn.
- Option 1
- Option 2
- Option 3
- Option 4
- Option 5
- Option 6
Host-bound authorized standard job ID.
x >= 14821
job, fan_req "job"
Optional focused file. Must already appear as deal_folder_file:{id} on a successful current-turn result.
x >= 1901