Changes

What changes, and what never does.

The shapes only ever gain fields. Nothing is renamed and nothing is removed, so code you write today keeps working.

The promise

A field you read today will be there tomorrow, with the same name, the same meaning and the same type. A value we can answer with today is a value we can still answer with later. A field that is always sent keeps being always sent.

What we do is add. New fields appear, and new words appear in lists of words. So read past a field you do not recognise, and treat a word you do not know as something to skip rather than something to fail on. A consumer that does both never breaks.

A test in this codebase compares the published document with the last approved one and fails on any removal or retyping. The promise is not a policy somebody remembers; it is a build that goes red.

Every change, dated

Changes to the API
DateWhat changed
2026-09-22First release.
2026-09-23Season totals for a team, and one player's season, previous seasons and career.
2026-09-23A team answer carries the link to its logo, logoUrl.
2026-09-25A play carries where the ball went, hitLocation. In the event log, a game start can carry ordersOpen, a move of fielders can carry tenthFielder, and a placed runner can be on first, second or third base.
2026-09-28A new outcome for a turn at bat, obstruction.
2026-09-28lob changed its meaning. A batter is charged the runners left on base only when he makes an out.
2026-09-28On a player, previous is now always an empty list and career is always null. A key reads the season of its own team only.
2026-10-05hitLocation.angle now runs from -180 to 180, so that a foul ball behind home plate has a place.
2026-10-07The event log reference now lists the fielding detail and the hit position that an entry can carry: fielding, hitLocation, errorBy, wouldHaveBeenOut, and battedBall on a foul.
2026-10-07The rule for a rewind in the event log changed. A correction to an entry that the rewind keeps is kept, even when the correction was recorded before the rewind.
2026-10-07The event log reference now says what happens when a coach starts a game over: every entry is removed, the lineups come back as new entries, and sequence begins again at 0. The API always worked this way.
2026-10-23Earned runs (er) are now worked out by rebuilding the half-inning as it would have gone with no error and no passed ball (OBR 9.16). A finished game's er can go up or down from what it showed before. In a game still being played, a run can be in r before it is in er: er can rise on a later play in the same half-inning, once the rebuilt inning decides the run.
2026-10-29The Data API is included with every plan: Base 1 team, Standard 3, Pro 6. Nothing is sold apart from the plan. The shared limit for all the keys on one account rose from 600 to 720 requests a minute. The sentences of api-lapsed and no-api-seat changed; the codes did not.

If we ever have to break something

We would open a second address beside this one and leave this one answering. A change that breaks your code will not arrive at an address you already use.