---
title: SportsStack API Integration on Truto
slug: sportsstack
category: Fitness
canonical: "https://truto.one/integrations/detail/sportsstack/"
---

# SportsStack API Integration on Truto



**Category:** Fitness  
**Status:** Beta

## MCP-ready AI tools

Truto exposes 61 tools for SportsStack that AI agents can call directly.

- **list_all_sports_stack_stat_types** — List all statistical data type definitions in the SportsStack data dictionary, normalized across multiple data providers. Returns: name, description, type, providers for each stat type, spanning baseball, basketball, football, golf, ice hockey, motorsports, soccer, and tennis.
- **list_all_sports_stack_futures** — List future markets in sportsstack, including tournament outrights, season totals, and player props. Returns: id, future_type, league_id, tournament_id, market_type_id. Optionally include per-market outcomes via include_outcomes=true. Max 1000 results per page.
- **get_single_sports_stack_future_by_id** — Get a single sportsstack future market by id. Returns: id, future_type, league_id, tournament_id, market_type_id. Required: id. Optionally include outcomes with include_outcomes=true.
- **list_all_sports_stack_markets** — List sportsstack betting markets filtered by league. Returns: common_model_id, name, market_type, event_id, league_id, status, updated_at, is_future, tournament_id, start_date, and outcomes with nested odds. Required: league_id. Deprecated — use /api/v1/market_odds for better performance.
- **get_single_sports_stack_market_by_id** — Get a single sportsstack betting market by id. Returns: common_model_id, name, market_type, event_id, league_id, status, updated_at, is_future, tournament_id, start_date, and outcomes with nested odds. Required: id.
- **list_all_sports_stack_market_odds** — List sportsstack betting markets with nested outcomes and odds data. Returns: common_model_id, name, market_type, status, league_id, and outcomes (each containing selection, line, status, and nested odds with price, sportsbook, aggregator). Required: league_id. Max page size 250. Deprecated — prefer GET /api/v1/odds for larger page sizes and a flat response.
- **get_single_sports_stack_event_odd_by_id** — Get pre-structured odds for a sportsstack event by id, optimized for single-call rendering of the full betting page. Returns: main_lines (6-box data with away/home team spread, moneyline, and total markets) and other_markets (non-main-line markets grouped by market_type). Required: id.
- **list_all_sports_stack_odds** — List sportsstack betting odds filtered by league or event. Returns: id, event_id, league_id, market_id, outcome_id, sportsbook, aggregator, market_type, is_main, is_live, updated_at. At least one of league_id or event_id must be provided. Defaults to latest odds only per outcome/sportsbook/aggregator combination; set latest_only=false for full historical data.
- **get_single_sports_stack_odd_by_id** — Get a single sportsstack betting odd by its UUID. Returns: id, event_id, league_id, market_id, outcome_id, sportsbook, aggregator, market_type, is_main, is_live, updated_at. Required: id.
- **list_all_sports_stack_betting_recommendations** — List Inside Edge betting recommendations in sportsstack. Returns recommendation-only rows including league_id, event_id, player_id, team_id, market_type, and recommendation_type fields; priced odds fields are intentionally excluded. Max 1000 rows per page.
- **create_a_sports_stack_parlay_odd** — Price a same-game parlay for a SportsStack MLB pregame event directly against supported sportsbooks (FanDuel and DraftKings by default). Returns: common_model_id, event_id, status, quote_type, legs, quotes, requested_at, and metadata. Required: id, legs. The legs array must contain exactly 2 legs.
- **list_all_sports_stack_injuries** — List player injuries in sportsstack filtered by league. Returns: common_model_id, player_id, source, status, injury_type, confidence, reported_at, practice_participation, recent_practice_status, return_date, source_tier, and more. Required: league_id.
- **list_all_sports_stack_injury_timelines** — List the chronological history of injury status observations for a player in sportsstack. Returns: id, player_id, status, injury_type, source, source_tier, confidence, reported_at, inserted_at, and updated_at. Required: id.
- **list_all_sports_stack_news** — List sportsstack news items sorted by date (newest first), with flexible filtering by league, entity type, entity ID, and date range. Returns: id, headline, summary, analysis, date, for_entity_type, for_entity_id, league_id, tags, author, source, betting_analysis, priority, inserted_at, updated_at, and optional entity_tags. Required: league_id.
- **get_single_sports_stack_news_by_id** — Get a single sportsstack news item by id. Returns the complete news item including headline, summary, analysis, betting_analysis, author, source, date, for_entity_type, for_entity_id, league_id, tags, priority, edit_history, original_content, metadata, inserted_at, and updated_at. Required: id.
- **get_single_sports_stack_event_scoreboard_by_id** — Get the latest event scoreboard for a sportsstack event by id. Returns the live game state including common_model_id, event_id, sport, league, period, time_on_clock, home_score, away_score, period_half, period_half_over, details (sport-specific JSONB), inserted_at, and updated_at. Required: id.
- **list_all_sports_stack_mappings** — List sportsstack entity identity mappings ordered by most recently updated first. Returns: id, entity_type, integration, league, source_id, common_model_id, inserted_at, updated_at. Supports optional filters (entity_type, integration, league, source_id) and enrichment params (include_all_mappings, return_source_id_format, include_source_mappings_by_source).
- **get_single_sports_stack_mapping_by_id** — Get a single sportsstack entity identity mapping by id. Returns: id, entity_type, integration, league, source_id, common_model_id, inserted_at, updated_at. Required: id.
- **list_all_sports_stack_events** — List sportsstack events for a league, optionally filtered by season year, week, date, season type, status, or participant. Returns: common_model_id, title, scheduled_start_time, status, season_year, participants, and event_scoreboard. Required: league_id.
- **get_single_sports_stack_event_by_id** — Get a single sportsstack event by id. Returns: common_model_id, title, scheduled_start_time, status, season_year, league_id, participants, and event_scoreboard. Required: id.
- **list_all_sports_stack_global_identities** — List global player identity groups in sportsstack, optionally filtering by name or ID. Returns: global_player_id, canonical_name, player_ids, and players (each with common_model_id, full_name, is_active, league_id, league_abbreviation, and team_id). Max 1000 items per page.
- **list_all_sports_stack_leagues** — List sportsstack leagues, optionally filtered by sport. Returns: name, abbreviation, common_model_id, sport_id, and image_url for each league in the collection.
- **get_single_sports_stack_league_by_id** — Get a single sportsstack league by id. Returns: name, abbreviation, common_model_id, sport_id, and image_url. Required: id.
- **list_all_sports_stack_players** — List sportsstack players for a given league. Returns: common_model_id, full_name, position, team_id, is_active, birthday, height_in, weight_lbs, image_url, and additional biographical and draft fields. Optionally filter by team_id or search by name via search_phrase. Required: league_id.
- **get_single_sports_stack_player_by_id** — Get a single sportsstack player by id. Returns: common_model_id, full_name, position, team_id, is_active, birthday, height_in, weight_lbs, image_url, and additional biographical and draft fields. Required: id.
- **list_all_sports_stack_seasons** — List seasons in sportsstack, optionally filtered by league, year, type, or status. Returns: common_model_id, name, season_year, season_type, status, start_date, end_date, league_id, abbreviation, image_url, and metadata.
- **get_single_sports_stack_season_by_id** — Get a single sportsstack season by id. Returns: common_model_id, name, season_year, season_type, status, start_date, end_date, league_id, abbreviation, image_url, and metadata. Required: id.
- **list_all_sports_stack_sports** — List all sports available in sportsstack. Returns: name, abbreviation, common_model_id, image_url. Optionally filter results by sport name.
- **get_single_sports_stack_sport_by_id** — Get a single sport by id from sportsstack. Returns: name, abbreviation, common_model_id, image_url. Required: id.
- **list_all_sports_stack_teams** — List sportsstack teams for a given league. Returns: common_model_id, name, abbreviation, market, nickname, status, colors, image_url, league_id, and metadata. Optional filters include search_phrase, fuzzy matching, and status. Required: league_id.
- **get_single_sports_stack_team_by_id** — Get a single sportsstack team by id. Returns: common_model_id, name, abbreviation, market, nickname, status, colors, image_url, league_id, and metadata. Required: id.
- **get_single_sports_stack_tournament_by_id** — Get a single sportsstack tournament by id. Returns: common_model_id, name, bracket_type, tournament_type, status, start_date, end_date, season_year, and league_id. Required: id.
- **list_all_sports_stack_tournaments** — List sportsstack tournaments. Returns: common_model_id, name, bracket_type, tournament_type, status, start_date, end_date, season_year, and league_id.
- **get_single_sports_stack_grader_odd_by_id** — Grade a single bet in sportsstack using the OpticOdds-compatible grader endpoint. Returns: fixture_id, status, result, line, player_score, graded_at, sportsstack settlement enrichment (action, consensus_value, settlement_confidence), and opticodds grading data. Required: fixture_id, market, name.
- **create_a_sports_stack_settlement_batch** — Evaluate settlement confidence for a batch of markets in sportsstack. Returns a batch settlement confidence response; the upstream API does not enumerate response body fields. Required: league, markets. Batch size is limited to 200 markets per request.
- **list_all_sports_stack_gradeable_props** — List gradeable stat types and entities for a settlement event in sportsstack. Returns an array of gradeable prop objects; the upstream API does not enumerate the field-level structure of each record. Required: id. Optionally filter by league abbreviation (e.g., 'nba').
- **get_single_sports_stack_settlement_by_id** — Query settlement confidence for a single betting market in SportsStack. Returns: action (settle/caution/hold recommendation), settlement_confidence score, consensus_value across providers, reasoning, result (win/loss/push), provider_count, margin_safety, and reliability details. Required: event_id, entity_id, entity_type, stat_name, line, league.
- **get_single_sports_stack_settlement_result_by_id** — Get settlement results for an entire event in sportsstack. Returns settlement result data with format-specific attributes whose shape varies by the format parameter ('full' for one row per real outcome, 'flat' for legacy collapsed rows, 'outcomes' for per-outcome confidence grouped by entity/stat). Required: id, league.
- **list_all_sports_stack_market_types** — List all market type definitions used in sports betting in sportsstack. Returns: canonical_name, display_name, category, provider_aliases, and stat_mapping for each market type. Optionally filter results by category (e.g., core, player_props, game_props) or provider (e.g., the_odds_api, sportradar_sr).
- **get_single_sports_stack_data_health_by_id** — Get data health status for a sportsstack tenant/league combination. Returns: health_score (0–100), league_id, league_abbreviation, tenant_id, provider, validation_timestamp, results (entity counts for teams, players, events, seasons, coverage percentages, and relationship completeness), and issues (list of detected data problems with type, severity, message, and count). Required: league_id.
- **list_all_sports_stack_event_plays** — List play-by-play actions for a sportsstack event. Returns: id, description, play_type, event_id, period, play_number, offense_id, defense_id, game_context, play_details, minutes_remaining, seconds_remaining, time_on_clock, source, league_id, tenant_id, and common_model_id. Required: id (Event UUID).
- **list_all_sports_stack_play_stats** — List play-level player statistics in sportsstack across all events. Returns: common_model_id, player_id, event_id, play_id, play_number, play_type, period, league_id, inserted_at, and player_info (including role and per-play statistics). Optionally filter by player_id, event_id, or league_id. Defaults to 1000 records per page.
- **list_all_sports_stack_event_stats** — List sportsstack event stats for players and teams across sporting events. Returns: common_model_id, event_id, for_entity_id, for_entity_type, is_projection, source, season_year, week, scheduled_start_time, team_id, data, inserted_at, updated_at.
- **get_single_sports_stack_event_stat_by_id** — Get a single sportsstack event stat record by id. Returns: common_model_id, event_id, for_entity_id, for_entity_type, is_projection, source, season_year, week, scheduled_start_time, team_id, data, inserted_at, updated_at. Required: id.
- **list_all_sports_stack_rankings** — List sportsstack rankings and standings snapshots for a league. Returns: id, for_entity_id, for_entity_type, season_year, season_type, table_type, ranking_overall, record_wins, record_losses, primary_group, secondary_group, and split/scoring fields. Required: league_id.
- **get_single_sports_stack_ranking_by_id** — Get a single sportsstack ranking or standings snapshot by id. Returns the full record including id, for_entity_id, for_entity_type, league_id, season_year, season_type, table_type, ranking_overall, record_wins, record_losses, primary_group, secondary_group, split stats, scoring fields, and metadata. Required: id.
- **list_all_sports_stack_season_stats** — List season-level statistics for players and teams in sportsstack. Returns: common_model_id, for_entity_id, for_entity_type, season_year, source, is_projection, team_id, inserted_at, updated_at, and a data object of aggregated season stats (e.g. passing_yards, rushing_yards, games_played, touchdowns). Required: league_id, season_year. Use player_id/team_id for single-entity lookups or player_ids/team_ids for bulk.
- **get_single_sports_stack_season_stat_by_id** — Get a single season stats record by id in sportsstack. Returns: common_model_id, for_entity_id, for_entity_type, season_year, source, is_projection, team_id, inserted_at, updated_at, and a data object of aggregated season stats (e.g. passing_yards, rushing_yards, games_played, touchdowns). Required: id.
- **list_all_sports_stack_standings** — List sportsstack standings snapshots for a league, optionally filtered by entity, season, group, and source provider. Returns: id, for_entity_id, for_entity_type, league_id, season_year, season_type, record_wins, record_losses, record_ties, ranking_overall, primary_group, secondary_group, table_type, metadata, and full split/scoring fields. Required: league_id.
- **get_single_sports_stack_standing_by_id** — Get a single sportsstack standings snapshot by id. Returns: id, for_entity_id, for_entity_type, league_id, season_year, season_type, record_wins, record_losses, record_ties, ranking_overall, primary_group, secondary_group, table_type, metadata, and full split/scoring fields. Required: id.
- **create_a_sports_stack_webhook** — Send a test webhook delivery in sportsstack, bypassing the batcher and RabbitMQ to verify the HTTP delivery path independently of the pipeline. Returns: status, destination_id, destination_name, and message. If destination_id is omitted, the first active webhook destination for the tenant is used.
- **get_single_sports_stack_tournament_bracket_by_id** — Get the bracket structure for a sportsstack tournament by id. Returns: tournament (name, bracket_type, status, start_date, end_date), rounds (each with round_number, round_name, round_type, and matchups containing position, home_team, away_team, status, winner_id, and series_score), plus groups and metadata. Required: id.
- **list_all_sports_stack_global_identity_players** — List global player identity groups in sportsstack, grouping cross-league player records under a single canonical identity. Returns: global_player_id, canonical_name, player_ids, and a players array where each entry includes common_model_id, full_name, is_active, league_id, league_abbreviation, and team_id. Optionally filter by search_phrase, global_player_id, or player_id.
- **get_single_sports_stack_event_linescore_by_id** — Get the linescore for a sportsstack event by id. Returns: common_model_id, event_id, sport, league. Required: id.
- **list_all_sports_stack_event_related_stats** — List player or team performance statistics for a specific sportsstack event. Returns: common_model_id, for_entity_type, for_entity_id, event_id, source, updated_at, and week. Required: id, for_entity_type.
- **list_all_sports_stack_event_play_stats** — List play statistics for a sportsstack event by event id. Returns sport-specific statistical records whose fields vary by sport type; consult the upstream sportsstack docs for the field-level breakdown. Required: id.
- **list_all_sports_stack_player_play_stats** — List play statistics records for a sportsstack player by their id. Returns records with id and sport-specific stat attributes that vary by sport and league (e.g., basketball, football, baseball). Required: id.
- **list_all_sports_stack_latest_odds** — List the latest betting market odds from sportsstack. Returns: market_id, market_name, market_status, market_type, market_updated_at, and a nested outcomes array — each outcome containing outcome_id, outcome_name, outcome_status, outcome_line, and an odds array with odds_price, odds_price_type, odds_sportsbook, odds_is_main, and odds_aggregator.
- **list_all_sports_stack_news_by_entity** — List news articles for a specific entity in sportsstack by entity type and entity ID. Returns: for_entity_id, for_entity_type, event_id, entity_tags, and edit_history. Pass include_entity_tags=true to include tagged entity mentions in each article. Required: type, id.
- **list_all_sports_stack_news_by_league** — List news items for a specific league in sportsstack. Supports optional filtering by entity type and entity ID to narrow results to news for specific players, teams, or events within the league. Returns: id. Required: id.
- **list_all_sports_stack_league_injuries** — List the league-wide injury report for a sportsstack league. Returns: common_model_id, player_id, source, updated_at for each injured player. Required: id (league UUID).

## How it works

1. **Link your customer's SportsStack account.** Use Truto's frontend SDK; we handle every OAuth and API key flow so you don't need to create the OAuth app.
2. **Authentication is automatic.** Truto refreshes tokens, stores credentials securely, and injects them into every API request.
3. **Call Truto's API to reach SportsStack.** The Proxy API is a 1-to-1 mapping of the SportsStack API.
4. **Get a unified response format.** Every response uses a single shape, with cursor-based pagination and data in the `result` field.

## Use cases

- **Launch a DFS or Pick'em product without managing sports data vendors** — Fantasy and Pick'em operators can use Truto to pull normalized player stats, season stats, and injury data from SportsStack to auto-generate prop lines and grade user picks in real time, without negotiating direct contracts or maintaining ingestion pipelines.
- **Power live odds and betting widgets for media and affiliate publishers** — Sports media platforms can embed live odds, event scoreboards, and contextual news via SportsStack's market and event endpoints, letting publishers ship affiliate-driving betting widgets across thousands of pages from a single Truto-managed connection.
- **Automate bet settlement and grading for sportsbooks and tracking apps** — Risk management and bet-tracking SaaS can integrate SportsStack's grader and settlement batch endpoints through Truto to evaluate confidence scores and consensus values, triggering instant payouts on high-confidence outcomes while flagging contested wagers for review.
- **Price Same-Game Parlays inside social and community betting apps** — Social betting platforms can use the parlay odd creation endpoint via Truto to dynamically price multi-leg SGPs against DraftKings and FanDuel inventory, letting touts share live-priced bet slips and notify followers when wagers settle.
- **Build cross-provider identity resolution for sports analytics tools** — Analytics platforms can use SportsStack's global identities and mappings endpoints through Truto to align internal player and team IDs with a canonical common_model_id, eliminating reconciliation work across leagues, providers, and data sources.

## What you can build

- **Real-time scoreboard and play-by-play UI** — Stream live game state using event scoreboards, linescores, and event plays endpoints plus SportsStack webhooks to power live in-game UIs without polling.
- **Automated bet grading and settlement engine** — Submit user bet slips to the settlement batch endpoint and consume grader odd results to auto-settle wagers based on settlement_confidence and consensus values.
- **Same-Game Parlay pricing module** — Let users construct 2-leg SGPs and price them dynamically against supported sportsbooks via the create parlay odd endpoint.
- **Player prop generation for fantasy and Pick'em** — Combine season stats, event stats, and player play stats to auto-generate prop lines and grade them as live play stats stream in.
- **Injury-aware projection and alerting system** — Use injury timelines and league injuries endpoints to surface chronological practice and status observations for projections, lineup tools, and push alerts.
- **Odds comparison and Inside Edge recommendation widgets** — Render standardized spread, moneyline, and totals modules using market odds and latest odds, augmented with betting recommendations tied to specific market types and players.

## FAQs

### How does authentication to SportsStack work through Truto?

Truto manages SportsStack API credentials on behalf of your tenants. Your end users connect once through Truto's connection flow, and Truto handles credential storage, refresh, and injection on every request so your team never touches raw keys.

### Can we receive real-time updates instead of polling?

Yes. SportsStack supports webhooks via the create webhook endpoint, which you can use through Truto to receive event scoreboard, play, and odds changes. This is the recommended pattern for live betting and in-game UIs.

### How do we reconcile our internal player and team IDs with SportsStack?

Use the global identities, global identity players, and mappings endpoints to align your internal IDs with SportsStack's common_model_id. This gives you a stable cross-provider, cross-league identifier for every entity.

### What data do we get back when settling a bet?

The grader odd and settlement endpoints return win/loss/push status, settlement_confidence, consensus_value, action recommendations (settle vs. hold), and reliability provider counts, so you can decide whether to auto-payout or route to manual review.

### Can we monitor whether SportsStack data is complete before relying on it?

Yes. The data health endpoint exposes coverage percentages and missing relationship metadata per entity, which you can use to gate automated workflows or trigger fallback behavior when coverage drops.

### Which sportsbooks are supported for odds and parlay pricing?

SportsStack normalizes odds across major sportsbooks and supports dynamic Same-Game Parlay pricing against books including DraftKings and FanDuel via the create parlay odd endpoint. Exact book availability depends on market and event.

## Related reading

- [Connect SportsStack to ChatGPT: Sync Live Game Data and Betting Odds](https://truto.one/blog/connect-sportsstack-to-chatgpt-sync-live-game-data-and-betting-odds/) — Learn how to connect SportsStack to ChatGPT using a managed MCP server. Automate live game tracking, odds analysis, and bet settlements with AI agents.
- [Connect SportsStack to Claude: Analyze Team Stats and Injury Reports](https://truto.one/blog/connect-sportsstack-to-claude-analyze-team-stats-and-injury-reports/) — A definitive engineering guide to connecting SportsStack to Claude using Truto's managed MCP server. Automate odds analysis, injury reporting, and bet settlements.
