Skip to content

Ngs

griddy / nfl / endpoints / ngs**

Next Gen Stats (NGS) API endpoints.

This module provides access to NFL Next Gen Stats data from nextgenstats.nfl.com, including player statistics, game information, charts, highlights, and leaderboards.


Module Contents

Next Gen Stats (NGS) API endpoints.

This module provides access to NFL Next Gen Stats data from nextgenstats.nfl.com, including player statistics, game information, charts, highlights, and leaderboards.

Classes

NgsBaseSDK

NgsBaseSDK(
    sdk_config: SDKConfiguration,
    parent_ref: Optional[object] = None,
)

Bases: BaseSDK


              flowchart TD
              griddy.nfl.endpoints.ngs.NgsBaseSDK[NgsBaseSDK]
              griddy.nfl.basesdk.BaseSDK[BaseSDK]

                              griddy.nfl.basesdk.BaseSDK --> griddy.nfl.endpoints.ngs.NgsBaseSDK
                


              click griddy.nfl.endpoints.ngs.NgsBaseSDK href "" "griddy.nfl.endpoints.ngs.NgsBaseSDK"
              click griddy.nfl.basesdk.BaseSDK href "" "griddy.nfl.basesdk.BaseSDK"
            

Base SDK for Next Gen Stats endpoints.

Overrides _resolve_base_url to use nextgenstats.nfl.com.

Source code in griddy/nfl/basesdk.py
def __init__(
    self,
    sdk_config: SDKConfiguration,
    parent_ref: Optional[object] = None,
) -> None:
    self.sdk_configuration = sdk_config
    self.parent_ref = parent_ref

NextGenStats

NextGenStats(
    sdk_config: SDKConfiguration,
    parent_ref: Optional[object] = None,
)

Bases: NgsBaseSDK


              flowchart TD
              griddy.nfl.endpoints.ngs.NextGenStats[NextGenStats]
              griddy.nfl.endpoints.ngs.NgsBaseSDK[NgsBaseSDK]
              griddy.nfl.basesdk.BaseSDK[BaseSDK]

                              griddy.nfl.endpoints.ngs.NgsBaseSDK --> griddy.nfl.endpoints.ngs.NextGenStats
                                griddy.nfl.basesdk.BaseSDK --> griddy.nfl.endpoints.ngs.NgsBaseSDK
                



              click griddy.nfl.endpoints.ngs.NextGenStats href "" "griddy.nfl.endpoints.ngs.NextGenStats"
              click griddy.nfl.endpoints.ngs.NgsBaseSDK href "" "griddy.nfl.endpoints.ngs.NgsBaseSDK"
              click griddy.nfl.basesdk.BaseSDK href "" "griddy.nfl.basesdk.BaseSDK"
            

Next Gen Stats SDK providing access to NGS data.

This SDK provides access to NFL Next Gen Stats data including: - League schedules and team information - Live game scores and game center data - Player passing, receiving, and rushing statistics - Top plays and leaderboards - Charts and highlights - News articles and videos

Usage

nfl = GriddyNFL()

League data

schedule = nfl.ngs.league.get_current_schedule() teams = nfl.ngs.league.get_teams()

Statistics

passing = nfl.ngs.stats.get_passing_stats(season=2025, season_type="REG")

Leaders

fastest = nfl.ngs.leaders.get_fastest_ball_carriers(season=2025)

Source code in griddy/nfl/basesdk.py
def __init__(
    self,
    sdk_config: SDKConfiguration,
    parent_ref: Optional[object] = None,
) -> None:
    self.sdk_configuration = sdk_config
    self.parent_ref = parent_ref

Attributes

league instance-attribute
league: NgsLeague

League schedules and team information

games instance-attribute
games: NgsGames

Live scores and game center data

stats instance-attribute
stats: NgsStats

Player passing, receiving, and rushing statistics

leaders instance-attribute
leaders: NgsLeaders

Top plays and leaderboards

content instance-attribute
content: NgsContent

Charts and highlights

news instance-attribute
news: NgsNews

News articles and videos (uses api.nfl.com)

Functions

__getattr__
__getattr__(name: str)

Lazily load sub-SDKs on first access.

Source code in griddy/nfl/endpoints/ngs/__init__.py
def __getattr__(self, name: str):
    """Lazily load sub-SDKs on first access."""
    if name in self._sub_sdk_map:
        module_path, class_name = self._sub_sdk_map[name]
        try:
            # Dynamic import with retry logic (handles occasional KeyError)
            module = None
            for attempt in range(3):
                try:
                    module = importlib.import_module(module_path)
                    break
                except KeyError:
                    sys.modules.pop(module_path, None)
            if module is None:
                raise ImportError(f"Failed to import {module_path}")

            klass = getattr(module, class_name)
            instance = klass(self.sdk_configuration, parent_ref=self.parent_ref)
            setattr(self, name, instance)
            return instance
        except ImportError as e:
            raise AttributeError(
                f"Failed to import module {module_path} for attribute {name}: {e}"
            ) from e
        except AttributeError as e:
            raise AttributeError(
                f"Failed to find class {class_name} in module {module_path}: {e}"
            ) from e

    raise AttributeError(
        f"'{type(self).__name__}' object has no attribute '{name}'"
    )
__dir__
__dir__()

Include lazy-loaded sub-SDKs in dir() output.

Source code in griddy/nfl/endpoints/ngs/__init__.py
def __dir__(self):
    """Include lazy-loaded sub-SDKs in dir() output."""
    default_attrs = list(super().__dir__())
    lazy_attrs = list(self._sub_sdk_map.keys())
    return sorted(list(set(default_attrs + lazy_attrs)))