Action Network Sports Odds Line Movement Scraper
Pricing
from $0.02 / 1,000 item extracteds
Action Network Sports Odds Line Movement Scraper
Scrape Action Network odds, spreads, totals, public betting percentages, and game metadata by league/date for sports betting analytics.
Pricing
from $0.02 / 1,000 item extracteds
Rating
0.0
(0)
Developer
Automation Lab
Maintained by CommunityActor stats
0
Bookmarked
40
Total users
5
Monthly active users
16 days ago
Last modified
Categories
Share
Action Network Sports Odds Line Movement Scraper collects current sportsbook snapshots from public Action Network scoreboard endpoints. Use it to monitor moneylines, spreads, totals, team totals, source line_status movement indicators, public betting splits, and event context across MLB, NBA, NFL, NHL, college football, and college basketball. Schedule repeated runs and retain their datasets when you need a historical movement series.
What does Action Network Sports Odds Line Movement Scraper do?
It turns Action Network scoreboard API responses into clean Apify dataset rows.
- ๐๏ธ Fetch leagues such as
mlb,nba,nfl,nhl,ncaab, andncaaf - ๐ Query one or more dates
- ๐ Save one row per sportsbook odds snapshot
- ๐ธ Extract moneylines, spreads, totals, team totals, and their available prices
- โ๏ธ Preserve Action Network
line_statusindicators for moneyline, spread, total, and team-total outcomes - ๐ฅ Include public betting and money percentages when Action Network provides them
- ๐บ Add week, broadcast, coverage, rotation numbers, team logos, and records when available
- ๐ Include both the API URL and a user-facing Action Network game URL
- ๐ก๏ธ Deduplicate route inputs, enforce the selected sportsbook IDs, retry transient failures, report partial failures, and fail clearly if every route fails
Who is it for?
Sports betting analysts use it to compare lines across books.
Affiliate and content teams use it to create odds tables and daily market summaries.
Quantitative bettors schedule it to collect repeatable snapshots for their own historical models.
Media researchers use it to track market movement around high-profile games.
Automation teams use it to feed dashboards, alerts, spreadsheets, and data warehouses.
Why use it?
Action Network exposes rich scoreboard data, but the raw JSON is nested by game and sportsbook. This actor normalizes the data into flat rows that are easy to export, join, filter, and analyze.
You can run it on a schedule, compare books, archive odds snapshots, or pipe the data into your own betting intelligence workflow.
What data can you extract?
| Field group | Examples |
|---|---|
| League and event | league, sport, season, week, gameId, startTime, status, broadcastNetwork, coverage, rotation numbers |
| Teams | names, abbreviations, IDs, logos, wins, losses, and ties |
| Sportsbook | bookId, bookName, period, marketType |
| Moneyline | moneylineHome, moneylineAway, and source line-status indicators |
| Spread | spreadHome/away, prices, and source line-status indicators |
| Total | total, over/under prices, and source line-status indicators |
| Team totals | home/away totals, over/under prices, and source line-status indicators |
| Consensus | public bet percentages, money percentages, and numBets when present |
| Traceability | apiUrl, sourceUrl, insertedAt, scrapedAt |
How much does it cost to scrape Action Network sports odds?
The actor uses pay-per-event pricing.
- Start event: small one-time run fee
- Item event: charged per saved odds row
- Higher usage tiers receive discounted per-row pricing
Use maxItems to control spend during tests. A normal monitoring run can start with 100-250 rows and scale up after you verify the leagues and books you need.
Input options
| Input | Description |
|---|---|
leagues | Action Network league slugs to fetch |
dates | Dates in YYYY-MM-DD or YYYYMMDD; leave empty for today |
bookIds | Action Network sportsbook IDs |
period | Source market period; game is the commonly supported full-game value, while custom source-supported values remain accepted |
maxItems | Maximum odds rows saved |
includeLive | Include live/in-progress games |
includeCompleted | Include completed games |
Example input
{"leagues": ["mlb", "nba", "nfl", "nhl"],"dates": ["2026-07-06", "2026-07-07"],"bookIds": ["15", "30", "76", "75", "123"],"period": "game","maxItems": 250,"includeLive": true,"includeCompleted": true}
Example output
{"league": "mlb","sport": "baseball","gameId": 291585,"startTime": "2026-07-06T22:45:00.000Z","status": "scheduled","week": 3,"broadcastNetwork": "Amazon Prime Video","bookName": "DraftKings","homeTeamName": "Green Bay Packers","awayTeamName": "Atlanta Falcons","moneylineHome": -290,"moneylineAway": 230,"moneylineHomeLineStatus": 0,"spreadHome": -6.5,"spreadHomePrice": -107,"spreadHomeLineStatus": 0,"total": 44.5,"overPrice": -109,"underPrice": -110,"homeTeamTotal": 25.5,"awayTeamTotal": 19,"apiUrl": "https://api.actionnetwork.com/web/v1/scoreboard/mlb?...","sourceUrl": "https://www.actionnetwork.com/mlb/game/...","scrapedAt": "2026-07-07T02:33:10.608Z"}
How to scrape Action Network odds
- Choose one or more leagues.
- Add dates or leave dates empty for today.
- Keep the default sportsbook IDs or enter your own Action Network book IDs.
- Set
maxItemsto a safe number for your first run. - Run the actor.
- Export the dataset as JSON, CSV, Excel, or via the Apify API.
Tips for best results
- Use active sports seasons for the largest output volume.
- Include multiple leagues when you need at least 100 rows.
- Keep completed games enabled for historical date backfills.
- Use scheduled runs for daily line monitoring.
- Store
apiUrl,insertedAt, andscrapedAtso you can audit exactly which Action Network snapshot produced each row. - A
line_statusfield is a source-provided indicator, not an opening price or a historical series. Retain scheduled-run datasets to compare snapshots over time.
Integrations
Send results to Google Sheets for editorial odds tables.
Send results to BigQuery, Snowflake, or Postgres for modeling.
Use webhooks to trigger Slack or Discord alerts when a scheduled run completes.
Use Make, Zapier, or n8n to combine odds rows with internal content calendars.
API usage with Node.js
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('automation-lab/action-network-sports-odds-line-movement-scraper').call({leagues: ['mlb', 'nba'],dates: ['2026-07-06'],maxItems: 100});console.log(run.defaultDatasetId);
API usage with Python
from apify_client import ApifyClientclient = ApifyClient('MY-APIFY-TOKEN')run = client.actor('automation-lab/action-network-sports-odds-line-movement-scraper').call(run_input={'leagues': ['mlb', 'nba'],'dates': ['2026-07-06'],'maxItems': 100,})print(run['defaultDatasetId'])
API usage with cURL
curl -X POST 'https://api.apify.com/v2/acts/automation-lab~action-network-sports-odds-line-movement-scraper/runs?token=MY-APIFY-TOKEN' \-H 'Content-Type: application/json' \-d '{"leagues":["mlb","nba"],"dates":["2026-07-06"],"maxItems":100}'
MCP integration
Use this actor from Claude Code or Claude Desktop through Apify MCP.
MCP server URL:
https://mcp.apify.com/?tools=automation-lab/action-network-sports-odds-line-movement-scraper
Claude Code CLI setup:
$claude mcp add --transport http apify-action-network-odds https://mcp.apify.com/?tools=automation-lab/action-network-sports-odds-line-movement-scraper
Claude Desktop setup (JSON config):
{"mcpServers": {"apify-action-network-odds": {"url": "https://mcp.apify.com/?tools=automation-lab/action-network-sports-odds-line-movement-scraper"}}}
Cursor setup: add the same URL as a remote HTTP MCP server named apify-action-network-odds in Settings โ Tools & Integrations โ MCP.
VS Code setup: add the same remote HTTP URL through MCP: Add Server, then select HTTP and name it apify-action-network-odds.
Example prompts:
- "Run the Action Network sports odds scraper for MLB and NBA today and summarize the tightest spreads."
- "Fetch 250 Action Network odds rows and identify books with different totals for the same game."
- "Export Action Network line movement snapshots for yesterday into a CSV-ready dataset."
Scheduling workflows
Run every morning for pre-game odds.
Run hourly during busy slates.
Run after major injury news if your workflow needs fresh market data.
Keep maxItems high enough to cover all selected leagues and books.
Data quality notes
The actor saves exactly what the public Action Network scoreboard endpoint returns at run time. If Action Network omits prices, percentages, or line-status indicators for a market, the actor returns null for those fields instead of guessing.
Transient network errors, HTTP 429 responses, and temporary server errors are retried with bounded backoff. If some league/date routes fail, useful rows are still saved and the failed routes are summarized in the log. If every requested route fails, the run fails rather than reporting a misleading empty success. A valid HTTP 200 response with no matching games or odds remains a successful zero-item result with an explanatory log message.
Book names are mapped for common sportsbook IDs. Unknown IDs are preserved as numeric bookId values and labeled as Book <id>.
Troubleshooting
If you get no rows, try an active league/date combination such as MLB during regular season.
If you expected a specific book, verify that its Action Network book ID is included in bookIds.
If public betting percentages are null, Action Network did not include them in the public response for that game/book/market.
Data handling and limitations
The actor uses deterministic HTTP extraction and does not call an AI model. It sends only your league, date, sportsbook ID, and period filters to the public Action Network scoreboard API. It does not accept account credentials, create an external cache, or retain a separate copy of results. Run datasets, key-value stores, and logs follow the retention and deletion controls in your Apify account.
This is a snapshot collector, not a betting recommendation service. Source line-status values are passed through without interpretation, source fields can be missing, and Action Network can change or restrict its public endpoint.
Legality
This independent actor extracts publicly accessible Action Network data and is not affiliated with or endorsed by Action Network. You are responsible for using the data in compliance with Action Network terms, applicable law, sportsbook rules, and any regulations that apply to betting data in your jurisdiction.
Related sports data scrapers
Explore related automation-lab actors on Apify:
- https://apify.com/automation-lab/google-news-scraper
- https://apify.com/automation-lab/espn-scraper
- https://apify.com/automation-lab/youtube-channel-scraper
Changelog
0.2
Added team totals, source line-status indicators, richer event/team context, duplicate-input normalization, bounded retries, partial-failure diagnostics, and explicit total-outage failures. Existing inputs, output fields, defaults, and pricing remain compatible.
0.1
Initial release with Action Network scoreboard odds extraction by league, date, sportsbook IDs, period, and max item cap.
FAQ
Can it scrape line movement history?
The actor captures the current public scoreboard snapshot, Action Network timestamps, and source line_status indicators. It does not infer opening prices or retain prior runs. Schedule it and retain datasets to build your own line movement archive over time.
Does it require a sportsbook account?
No. It uses unauthenticated public Action Network scoreboard responses.
Can I choose sportsbooks?
Yes. Pass Action Network sportsbook IDs in bookIds.
Can I run it for multiple days?
Yes. Add multiple values to dates.
Can I export to CSV?
Yes. Apify datasets can be exported as CSV, JSON, Excel, XML, RSS, and HTML.
Is this a betting recommendation tool?
No. It provides structured odds data. It does not advise bets or guarantee price availability.