Systems & Leaderboards API Endpoints

Overview

Endpoints for betting systems, strategies, user picks tracking, and leaderboard data.


Endpoint Summary

Endpoint Method Auth Description
/v1/systems GET None Get all systems
/v1/users/systems GET JWT Get user's systems
/v1/users/systems POST JWT Save user systems
/v1/users/systems DELETE JWT Delete user systems
/v1/users/systems/followed GET JWT Get followed systems
/v1/users/systems/{systemId}/subscriptions POST JWT Follow a system
/v1/users/systems/{systemId}/subscriptions/{subId} DELETE JWT Unfollow system
/v1/userpicks GET None Get user picks
/v1/userpicks PUT JWT Confirm user picks
/v1/userpicks POST None Create user picks
/v1/users/{username}/upcomingpicks GET None Get upcoming picks
/v1/users/{username}/recentpicks GET None Get recent picks
/v1/systemcards GET None Get system cards
/v1/usercards GET None Get user cards
/v1/pickcards GET None Get pick cards
/v1/odds GET None Get odds data
/v1/odds/live GET None Get live odds
/v1/odds-comparison GET None Get odds comparison
/v1/socialpicks GET None Get social picks
/v1/users/picks/followed GET JWT Get followed picks
/v1/picksfeed GET None Get picks feed

Systems Endpoints

1. GET /v1/systems

Description: Retrieves all public betting systems/strategies.

Query Parameters:

Parameter Type Description
LeagueId long[] Filter by league
SystemType enum Filter by system type
Popular bool Only popular systems
Limit int Maximum results

Response: IEnumerable<LeaderboardSystem>

[
  {
    "id": 12345,
    "name": "NFL Road Dogs +7",
    "description": "Betting underdogs getting 7+ points on the road",
    "author": "SystemPro",
    "leagueId": 1,
    "sport": "NFL",
    "winRate": 58.3,
    "roi": 12.5,
    "totalPicks": 156,
    "wins": 91,
    "losses": 65,
    "streak": "W3",
    "isFollowed": false,
    "followers": 1234,
    "lastPick": {
      "date": "2025-11-28",
      "team": "Bengals",
      "result": "win"
    }
  }
]

Response Fields:

Field Type Description
id long System identifier
name string System name
description string System description
author string System creator
leagueId long Associated league
sport string Sport name
winRate double Win percentage
roi double Return on investment %
totalPicks int Total picks made
wins int Total wins
losses int Total losses
streak string Current streak (e.g., "W3")
isFollowed bool Whether user follows this
followers int Number of followers
lastPick object Most recent pick info

2. GET /v1/users/systems

Description: Retrieves systems created by the authenticated user.

Authentication: JWT required

Response: IEnumerable<LeaderboardSystem>


3. POST /v1/users/systems

Description: Saves a user-created system.

Authentication: JWT required

Request Body:

[
  {
    "name": "My NFL System",
    "description": "Home favorites under 7",
    "rules": [
      {"type": "spread", "condition": "lt", "value": 7},
      {"type": "side", "condition": "eq", "value": "home"}
    ]
  }
]

Response: IEnumerable<LeaderboardSystem>


4. DELETE /v1/users/systems

Description: Deletes user-created systems.

Authentication: JWT required

Request Body:

[
  {"systemId": 12345}
]

5. GET /v1/users/systems/followed

Description: Retrieves systems the user is following.

Authentication: JWT required

Response: IEnumerable<LeaderboardSystem>


6. POST /v1/users/systems/{systemId}/subscriptions

Description: Follows/subscribes to a system.

Authentication: JWT required

Path Parameters:

Response: CreateSystemSubscriptionResponse

{
  "subscriptionId": 67890,
  "systemId": 12345,
  "followedAt": "2025-11-29T12:00:00Z"
}

7. DELETE /v1/users/systems/{systemId}/subscriptions/{subscriptionId}

Description: Unfollows/unsubscribes from a system.

Authentication: JWT required

Path Parameters:

Response: 200 OK


User Picks Endpoints

8. GET /v1/userpicks

Description: Retrieves user picks by ID.

Query Parameters:

Parameter Type Description
id long[] Pick IDs to retrieve

Response: List<UserPick>


9. PUT /v1/userpicks

Description: Confirms/locks user picks.

Authentication: JWT required

Request Body:

[
  {
    "pickId": 12345,
    "amount": 100,
    "odds": -110
  }
]

Response: ConfirmedUserPicksResponse


10. GET /v1/users/{username}/upcomingpicks

Description: Retrieves upcoming picks for a user.

Path Parameters:

Query Parameters:

Parameter Type Description
LeagueId long[] Filter by league
Limit int Maximum results

Response: List<UpcomingPick>

[
  {
    "pickId": 12345,
    "matchId": 67890,
    "team": "Cowboys",
    "pickType": "spread",
    "line": -3.5,
    "odds": -110,
    "matchTime": "2025-11-29T21:25:00Z",
    "status": "pending"
  }
]

11. GET /v1/users/{username}/recentpicks

Description: Retrieves recent/completed picks for a user.

Path Parameters:

Response: List<RecentPick>

[
  {
    "pickId": 12345,
    "matchId": 67890,
    "team": "Cowboys",
    "pickType": "spread",
    "line": -3.5,
    "odds": -110,
    "result": "win",
    "profit": 90.91,
    "matchDate": "2025-11-28"
  }
]

Cards Endpoints

12. GET /v1/systemcards

Description: Retrieves system performance cards.

Query Parameters:

Parameter Type Description
LeagueId long[] Filter by league

Response: IEnumerable<SystemCard>


13. GET /v1/usercards

Description: Retrieves user performance cards.

Response: IEnumerable<UserCard>


14. GET /v1/pickcards

Description: Retrieves pick cards with odds.

Query Parameters:

Parameter Type Description
MatchIds long[] Filter by match
Date DateTime Filter by date

Response: IEnumerable<PickCard>


Odds Endpoints

15. GET /v1/odds

Description: Retrieves current odds data.

Query Parameters:

Parameter Type Description
MatchIds long[] Filter by match
LeagueId long[] Filter by league
Date DateTime Filter by date

Response: IEnumerable<PickCardV2>


16. GET /v1/odds/live

Description: Retrieves live odds history.

Query Parameters:

Parameter Type Description
MatchIds long[] Filter by match

Response: IEnumerable<OddsLiveHistoryResponse>


17. GET /v1/odds-comparison

Description: Compares odds across sportsbooks.

Query Parameters:

Parameter Type Description
MatchId long Match ID

Response: OddsComparisonResponse

{
  "matchId": 12345,
  "comparisons": [
    {
      "pickType": "spread",
      "team": "Cowboys",
      "books": [
        {"name": "FanDuel", "line": -3.5, "odds": -110},
        {"name": "DraftKings", "line": -3.5, "odds": -108},
        {"name": "BetMGM", "line": -3, "odds": -115}
      ],
      "bestOdds": {"name": "DraftKings", "odds": -108}
    }
  ]
}

Social Picks Endpoints

18. GET /v1/socialpicks

Description: Retrieves social picks from the community.

Query Parameters:

Parameter Type Description
LeagueId long[] Filter by league
Date DateTime Filter by date
Popular bool Only popular picks

Response: IEnumerable<SocialPick>


19. GET /v1/users/picks/followed

Description: Retrieves picks from followed users.

Authentication: JWT required

Response: IEnumerable<SocialPick>


20. GET /v1/picksfeed

Description: Retrieves the main picks feed.

Response: IEnumerable<PickFeedItem>


Examples

Get Popular NFL Systems

curl -X GET "https://api.example.com/v1/systems?LeagueId=1&Popular=true"

Follow a System

curl -X POST "https://api.example.com/v1/users/systems/12345/subscriptions" \
  -H "Authorization: Bearer eyJ..."

Get User's Upcoming Picks

curl -X GET "https://api.example.com/v1/users/john_doe/upcomingpicks"

Compare Odds

curl -X GET "https://api.example.com/v1/odds-comparison?MatchId=12345"

Related Endpoints