Hard Rock APIhardrock.bet ↗
Retrieve Puerto Rico Superior Nacional (BSN) basketball matchups, spreads, moneylines, and totals from Hard Rock Bet via two clean REST endpoints.
What is the Hard Rock API?
The Hard Rock Bet BSN API provides 2 endpoints covering Puerto Rico Superior Nacional basketball betting data. Use get_bsn_matchups to list all currently available games with team names, scheduled times, and offered market types, then call get_bsn_odds with a game_id to retrieve the primary spread, moneyline, and over/under totals — all in American odds format — plus a live in_play flag.
No input parameters required.
curl -X GET 'https://api.parse.bot/scraper/9fcb7a22-1d92-4be5-8f0e-8033f9793731/get_bsn_matchups' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace hardrock-bet-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""Walkthrough: Hard Rock Bet BSN API — bounded, re-runnable; every call capped."""
from parse_apis.hardrock_bet_api import HardRockBet, GameNotFound
client = HardRockBet()
# List all available BSN matchups
for matchup in client.matchups.list(limit=3):
print(matchup.home_team, "vs", matchup.away_team, matchup.game_time)
# Drill down: get full odds for the first matchup
game = client.matchups.list(limit=1).first()
if game:
try:
odds = game.odds()
print(odds.home_team, "vs", odds.away_team)
if odds.moneyline:
print("ML:", odds.moneyline.home_odds, odds.moneyline.away_odds)
if odds.spread:
print("Spread:", odds.spread.home_line, odds.spread.home_odds)
if odds.total:
print("Total:", odds.total.over_line, odds.total.over_odds)
except GameNotFound as e:
print("game gone:", e.game_id)
print("exercised: matchups.list, matchup.odds")
Returns all currently available BSN (Puerto Rico Superior Nacional) basketball games with team names, scheduled game time, and which betting markets are offered. Results are ordered by start time ascending.
No input parameters required.
{
"type": "object",
"fields": {
"games": "array of BSN game summaries with game_id, teams, time, and available markets",
"total": "integer count of games returned"
},
"sample": {
"data": {
"games": [
{
"game_id": "1248200148002144505",
"in_play": false,
"away_team": "Bayamon",
"game_time": "2026-08-04T00:00:00+00:00",
"home_team": "Criollos de Caguas",
"num_markets": 51,
"available_markets": [
"moneyline",
"spread",
"total"
]
},
{
"game_id": "3506306356170850550",
"in_play": false,
"away_team": "Aguada Santeros",
"game_time": "2026-08-05T00:00:00+00:00",
"home_team": "Leones Ponce",
"num_markets": 10,
"available_markets": [
"moneyline",
"spread",
"total"
]
}
],
"total": 2
},
"status": "success"
}
}About the Hard Rock API
Available Endpoints
The API exposes two endpoints. get_bsn_matchups takes no inputs and returns an array of game summaries. Each element includes a game_id, both team names, the scheduled game_time, and a list of which betting markets are available. A top-level total integer tells you how many games are in the response. Results are sorted by start time ascending, so the next game to tip off is always first.
Odds Detail
get_bsn_odds accepts a single required parameter — game_id, obtained from the games[*].game_id field returned by get_bsn_matchups. The response returns three market objects: spread (with home_line, home_odds, away_line, away_odds), moneyline (with home_odds and away_odds), and total (with over_line, over_odds, under_line, under_odds). All odds values are in American format. The in_play boolean indicates whether the game is currently in progress.
Data Scope and Freshness
Coverage is scoped exclusively to BSN (Puerto Rico Superior Nacional) basketball lines as offered by the Hard Rock Bet sportsbook. The primary line returned for each market reflects the most balanced line the sportsbook is offering at query time. Game times are returned in ISO 8601 format, normalized to UTC.
The Hard Rock API is a managed, monitored endpoint for hardrock.bet — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when hardrock.bet changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official hardrock.bet API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Build a BSN odds tracker that alerts users when the spread or moneyline on a specific game shifts.
- Compare Hard Rock Bet BSN totals (over/under lines and juice) against other sportsbooks for line-shopping tools.
- Power a live-game dashboard by polling
in_playflags fromget_bsn_oddsto surface active BSN games. - Aggregate BSN game schedules and market availability from
get_bsn_matchupsinto a betting calendar app. - Feed BSN moneyline and spread data into a model that tracks implied probabilities over time.
- Display upcoming BSN matchups ordered by start time for a Puerto Rico basketball fan portal.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 200 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
| Team | $300/mo | 20,000 | 300 req/min |
| Company | $1,000/mo | 100,000 | 500 req/min |
Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Hard Rock Bet offer an official public developer API?+
What does get_bsn_odds return, and how do I know if a game is live?+
spread, moneyline, and total — each containing the relevant lines and American-format odds for the requested game. The in_play boolean field is true when the game is currently in progress, letting you distinguish pre-game lines from live lines.Does the API cover other sports or betting markets beyond BSN basketball?+
Are alternate lines or opening lines available, or only the primary line?+
get_bsn_odds returns the primary line for each market — the most balanced line the sportsbook is currently offering. Opening lines and alternate spreads or totals are not part of the current response. You can fork the API on Parse and revise it to add an endpoint that captures alternate or historical line data.How are games identified across the two endpoints?+
get_bsn_matchups response carries a game_id string. Pass that exact value as the required game_id parameter to get_bsn_odds to retrieve odds for that specific game. The game_id is the only supported lookup key.