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-06-04
Base URL
https://ai-frontrunner.com/public-api/v1
Command count
35

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 and includes the snapshot-backed public author, ticker, ticker-thesis, market-thesis, source, post, calendar, and notification surfaces. Higher plans unlock write actions and queued research.

list_tickers
List tracked assets with idea, Ticker Thesis, mention, and recommendation summary.
assetsmin free
Input
{
  "limit": "integer<=200"
}
Example
{
  "command": "list_tickers",
  "params": {
    "limit": 25
  }
}
get_ticker
Load the public research view for one asset.
assetsmin free
Input
{
  "ticker": "string"
}
Example
{
  "command": "get_ticker",
  "params": {
    "ticker": "NVDA"
  }
}
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": 8
  }
}
list_posts
List recently ingested source posts with extracted ticker, idea, and Ticker Thesis counts.
postsmin free
Input
{
  "limit": "integer<=200",
  "source_id": "integer?",
  "ticker": "string?"
}
Example
{
  "command": "list_posts",
  "params": {
    "limit": 25,
    "ticker": "NVDA"
  }
}
get_post
Load one source post with extracted ideas, Ticker Theses, and linked evidence. Raw content is only returned when include_raw is true on Pro.
postsmin free
Input
{
  "post_id": "integer",
  "include_raw": "boolean?"
}
Example
{
  "command": "get_post",
  "params": {
    "post_id": 5264
  }
}
list_plays
List current and historical Ticker Theses.
ticker_thesesmin free
Input
{
  "active_limit": "integer<=100",
  "historical_limit": "integer<=100",
  "snapshot_limit": "integer<=100"
}
Example
{
  "command": "list_plays",
  "params": {
    "active_limit": 20,
    "historical_limit": 20,
    "snapshot_limit": 20
  }
}
get_play
Load one Ticker Thesis and its related source events.
ticker_thesesmin free
Input
{
  "play_id": "integer"
}
Example
{
  "command": "get_play",
  "params": {
    "play_id": 312
  }
}
list_leaderboard
Rank sources by balanced virtual-account performance, including best and worst credited Ticker Theses.
leaderboardmin free
Input
{
  "limit": "integer<=100"
}
Example
{
  "command": "list_leaderboard",
  "params": {
    "limit": 25
  }
}
list_backtests
List recent deterministic backtests with registry summary counts.
backtestsmin free
Input
{
  "limit": "integer<=100"
}
Example
{
  "command": "list_backtests",
  "params": {
    "limit": 25
  }
}
get_backtest
Load one backtest with linked idea, source-event, research-run, metrics, and comparable history.
backtestsmin free
Input
{
  "backtest_id": "integer"
}
Example
{
  "command": "get_backtest",
  "params": {
    "backtest_id": 42
  }
}
list_public_authors
List the snapshot-backed public author leaderboard used by /authors.
public_pagesmin free
Input
{
  "limit": "integer<=200"
}
Example
{
  "command": "list_public_authors",
  "params": {
    "limit": 25
  }
}
get_public_author
Load one public author page payload by slug.
public_pagesmin free
Input
{
  "slug": "string"
}
Example
{
  "command": "get_public_author",
  "params": {
    "slug": "ticker-symbol-you-2"
  }
}
list_public_tickers
List the snapshot-backed public ticker leaderboard used by /public-tickers.
public_pagesmin free
Input
{
  "limit": "integer<=200"
}
Example
{
  "command": "list_public_tickers",
  "params": {
    "limit": 25
  }
}
get_public_ticker
Load one public ticker page payload by symbol.
public_pagesmin free
Input
{
  "ticker": "string"
}
Example
{
  "command": "get_public_ticker",
  "params": {
    "ticker": "NVDA"
  }
}
list_public_plays
List the proof-quality-ranked public Ticker Thesis leaderboard used by /ticker-theses.
public_pagesmin free
Input
{
  "limit": "integer<=200"
}
Example
{
  "command": "list_public_plays",
  "params": {
    "limit": 25
  }
}
get_public_play
Load one public Ticker Thesis page payload by slug.
public_pagesmin free
Input
{
  "slug": "string"
}
Example
{
  "command": "get_public_play",
  "params": {
    "slug": "satya-nadella-how-microsoft-thinks-about-agi-312"
  }
}
list_theses
List tracked theses and current state. Optional filters mirror the thesis dashboard.
thesesmin free
Input
{
  "limit": "integer<=100",
  "status": "string?",
  "thesis_type": "string?",
  "sort_by": "updated_at|conviction_score|evidence_score|name",
  "sort_direction": "asc|desc"
}
Example
{
  "command": "list_theses",
  "params": {
    "limit": 25,
    "status": "watch",
    "sort_by": "evidence_score"
  }
}
get_thesis
Load one thesis by slug.
thesesmin free
Input
{
  "slug": "string"
}
Example
{
  "command": "get_thesis",
  "params": {
    "slug": "ai-compute-demand-remains-structurally-strong"
  }
}
get_thesis_activity
Load the activity log for a thesis so consumers can trace why it was created or changed.
thesesmin free
Input
{
  "slug": "string",
  "limit": "integer<=200"
}
Example
{
  "command": "get_thesis_activity",
  "params": {
    "slug": "ai-compute-demand-remains-structurally-strong",
    "limit": 50
  }
}
get_thesis_score_explanation
Explain the stored conviction and evidence scores using the thesis evidence and activity log.
thesesmin free
Input
{
  "slug": "string"
}
Example
{
  "command": "get_thesis_score_explanation",
  "params": {
    "slug": "ai-compute-demand-remains-structurally-strong"
  }
}
get_thesis_graph
Load the thesis graph nodes and edges used by the Market Theses graph surface.
thesesmin free
Input
{
  "limit": "integer<=120"
}
Example
{
  "command": "get_thesis_graph",
  "params": {
    "limit": 80
  }
}
list_market_calendar_labels
List market calendar label definitions used to color macro, earnings, and prediction-market events.
calendarmin free
Input
{}
Example
{
  "command": "list_market_calendar_labels",
  "params": {}
}
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 Ticker Thesis-driven recommendation history for one asset.
assetsmin 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 Ticker Thesis refresh for a source.
sourcesmin pro
Input
{
  "source_id": "integer"
}
Example
{
  "command": "refresh_source_plays",
  "params": {
    "source_id": 7
  }
}
run_thesis_deep_research
Queue an OpenAI-backed deep-research run for one thesis.
thesesmin pro
Input
{
  "slug": "string"
}
Example
{
  "command": "run_thesis_deep_research",
  "params": {
    "slug": "ai-compute-demand-remains-structurally-strong"
  }
}