API Examples
This page is a copyable example book for the customer-facing Scottfree Sports REST API.
Production base URL:
https://sports-api.scottfreellc.com
Use your key in X-API-Key:
export SFS_API_KEY="sk_alphapysports_PASTE_YOUR_KEY"
Sports:
mlb, nba, nfl, nhl, ncaaf, ncaab
Model types:
over_under, won_on_points, won_on_spread
For moneyline and spread, probabilities are home-team relative. For totals, probabilities are over-relative.
Discovery
List available sports and model types:
curl -H "X-API-Key: $SFS_API_KEY" \
https://sports-api.scottfreellc.com/api/v1/sports
Predictions
MLB moneyline:
curl -H "X-API-Key: $SFS_API_KEY" \
"https://sports-api.scottfreellc.com/api/v1/predictions/mlb/won_on_points"
NBA spread, including the whole prediction artifact:
curl -H "X-API-Key: $SFS_API_KEY" \
"https://sports-api.scottfreellc.com/api/v1/predictions/nba/won_on_spread?upcoming_only=false"
NHL total:
curl -H "X-API-Key: $SFS_API_KEY" \
"https://sports-api.scottfreellc.com/api/v1/predictions/nhl/over_under"
Read the prediction row this way:
| Market | Positive side | Key fields |
|---|---|---|
over_under | Over | over_under, open_over_under, over_line, under_line |
won_on_points | Home moneyline | home_money_line, away_money_line, opener moneyline fields |
won_on_spread | Home spread | home_point_spread, away_point_spread, opener spread fields |
Free Website ML Predictions
These endpoints are public and unauthenticated. They power the free ML Predictions page.
curl "https://sports-api.scottfreellc.com/api/v1/public/ml-picks/mlb/moneyline"
curl "https://sports-api.scottfreellc.com/api/v1/public/ml-picks/nba/spread"
curl "https://sports-api.scottfreellc.com/api/v1/public/ml-picks/nhl/over_under"
Public markets map to authenticated model types:
| Public market | Model type |
|---|---|
moneyline | won_on_points |
spread | won_on_spread |
over_under | over_under |
Current Odds
Current MLB odds:
curl -H "X-API-Key: $SFS_API_KEY" \
"https://sports-api.scottfreellc.com/api/v1/odds/mlb"
Current NBA odds:
curl -H "X-API-Key: $SFS_API_KEY" \
"https://sports-api.scottfreellc.com/api/v1/odds/nba"
Results
Recent MLB moneyline results:
curl -H "X-API-Key: $SFS_API_KEY" \
"https://sports-api.scottfreellc.com/api/v1/results/mlb/won_on_points?limit=25"
Recent NBA spread results:
curl -H "X-API-Key: $SFS_API_KEY" \
"https://sports-api.scottfreellc.com/api/v1/results/nba/won_on_spread?limit=50"
Recent NHL total results:
curl -H "X-API-Key: $SFS_API_KEY" \
"https://sports-api.scottfreellc.com/api/v1/results/nhl/over_under?limit=50"
Results Page Data
Rolling result curves:
curl -H "X-API-Key: $SFS_API_KEY" \
"https://sports-api.scottfreellc.com/api/v1/results/nfl/won_on_spread/rolling"
Result distribution payload:
curl -H "X-API-Key: $SFS_API_KEY" \
"https://sports-api.scottfreellc.com/api/v1/results/nba/over_under/density"
Team form:
curl -H "X-API-Key: $SFS_API_KEY" \
"https://sports-api.scottfreellc.com/api/v1/results/mlb/won_on_points/team-form"
Summary
MLB moneyline model summary:
curl -H "X-API-Key: $SFS_API_KEY" \
"https://sports-api.scottfreellc.com/api/v1/summary/mlb/won_on_points"
NBA spread model summary:
curl -H "X-API-Key: $SFS_API_KEY" \
"https://sports-api.scottfreellc.com/api/v1/summary/nba/won_on_spread"
NHL total model summary:
curl -H "X-API-Key: $SFS_API_KEY" \
"https://sports-api.scottfreellc.com/api/v1/summary/nhl/over_under"
Account
Show your account:
curl -H "X-API-Key: $SFS_API_KEY" \
"https://sports-api.scottfreellc.com/api/v1/customers/me"
Show monthly usage:
curl -H "X-API-Key: $SFS_API_KEY" \
"https://sports-api.scottfreellc.com/api/v1/customers/me/usage"
List keys:
curl -H "X-API-Key: $SFS_API_KEY" \
"https://sports-api.scottfreellc.com/api/v1/customers/me/api-keys"
Create another key:
curl -X POST \
-H "X-API-Key: $SFS_API_KEY" \
-H "Content-Type: application/json" \
-d '{"name":"Research Laptop"}' \
"https://sports-api.scottfreellc.com/api/v1/customers/me/api-keys"
Rename a key:
curl -X PATCH \
-H "X-API-Key: $SFS_API_KEY" \
-H "Content-Type: application/json" \
-d '{"api_key_to_rename":"sk_alphapysports_abcd*****","new_name":"Desktop App"}' \
"https://sports-api.scottfreellc.com/api/v1/customers/me/api-keys/rename"
Revoke a key:
curl -X DELETE \
-H "X-API-Key: $SFS_API_KEY" \
"https://sports-api.scottfreellc.com/api/v1/customers/me/api-keys/sk_alphapysports_abcd*****"
The API will not let you revoke the same key used for that request.
Sports Data Refresh
Sports Data is separate from Basic and Premium. It refreshes historical datasets already attached to your account.
Check refresh status:
curl -H "X-API-Key: $SFS_API_KEY" \
"https://sports-api.scottfreellc.com/api/v1/scottfree-sports-data/status"
Generate fresh signed download links:
curl -X POST \
-H "X-API-Key: $SFS_API_KEY" \
"https://sports-api.scottfreellc.com/api/v1/scottfree-sports-data/refresh"
Refresh links expire quickly. Download the files after the refresh response returns.
Health Checks
These are unauthenticated connectivity checks:
curl "https://sports-api.scottfreellc.com/api/v1/health"
curl "https://sports-api.scottfreellc.com/api/v1/readiness"
curl "https://sports-api.scottfreellc.com/api/v1/liveness"
Compatibility Endpoints
These endpoints remain available so older clients receive explicit empty payloads instead of broken responses. No validated betting selector is active.
curl -H "X-API-Key: $SFS_API_KEY" \
"https://sports-api.scottfreellc.com/api/v1/picks/today"
curl -H "X-API-Key: $SFS_API_KEY" \
"https://sports-api.scottfreellc.com/api/v1/picks/2026-05-23"
curl -H "X-API-Key: $SFS_API_KEY" \
"https://sports-api.scottfreellc.com/api/v1/picks/performance?sport=MLB&market=total"
curl "https://sports-api.scottfreellc.com/api/v1/edge-picks"
curl "https://sports-api.scottfreellc.com/api/v1/edge-picks/2026-05-23"
curl "https://sports-api.scottfreellc.com/api/v1/edge-picks/track-record"
Response Shapes
For field-level response notes, see:
Sports Docs