API documentation

The AI Frontrunner API is command-based in v1. Read the docs publicly, then create an account to generate API tokens and unlock plan-based access.

Authentication

Use either `Authorization: Bearer YOUR_API_TOKEN` or `X-API-Key: YOUR_API_TOKEN`. Tokens are created from your account after sign-up.

Version
2026-04-12
Base URL
https://ai-frontrunner.com/public-api/v1
Command count
19

Getting started

1. Inspect your token
curl https://ai-frontrunner.com/public-api/v1/me \
  -H "Authorization: Bearer YOUR_API_TOKEN"
2. Inspect available commands for your plan
curl https://ai-frontrunner.com/public-api/v1/commands \
  -H "Authorization: Bearer YOUR_API_TOKEN"
3. Read notification settings
curl https://ai-frontrunner.com/public-api/v1/notification-settings \
  -H "Authorization: Bearer YOUR_API_TOKEN"
4. Execute a command
curl https://ai-frontrunner.com/public-api/v1/commands/list_tickers \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -X POST \
  -d '{
  "params": {
    "limit": 25
  }
}'

Command catalog

Each command declares a minimum plan. Free is read-only. Higher plans unlock write actions automatically.

list_tickers
List tracked tickers with idea, play, mention, and recommendation summary.
tickersmin free
Input
{
  "limit": "integer<=200"
}
Example
{
  "command": "list_tickers",
  "params": {
    "limit": 25
  }
}
get_ticker
Load the public research view for one ticker.
tickersmin free
Input
{
  "ticker": "string"
}
Example
{
  "command": "get_ticker",
  "params": {
    "ticker": "TSM"
  }
}
list_sources
List all tracked sources and their current high-level state.
sourcesmin free
Input
{
  "limit": "integer<=200"
}
Example
{
  "command": "list_sources",
  "params": {
    "limit": 25
  }
}
get_source
Load a public detail view for one source, including recent events and current ideas.
sourcesmin free
Input
{
  "source_id": "integer"
}
Example
{
  "command": "get_source",
  "params": {
    "source_id": 7
  }
}
list_plays
List current and historical plays.
playsmin free
Input
{
  "active_limit": "integer<=100",
  "historical_limit": "integer<=100"
}
Example
{
  "command": "list_plays",
  "params": {
    "active_limit": 20,
    "historical_limit": 20
  }
}
get_play
Load one play and its related source events.
playsmin free
Input
{
  "play_id": "integer"
}
Example
{
  "command": "get_play",
  "params": {
    "play_id": 1
  }
}
list_themes
List tracked themes and current state.
themesmin free
Input
{
  "limit": "integer<=100"
}
Example
{
  "command": "list_themes",
  "params": {
    "limit": 25
  }
}
get_theme
Load one theme by slug.
themesmin free
Input
{
  "slug": "string"
}
Example
{
  "command": "get_theme",
  "params": {
    "slug": "ai-infrastructure"
  }
}
list_market_calendar_events
List market calendar events for a date window.
calendarmin free
Input
{
  "start": "YYYY-MM-DD",
  "end": "YYYY-MM-DD"
}
Example
{
  "command": "list_market_calendar_events",
  "params": {
    "start": "2026-04-13",
    "end": "2026-04-20"
  }
}
get_ticker_recommendations
Load play-driven recommendation history for one ticker.
tickersmin free
Input
{
  "ticker": "string",
  "limit": "integer<=100"
}
Example
{
  "command": "get_ticker_recommendations",
  "params": {
    "ticker": "NVDA",
    "limit": 25
  }
}
list_source_credibility
Compare tracked sources by credibility score and hit rate.
sourcesmin free
Input
{
  "limit": "integer<=100"
}
Example
{
  "command": "list_source_credibility",
  "params": {
    "limit": 25
  }
}
get_source_credibility
Load credibility history and examples for one source.
sourcesmin free
Input
{
  "source_id": "integer"
}
Example
{
  "command": "get_source_credibility",
  "params": {
    "source_id": 7
  }
}
get_market_digest
Load the market-wide daily digest for a date or the latest available market day.
marketmin free
Input
{
  "market_date": "YYYY-MM-DD?"
}
Example
{
  "command": "get_market_digest",
  "params": {
    "market_date": "2026-04-10"
  }
}
get_ticker_daily_explanation
Load the stored after-close explanation for one ticker.
marketmin free
Input
{
  "ticker": "string",
  "market_date": "YYYY-MM-DD?"
}
Example
{
  "command": "get_ticker_daily_explanation",
  "params": {
    "ticker": "NVDA",
    "market_date": "2026-04-10"
  }
}
get_notification_settings
Load the authenticated user's notification preferences.
accountmin free
Input
{}
Example
{
  "command": "get_notification_settings",
  "params": {}
}
update_notification_settings
Update the authenticated user's notification preferences.
accountmin free
Input
{
  "delivery": {
    "telegramEnabled": "boolean?"
  },
  "channels": {
    "tickerRecommendationChanges": "boolean?",
    "operatorTriggerAlerts": "boolean?",
    "dailyMarketDigest": "boolean?",
    "weeklyOperatorDigest": "boolean?",
    "reportDeliveries": "boolean?"
  },
  "customPrompt": {
    "enabled": "boolean?",
    "prompt": "string?"
  }
}
Example
{
  "command": "update_notification_settings",
  "params": {
    "channels": {
      "dailyMarketDigest": false
    },
    "customPrompt": {
      "enabled": true,
      "prompt": "Focus on AI, semis, and my positions"
    }
  }
}
create_source
Register a new source URL.
sourcesmin pro
Input
{
  "source_type": "string",
  "source_input": "string",
  "description": "string?"
}
Example
{
  "command": "create_source",
  "params": {
    "source_type": "youtube",
    "source_input": "https://www.youtube.com/@allin"
  }
}
evaluate_source
Queue a source credibility evaluation.
sourcesmin pro
Input
{
  "source_id": "integer",
  "mode": "string?"
}
Example
{
  "command": "evaluate_source",
  "params": {
    "source_id": 7,
    "mode": "historical_bootstrap"
  }
}
refresh_source_plays
Queue a historical play refresh for a source.
sourcesmin pro
Input
{
  "source_id": "integer"
}
Example
{
  "command": "refresh_source_plays",
  "params": {
    "source_id": 7
  }
}