Every API here is available over the APIs.io API and to AI agents over MCP.
openapi: 3.2.0
info:
title: Alphabazaar Ai Leaderboard API
version: 2.2.0-socketio
contact:
name: Alpha Bazaar
url: https://alphabazaar.ai/
email: support@alphabazaar.ai
license:
name: Proprietary
termsOfService: https://www.alphabazaar.ai/legal/terms
description: 'Operations tagged Leaderboard across 2 of this provider''s published API definitions: alphabazaar-ai-openapi.yml, openapi.json. Each path carries the servers of the definition it was published in.'
servers:
- url: https://alpha-bazaar-signal-server.onrender.com
description: Production
- url: https://dev-alpha-bazaar-signal-server.onrender.com
description: Staging
security:
- HTTPBearer: []
tags:
- name: Leaderboard
description: Publisher rankings across multiple metrics
paths:
/api/leaderboard/pure-return:
get:
tags:
- Leaderboard
summary: Get Pure Return Leaderboard
description: 'Get leaderboard based on Pure Return (allocation * % return) over specified timeframe
Pure Return = Sum of (allocation_percent * signal_return_percent) for all closed signals in timeframe
This measures actual portfolio impact rather than average per signal
Args:
timeframe: 1W, 1M, 3M, 6M, 1Y, or ALL
portfolio_type: all, paper, or verified - filters signals by portfolio type'
operationId: get_pure_return_leaderboard_api_leaderboard_pure_return_get
parameters:
- name: timeframe
in: query
required: false
schema:
type: string
pattern: ^(1W|1M|3M|6M|1Y|ALL)$
description: 'Time period: 1W, 1M, 3M, 6M, 1Y, or ALL'
default: 1M
title: Timeframe
description: 'Time period: 1W, 1M, 3M, 6M, 1Y, or ALL'
- name: portfolio_type
in: query
required: false
schema:
type: string
pattern: ^(all|paper|verified)$
description: Portfolio type filter (paper/verified)
default: all
title: Portfolio Type
description: Portfolio type filter (paper/verified)
- name: min_signals
in: query
required: false
schema:
type: integer
maximum: 1000
minimum: 0
description: Minimum total signals required
default: 0
title: Min Signals
description: Minimum total signals required
- name: limit
in: query
required: false
schema:
type: integer
maximum: 500
minimum: 1
description: Maximum number of results to return
default: 100
title: Limit
description: Maximum number of results to return
- name: offset
in: query
required: false
schema:
type: integer
minimum: 0
description: Number of results to skip for pagination
default: 0
title: Offset
description: Number of results to skip for pagination
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/LeaderboardResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
security: []
servers:
- url: https://alpha-bazaar-signal-server.onrender.com
description: Production
- url: https://dev-alpha-bazaar-signal-server.onrender.com
description: Staging
/api/leaderboard/win-rate:
get:
tags:
- Leaderboard
summary: Get Win Rate Leaderboard
description: 'Get win rate leaderboard (requires 5+ closed signals in timeframe) - Uses materialized views
Args:
timeframe: 1W, 1M, 3M, 6M, 1Y, or ALL
portfolio_type: all, paper, or verified - filters signals by portfolio type'
operationId: get_win_rate_leaderboard_api_leaderboard_win_rate_get
parameters:
- name: timeframe
in: query
required: false
schema:
type: string
pattern: ^(1W|1M|3M|6M|1Y|ALL)$
description: 'Time period: 1W, 1M, 3M, 6M, 1Y, or ALL'
default: ALL
title: Timeframe
description: 'Time period: 1W, 1M, 3M, 6M, 1Y, or ALL'
- name: portfolio_type
in: query
required: false
schema:
type: string
pattern: ^(all|paper|verified)$
description: Portfolio type filter (paper/verified)
default: all
title: Portfolio Type
description: Portfolio type filter (paper/verified)
- name: min_signals
in: query
required: false
schema:
type: integer
maximum: 1000
minimum: 0
description: Minimum total signals required (default 3 to filter 1-signal publishers)
default: 3
title: Min Signals
description: Minimum total signals required (default 3 to filter 1-signal publishers)
- name: limit
in: query
required: false
schema:
type: integer
maximum: 500
minimum: 1
description: Maximum number of results to return
default: 100
title: Limit
description: Maximum number of results to return
- name: offset
in: query
required: false
schema:
type: integer
minimum: 0
description: Number of results to skip for pagination
default: 0
title: Offset
description: Number of results to skip for pagination
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/LeaderboardResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
security: []
servers:
- url: https://alpha-bazaar-signal-server.onrender.com
description: Production
- url: https://dev-alpha-bazaar-signal-server.onrender.com
description: Staging
/api/leaderboard/average-return:
get:
tags:
- Leaderboard
summary: Get Average Return Leaderboard
description: 'Get leaderboard based on Average Return per signal over specified timeframe - Uses materialized views
Average Return = Average of all signal return percentages (not weighted by allocation)
This shows pure trading skill independent of position sizing
Args:
timeframe: 1W, 1M, 3M, 6M, 1Y, or ALL
portfolio_type: all, paper, or verified - filters signals by portfolio type'
operationId: get_average_return_leaderboard_api_leaderboard_average_return_get
parameters:
- name: timeframe
in: query
required: false
schema:
type: string
pattern: ^(1W|1M|3M|6M|1Y|ALL)$
description: 'Time period: 1W, 1M, 3M, 6M, 1Y, or ALL'
default: 1M
title: Timeframe
description: 'Time period: 1W, 1M, 3M, 6M, 1Y, or ALL'
- name: portfolio_type
in: query
required: false
schema:
type: string
pattern: ^(all|paper|verified)$
description: Portfolio type filter (paper/verified)
default: all
title: Portfolio Type
description: Portfolio type filter (paper/verified)
- name: min_signals
in: query
required: false
schema:
type: integer
maximum: 1000
minimum: 0
description: Minimum total signals required
default: 0
title: Min Signals
description: Minimum total signals required
- name: limit
in: query
required: false
schema:
type: integer
maximum: 500
minimum: 1
description: Maximum number of results to return
default: 100
title: Limit
description: Maximum number of results to return
- name: offset
in: query
required: false
schema:
type: integer
minimum: 0
description: Number of results to skip for pagination
default: 0
title: Offset
description: Number of results to skip for pagination
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/LeaderboardResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
security: []
servers:
- url: https://alpha-bazaar-signal-server.onrender.com
description: Production
- url: https://dev-alpha-bazaar-signal-server.onrender.com
description: Staging
/api/leaderboard/sharpe-ratio:
get:
tags:
- Leaderboard
summary: Get Sharpe Ratio Leaderboard
description: 'Get leaderboard based on Sharpe Ratio (risk-adjusted return) over specified timeframe - Uses materialized views
Sharpe Ratio = (Average Return - Risk-free Rate) / Standard Deviation of Returns
Measures return per unit of risk (higher is better)
Args:
timeframe: 1W, 1M, 3M, 6M, 1Y, or ALL
portfolio_type: all, paper, or verified - filters signals by portfolio type'
operationId: get_sharpe_ratio_leaderboard_api_leaderboard_sharpe_ratio_get
parameters:
- name: timeframe
in: query
required: false
schema:
type: string
pattern: ^(1W|1M|3M|6M|1Y|ALL)$
description: 'Time period: 1W, 1M, 3M, 6M, 1Y, or ALL'
default: 1M
title: Timeframe
description: 'Time period: 1W, 1M, 3M, 6M, 1Y, or ALL'
- name: portfolio_type
in: query
required: false
schema:
type: string
pattern: ^(all|paper|verified)$
description: Portfolio type filter (paper/verified)
default: all
title: Portfolio Type
description: Portfolio type filter (paper/verified)
- name: min_signals
in: query
required: false
schema:
type: integer
maximum: 1000
minimum: 0
description: Minimum total signals required (default 3 to filter 1-signal publishers)
default: 3
title: Min Signals
description: Minimum total signals required (default 3 to filter 1-signal publishers)
- name: limit
in: query
required: false
schema:
type: integer
maximum: 500
minimum: 1
description: Maximum number of results to return
default: 100
title: Limit
description: Maximum number of results to return
- name: offset
in: query
required: false
schema:
type: integer
minimum: 0
description: Number of results to skip for pagination
default: 0
title: Offset
description: Number of results to skip for pagination
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/LeaderboardResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
security: []
servers:
- url: https://alpha-bazaar-signal-server.onrender.com
description: Production
- url: https://dev-alpha-bazaar-signal-server.onrender.com
description: Staging
/api/leaderboard/monetized:
get:
tags:
- Leaderboard
summary: Get Monetized Leaderboard
description: 'Get leaderboard of monetized publishers only
Returns top performing publishers who have monetization enabled (is_monetized = True)
Default returns top 5, can be adjusted with limit parameter
Args:
timeframe: 1W, 1M, 3M, 6M, 1Y, or ALL
portfolio_type: paper, verified, or None for all signals
limit: Number of results to return (1-100, default 5)'
operationId: get_monetized_leaderboard_api_leaderboard_monetized_get
parameters:
- name: timeframe
in: query
required: false
schema:
type: string
pattern: ^(1W|1M|3M|6M|1Y|ALL)$
default: ALL
title: Timeframe
description: 'Time period: 1W, 1M, 3M, 6M, 1Y, or ALL'
- name: portfolio_type
in: query
required: false
schema:
type: string
pattern: ^(paper|verified)$
title: Portfolio Type
description: Portfolio type filter (paper/verified)
- name: limit
in: query
required: false
schema:
type: integer
maximum: 100
minimum: 1
default: 5
title: Limit
description: Results per page
- name: min_signals
in: query
required: false
schema:
type: integer
maximum: 1000
minimum: 0
description: Minimum total signals required
default: 0
title: Min Signals
description: Minimum total signals required
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
security: []
servers:
- url: https://alpha-bazaar-signal-server.onrender.com
description: Production
- url: https://dev-alpha-bazaar-signal-server.onrender.com
description: Staging
/api/leaderboard/politicians:
get:
tags:
- Leaderboard
summary: Get Politician Leaderboard
description: 'Get leaderboard of politicians (insider trading tracking)
Returns trading signals from members of congress and other politicians
Filtered by publisher_type = ''politician''
Args:
timeframe: 1W, 1M, 3M, 6M, 1Y, or ALL
limit: Number of results to return (1-100, default 5)'
operationId: get_politician_leaderboard_api_leaderboard_politicians_get
parameters:
- name: timeframe
in: query
required: false
schema:
type: string
pattern: ^(1W|1M|3M|6M|1Y|ALL)$
default: ALL
title: Timeframe
description: 'Time period: 1W, 1M, 3M, 6M, 1Y, or ALL'
- name: limit
in: query
required: false
schema:
type: integer
maximum: 100
minimum: 1
default: 5
title: Limit
description: Results per page
- name: min_signals
in: query
required: false
schema:
type: integer
maximum: 1000
minimum: 0
description: Minimum total signals required
default: 0
title: Min Signals
description: Minimum total signals required
- name: sort
in: query
required: false
schema:
type: string
pattern: ^(avg_return|pure_return|win_rate|sharpe_ratio)$
description: Rank by avg_return (default), pure_return, win_rate or sharpe_ratio. Win rate and Sharpe ratio rank publishers with 5+ closed signals in the period, as their boards do
default: avg_return
title: Sort
description: Rank by avg_return (default), pure_return, win_rate or sharpe_ratio. Win rate and Sharpe ratio rank publishers with 5+ closed signals in the period, as their boards do
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
security: []
servers:
- url: https://alpha-bazaar-signal-server.onrender.com
description: Production
- url: https://dev-alpha-bazaar-signal-server.onrender.com
description: Staging
/api/leaderboard/community:
get:
tags:
- Leaderboard
summary: Get Community Leaderboard
description: 'Get leaderboard of community traders (all publishers except trackers)
Returns top performing traders who are not politicians, whales, or analysts
Great for discovering rising stars in the community
Args:
timeframe: 1W, 1M, 3M, 6M, 1Y, or ALL
limit: Number of results to return (1-100, default 5)
portfolio_type: all, paper, or verified - filters signals by portfolio type'
operationId: get_community_leaderboard_api_leaderboard_community_get
parameters:
- name: timeframe
in: query
required: false
schema:
type: string
pattern: ^(1W|1M|3M|6M|1Y|ALL)$
default: ALL
title: Timeframe
description: 'Time period: 1W, 1M, 3M, 6M, 1Y, or ALL'
- name: limit
in: query
required: false
schema:
type: integer
maximum: 100
minimum: 1
default: 5
title: Limit
description: Results per page
- name: portfolio_type
in: query
required: false
schema:
type: string
pattern: ^(all|paper|verified)$
default: all
title: Portfolio Type
description: Portfolio type filter (paper/verified)
- name: min_signals
in: query
required: false
schema:
type: integer
maximum: 1000
minimum: 0
description: Minimum total signals required
default: 0
title: Min Signals
description: Minimum total signals required
- name: sort
in: query
required: false
schema:
type: string
pattern: ^(avg_return|pure_return|win_rate|sharpe_ratio)$
description: Rank by avg_return (default), pure_return, win_rate or sharpe_ratio. Win rate and Sharpe ratio rank publishers with 5+ closed signals in the period, as their boards do
default: avg_return
title: Sort
description: Rank by avg_return (default), pure_return, win_rate or sharpe_ratio. Win rate and Sharpe ratio rank publishers with 5+ closed signals in the period, as their boards do
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
security: []
servers:
- url: https://alpha-bazaar-signal-server.onrender.com
description: Production
- url: https://dev-alpha-bazaar-signal-server.onrender.com
description: Staging
/api/leaderboard/whales:
get:
tags:
- Leaderboard
summary: Get Whale Leaderboard
description: 'Get leaderboard of whale trackers (13F hedge fund managers)
Returns trading signals from hedge fund managers and institutions tracked via 13F filings
Filtered by publisher_type = ''whale-tracker''
Args:
timeframe: 1W, 1M, 3M, 6M, 1Y, or ALL
limit: Number of results to return (1-100, default 5)'
operationId: get_whale_leaderboard_api_leaderboard_whales_get
parameters:
- name: timeframe
in: query
required: false
schema:
type: string
pattern: ^(1W|1M|3M|6M|1Y|ALL)$
default: ALL
title: Timeframe
description: 'Time period: 1W, 1M, 3M, 6M, 1Y, or ALL'
- name: limit
in: query
required: false
schema:
type: integer
maximum: 100
minimum: 1
default: 5
title: Limit
description: Results per page
- name: min_signals
in: query
required: false
schema:
type: integer
maximum: 1000
minimum: 0
description: Minimum total signals required
default: 0
title: Min Signals
description: Minimum total signals required
- name: sort
in: query
required: false
schema:
type: string
pattern: ^(avg_return|pure_return|win_rate|sharpe_ratio)$
description: Rank by avg_return (default), pure_return, win_rate or sharpe_ratio. Win rate and Sharpe ratio rank publishers with 5+ closed signals in the period, as their boards do
default: avg_return
title: Sort
description: Rank by avg_return (default), pure_return, win_rate or sharpe_ratio. Win rate and Sharpe ratio rank publishers with 5+ closed signals in the period, as their boards do
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
security: []
servers:
- url: https://alpha-bazaar-signal-server.onrender.com
description: Production
- url: https://dev-alpha-bazaar-signal-server.onrender.com
description: Staging
/api/leaderboard/analysts:
get:
tags:
- Leaderboard
summary: Get Analyst Leaderboard
description: 'Get leaderboard of analyst trackers (Wall Street analysts)
Returns trading signals from Wall Street analysts tracked via Benzinga ratings
Filtered by publisher_type = ''analyst-tracker''
Args:
timeframe: 1W, 1M, 3M, 6M, 1Y, or ALL
limit: Number of results to return (1-100, default 100)
offset: Pagination offset (default 0)'
operationId: get_analyst_leaderboard_api_leaderboard_analysts_get
parameters:
- name: timeframe
in: query
required: false
schema:
type: string
pattern: ^(1W|1M|3M|6M|1Y|ALL)$
default: ALL
title: Timeframe
description: 'Time period: 1W, 1M, 3M, 6M, 1Y, or ALL'
- name: limit
in: query
required: false
schema:
type: integer
maximum: 100
minimum: 1
default: 100
title: Limit
description: Results per page
- name: offset
in: query
required: false
schema:
type: integer
minimum: 0
default: 0
title: Offset
description: Number of results to skip
- name: min_signals
in: query
required: false
schema:
type: integer
maximum: 1000
minimum: 0
description: Minimum total signals required
default: 0
title: Min Signals
description: Minimum total signals required
- name: sort
in: query
required: false
schema:
type: string
pattern: ^(avg_return|pure_return|win_rate|sharpe_ratio)$
description: Rank by avg_return (default), pure_return, win_rate or sharpe_ratio. Win rate and Sharpe ratio rank publishers with 5+ closed signals in the period, as their boards do
default: avg_return
title: Sort
description: Rank by avg_return (default), pure_return, win_rate or sharpe_ratio. Win rate and Sharpe ratio rank publishers with 5+ closed signals in the period, as their boards do
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
security: []
servers:
- url: https://alpha-bazaar-signal-server.onrender.com
description: Production
- url: https://dev-alpha-bazaar-signal-server.onrender.com
description: Staging
components:
schemas:
HTTPValidationError:
properties:
detail:
items:
$ref: '#/components/schemas/ValidationError'
type: array
title: Detail
type: object
title: HTTPValidationError
ValidationError:
properties:
loc:
items:
anyOf:
- type: string
- type: integer
type: array
title: Location
msg:
type: string
title: Message
type:
type: string
title: Error Type
input:
title: Input
ctx:
type: object
title: Context
type: object
required:
- loc
- msg
- type
title: ValidationError
LeaderboardResponse:
properties:
status:
type: string
title: Status
timeframe:
anyOf:
- type: string
- type: 'null'
title: Timeframe
period:
anyOf:
- type: string
- type: 'null'
title: Period
leaderboard:
items:
$ref: '#/components/schemas/LeaderboardEntry'
type: array
title: Leaderboard
total_publishers:
type: integer
title: Total Publishers
default: 0
source:
anyOf:
- type: string
- type: 'null'
title: Source
type: object
required:
- status
- leaderboard
title: LeaderboardResponse
description: GET /api/leaderboard/*
example:
leaderboard:
- avg_return: 2.4
closed_signals: 20
has_profile_image: true
is_monetized: true
publisher_type: human
pure_return: 47.5
rank: 1
total_signals: 24
username: top_trader
win_rate: 75.0
period: 1 Month
source: materialized_view
status: success
timeframe: 1M
total_publishers: 150
LeaderboardEntry:
properties:
rank:
type: integer
title: Rank
username:
type: string
title: Username
publisher_type:
anyOf:
- type: string
- type: 'null'
title: Publisher Type
is_house_bot:
anyOf:
- type: boolean
- type: 'null'
title: Is House Bot
total_signals:
type: integer
title: Total Signals
default: 0
closed_signals:
anyOf:
- type: integer
- type: 'null'
title: Closed Signals
pure_return:
anyOf:
- type: number
- type: 'null'
title: Pure Return
avg_return:
anyOf:
- type: number
- type: 'null'
title: Avg Return
win_rate:
anyOf:
- type: number
- type: 'null'
title: Win Rate
total_allocation:
anyOf:
- type: number
- type: 'null'
title: Total Allocation
avg_allocation_per_signal:
anyOf:
- type: number
- type: 'null'
title: Avg Allocation Per Signal
bio:
anyOf:
- type: string
- type: 'null'
title: Bio
is_monetized:
anyOf:
- type: boolean
- type: 'null'
title: Is Monetized
has_profile_image:
anyOf:
- type: boolean
- type: 'null'
title: Has Profile Image
display_name:
anyOf:
- type: string
- type: 'null'
title: Display Name
type: object
required:
- rank
- username
title: LeaderboardEntry
securitySchemes:
HTTPBearer:
type: http
scheme: bearer
externalDocs:
description: Agent integration guide and full API docs
url: https://www.alphabazaar.ai/llms-full.txt
x-refined-from:
- alphabazaar-ai-openapi.yml
- openapi.json