diff --git a/CHANGELOG.md b/CHANGELOG.md index 8d5541a..9c6acf0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,19 @@ All notable changes to the `sharpapi` Python SDK are documented here. +## 0.4.0 — 2026-05-31 + +### Added + +- `OddsLine.is_active` (bool, default `True`). `False` indicates the market is + suspended/closed with the price frozen — mirrors OpticOdds `locked-odds` but + as a queryable field. Absent on the wire is treated as `True`. + +### Backward compatibility + +- Additive optional field with a `True` default — existing code is unaffected, + and older API servers that omit the key parse as active. + ## 0.3.2 — 2026-05-07 ### Changed diff --git a/pyproject.toml b/pyproject.toml index 9bbdd93..338d3b8 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "hatchling.build" [project] name = "sharpapi" -version = "0.3.3" +version = "0.4.0" description = "Official Python SDK for the SharpAPI real-time sports betting odds API" readme = "README.md" license = "MIT" diff --git a/src/sharpapi/__init__.py b/src/sharpapi/__init__.py index d27c2c0..2e24c0a 100644 --- a/src/sharpapi/__init__.py +++ b/src/sharpapi/__init__.py @@ -61,7 +61,7 @@ ) from .streaming import EventStream -__version__ = "0.3.1" +__version__ = "0.4.0" __all__ = [ # Clients diff --git a/src/sharpapi/models.py b/src/sharpapi/models.py index 6062c35..f4ec9ef 100644 --- a/src/sharpapi/models.py +++ b/src/sharpapi/models.py @@ -221,6 +221,10 @@ class OddsLine(BaseModel): event_start_time: str | None = None timestamp: str | None = None is_live: bool = False + # True (default) = market open and bettable; False = market suspended/closed + # with the price frozen (mirrors OpticOdds locked-odds). Absent on the wire + # is treated as True. SHA-3803. + is_active: bool = True deep_link: str | None = None player_name: str | None = None stat_category: str | None = None