NCAA API - College Sports
Pricing
from $0.01 / 1,000 results
NCAA API - College Sports
Fetch comprehensive NCAA college sports data including basketball rankings, football standings, team rosters, player statistics, and game schedules for all divisions. Basketball Data & Football Data Teams Rankings Schedule Scores Standings
Pricing
from $0.01 / 1,000 results
Rating
0.0
(0)
Developer
The Howlers
Actor stats
0
Bookmarked
15
Total users
1
Monthly active users
16 hours ago
Last modified
Categories
Share
NCAA API - College Sports Data
The most comprehensive NCAA data actor on Apify. 8 sports, 25+ tasks, betting odds with arbitrage detection, live score polling, recruiting rankings, bracket projections, and CSV export. Powered by ESPN + The Odds API.
Sports Covered
Basketball, Football, Baseball, Hockey, Lacrosse, Volleyball, Softball, Soccer — men's and women's.
All Tasks
Core Data (all sports)
| Task Pattern | Example | What It Returns | Price |
|---|---|---|---|
{sport}_teams | basketball_teams | All teams with IDs, conference, logo | $0.01 |
{sport}_scores | football_scores | Live and final scores | $0.01 |
{sport}_standings | baseball_standings | Conference standings | $0.01 |
{sport}_rankings | basketball_rankings | AP/Coaches Poll rankings | $0.01 |
{sport}_schedule | football_schedule | Game schedules with TV info | $0.01 |
Team & Player
| Task | Requires | Price |
|---|---|---|
team_roster | teamId | $0.02 |
player_stats | playerId | $0.02 |
injury_report | — | $0.01 |
conference_teams | conference | $0.01 |
team_schedule | teamId | $0.02 |
head_to_head | teamId + teamId2 | $0.02 |
Betting & Arbitrage
| Task | Requires | Price |
|---|---|---|
betting_odds | oddsApiKey | $0.05 |
betting_odds_history | oddsApiKey + oddsGameId | $0.05 |
arbitrage_finder | oddsApiKey | $0.10 |
Live & Alerts
| Task | Requires | Price |
|---|---|---|
live_scores | webhookUrl | $0.03 |
alerts | webhookUrl (+ oddsApiKey for odds alerts) | $0.03 |
Recruiting & Brackets
| Task | Price |
|---|---|
recruiting_rankings | $0.01 |
bracket_projections | $0.01 |
Demo mode is always free for all tasks.
Examples
Get Basketball Rankings
{ "task": "basketball_rankings", "demoMode": false }
Multi-Task Batch (one run, multiple results)
{ "tasks": ["basketball_rankings", "basketball_scores", "football_standings"], "demoMode": false }
Get All SEC Football Teams
{ "task": "conference_teams", "sport": "football", "conference": "SEC", "demoMode": false }
Head-to-Head: Duke vs UNC
{ "task": "head_to_head", "sport": "basketball", "teamId": "150", "teamId2": "153", "demoMode": false }
Returns series record, win counts, and all games between the two teams this season.
Baseball Scores
{ "task": "baseball_scores", "demoMode": false }
Women's Volleyball Teams
{ "task": "volleyball_teams", "gender": "womens", "demoMode": false }
Betting Odds with Best Lines
{ "task": "betting_odds", "sport": "basketball", "oddsApiKey": "YOUR_KEY", "demoMode": false }
Every game includes bestLines — the best spread, moneyline, and total across DraftKings, FanDuel, BetMGM, etc.
Filter Odds by Team
{ "task": "betting_odds", "oddsApiKey": "YOUR_KEY", "oddsTeamFilter": "Duke", "demoMode": false }
Arbitrage Finder
{ "task": "arbitrage_finder", "sport": "basketball", "oddsApiKey": "YOUR_KEY", "demoMode": false }
Scans all games across all bookmakers. Returns profitable arb opportunities sorted by profit %, with exact stake percentages:
{"type": "moneyline","game": "Duke vs Houston","profitPercent": 1.23,"legs": [{ "team": "Duke", "odds": -145, "bookmaker": "FanDuel", "stakePercent": 52.3 },{ "team": "Houston", "odds": 155, "bookmaker": "DraftKings", "stakePercent": 47.7 }]}
Checks moneylines, spreads, AND totals for arb opportunities.
Live Score Polling
{"task": "live_scores", "sport": "basketball","webhookUrl": "https://hooks.zapier.com/hooks/catch/123/abc/","livePollingSeconds": 30, "liveMaxDuration": 600,"demoMode": false}
Alerts: Odds Movement
{"task": "alerts", "sport": "basketball","oddsApiKey": "YOUR_KEY","webhookUrl": "https://your-webhook.com/alerts","alertType": "odds_movement", "alertThreshold": 2,"alertPollingSeconds": 60, "alertMaxDuration": 600,"demoMode": false}
Monitors spread changes. When a spread moves 2+ points, pushes alert to your webhook.
Alerts: Upset Detection
{"task": "alerts", "sport": "basketball","webhookUrl": "https://your-webhook.com/alerts","alertType": "upset","demoMode": false}
Recruiting Rankings
Best results with a Firecrawl key (scrapes 247Sports for detailed data):
{ "task": "recruiting_rankings", "sport": "football", "season": 2026, "firecrawlApiKey": "fc-YOUR_KEY", "demoMode": false }
Without Firecrawl, falls back to ESPN's talent composite (less detailed):
{ "task": "recruiting_rankings", "sport": "football", "season": 2026, "demoMode": false }
Bracket Projections
{ "task": "bracket_projections", "sport": "basketball", "demoMode": false }
Returns NET rankings (bracket indicator) during March Madness, CFP rankings during football season.
CSV Export
{ "task": "basketball_rankings", "outputFormat": "csv", "demoMode": false }
CSV files are saved to the actor's Key-Value Store as {task}.csv. JSON results are always in the dataset.
Performance & Reliability
- 15-min cache on ESPN responses via Apify KV Store. Identical requests within 15 min hit cache instantly. Betting odds and live scores always fetch fresh data.
- Rate limiting — 200ms delay between ESPN API calls when running batched tasks. This keeps us under ESPN's rate limits and prevents your runs from getting throttled. You'll see "Rate limiting: 200ms between tasks" in the logs.
- Batching — run multiple tasks in one actor call to save on Apify platform startup costs.
- CSV export — set
outputFormat: "csv"and CSV files are saved to the Key-Value Store alongside JSON. - Conference fallback — ESPN's API doesn't always return conference data. We hardcode D1 basketball and football conference-to-team mappings as a fallback so conference filtering works reliably.
Data Sources
| Source | Used For | Auth | Notes |
|---|---|---|---|
ESPN (site.api.espn.com) | All sports data | None needed | Public API, no key required |
The Odds API (api.the-odds-api.com) | Betting odds, arbitrage | Free key (500 req/month) | Used by betting_odds, betting_odds_history, arbitrage_finder |
| 247Sports (via Firecrawl) | Recruiting rankings | Optional Firecrawl key | Used by recruiting_rankings for detailed team recruiting class data. Without it, falls back to ESPN (less detailed). Free key at firecrawl.dev. |
FAQ
Why does football_standings return 0 results?
ESPN removes college football standings after the season ends (January–August). This is an ESPN data availability issue, not a bug. Standings return data during the active football season (September–January).
Why does soccer_teams / lacrosse_teams / softball_teams return 0?
ESPN's team listing API doesn't serve data for these three sports. However, *_scores tasks for these sports DO work during their active seasons (ESPN has scoreboard data even without team listings). Full team listing support for these sports is on our roadmap — we plan to build it by extracting team data from scoreboards and caching it.
How do I use conference filters?
Both abbreviations and full names work: "ACC", "SEC", "Big Ten", "Mountain West", "Atlantic Coast Conference" — all valid. We map 35+ conference abbreviations to full names automatically.
How do bracket projections work?
Best with a firecrawlApiKey — we scrape ESPN's Bracketology page for real seed projections during March Madness, and CFP rankings during football season. Without Firecrawl, we fall back to ESPN's rankings API (AP/Coaches polls only, no bracket-specific data).
How do recruiting rankings work?
Best with a firecrawlApiKey — we scrape 247Sports for composite team recruiting class data (commits, points, 5-stars). Without Firecrawl, we fall back to ESPN which has limited recruiting data.
Roadmap
- Soccer, lacrosse, softball team listings — extract from scoreboard data during active seasons
- Transfer portal data — player transfer tracker
- Historical game results — multi-season archives
Built by John Rippy | Actor Arsenal