oddsapiR 1.0.0
First major release. Full coverage of The Odds API v4, an httr2 HTTP stack, and per-request usage-quota reporting.
New features
- Five new endpoint wrappers complete the v4 surface:
-
toa_sports_events()– in-play and upcoming events for a sport (/v4/sports/{sport}/events). -
toa_event_markets()– available market keys per bookmaker for a single event (/v4/sports/{sport}/events/{eventId}/markets). -
toa_sports_participants()– teams or players for a sport (/v4/sports/{sport}/participants). -
toa_sports_events_history()– historical events snapshot (/v4/historical/sports/{sport}/events). -
toa_event_odds_history()– historical single-event odds (/v4/historical/sports/{sport}/events/{eventId}/odds).
-
-
toa_quota()– new exported accessor returning the usage credits (requests_remaining,requests_used,requests_last) from the most recent call. The same values are attached as attributes to every returned tibble and echoed when anoddsapiR_dataobject is printed. - Every wrapper’s
@returndocumentation is now a 3-column table (col_name | types | description) and carries a Usage quota cost note.
Breaking changes
- The HTTP stack migrated from
httrtohttr2.httrandjanitorwere removed from Imports;tibblewas promoted to Imports. -
toa_sports_odds_history()now calls the current/v4/historical/sports/{sport}/oddsendpoint (the legacy/v4/sports/{sport}/odds-historypath is deprecated upstream). Its signature changed:dateis now the required second argument andevent_idsis an optional filter. The return gains leadingtimestamp,previous_timestampandnext_timestampcolumns.
Bug fixes
- Wrappers now initialize their return variable before the
tryCatch, so an API error (500/timeout/connection reset) returns an empty tibble and aclimessage instead of throwingobject '...' not found. -
toa_event_odds()parsing is more robust (builds an explicit tibble rather thanas_tibble(data = ".")) and surfacesoutcomes_descriptionfor player-prop markets. - Returns are self-describing:
toa_sports_participants()echoessport_key, and the historical wrappers surface the snapshot timestamps.
Test infrastructure
- Tests added for all new functions; legacy tests hardened to gate on
has_toa_key(), skip on empty/out-of-season responses, and assert columns subset-direction (expect_in(sort(cols), sort(colnames(x)))) so upstream column additions don’t break the suite.
Infrastructure & tooling
- GitHub Actions workflows modernized for the Node 24 runtime (
actions/checkout@v5,r-lib/actions/*@v2,check-r-package, pak-based dependency installs). - Added project meta files:
CLAUDE.md,CONTRIBUTING.md,CODE_OF_CONDUCT.md,.github/copilot-instructions.md, issue templates, and a pull request template. -
READMEinstallation now leads withpak(withdevtoolsas an alternative).
oddsapiR 0.0.3
CRAN release: 2023-03-19
-
toa_event_odds()function added -
toa_sports_odds_history()function added
oddsapiR 0.0.2
CRAN release: 2023-01-05
- Minor under the hood changes for tidyselect deprecation of .data$ masking
oddsapiR 0.0.1
CRAN release: 2022-06-22
- Added a
NEWS.mdfile to track changes to the package. - Four core exported functions:
-
toa_sports(): Get the Sports for which the Odds API provides coverage -
toa_sports_odds(): Get the odds for the sports which the Odds API provides coverage -
toa_sports_scores(): Get the scores for the sports which the Odds API provides coverage -
toa_requests(): Get your usage and remaining calls for your key from The Odds API
-
- Tests added for each of the above functions.
