How to Search Hotels Using SteadyAPI
Learn how to find hotels by destination using SteadyAPI. Resolve a place name to coordinates, then pull property names, ratings, and prices with the Booking.com hotel search endpoints.
READ MORECapabilities
Most calls take one identifier: a date for the schedule, a gamePk for a game, a team id for a club, or a four-digit year for a season. The schedule is where game ids come from.
Seasons take a four-digit seasonId and return the key dates: spring training, the regular season, the All-Star Game, the postseason, and the offseason. Leagues return each league's season dates, game and team counts, and wild-card settings. See examples
Teams returns each club's name, abbreviation, venue, league, division, and first year of play, or a single club when you pass teamId. History, coaches, affiliates, and the roster are separate calls that take teamIds. See examples
Pass one personIds value for a player's profile: birth date and place, height, weight, position, bats and throws, and MLB debut. Free agents for a season list each player's original team, new team if signed, position, and the date declared. See examples
The schedule lists the games on one date with their teams, status, and scores, plus any non-game events that day. Pass date as YYYY-MM-DD, or leave it out for today's schedule. Each game carries its gamePk. See examples
The games call returns the game data from MLB's live feed: teams, players, venue, weather, status, probable pitchers, and officials. The box score gives batting, pitching, and fielding totals with each player's line, and play-by-play lists every play with its pitch-by-pitch events. See examples
Win probability gives the home and away chances after each plate appearance. The matrix call returns the current win probability with the sacrifice-fly probability to each field, timestamps list when MLB's feed for the game was updated, and diffPatch returns the current game data. See examples
How a call is made
Send your key in the Authorization header as a bearer token. A scoreboard or game page usually makes these calls in this order.
Call GET /api/v1/mlb/schedule with date as YYYY-MM-DD to get the games on that day, or leave it out for today's games. See examples
Read gamePk from a schedule row. It is required by /api/v1/mlb/games, the box score, the play-by-play, win probability, and the other game feeds. See examples
GET /api/v1/mlb/teams lists every club with its id. Pass that id as teamIds to the roster, coaches, affiliates, and history calls. See examples
Shortened examples
Trimmed examples of a club, a finished game from the schedule, a player, one team's box score, and a single play. The dates and scores belong to the example game, not to today's games.
{
"id": 133,
"name": "Oakland Athletics",
"abbreviation": "OAK",
"season": 2023,
"league": {
"name": "American League"
},
"division": {
"name": "American League West"
},
"venue": {
"name": "Oakland Coliseum"
},
"active": true
}{
"id": 676265,
"fullName": "Cory Abbott",
"primaryNumber": "77",
"birthDate": "1995-09-20",
"birthCity": "San Diego",
"height": "6' 2\"",
"weight": 217,
"primaryPosition": {
"abbreviation": "P",
"name": "Pitcher"
}
}{
"result": {
"event": "Flyout",
"description": "Tim Anderson flies out to right fielder Austin Hays.",
"rbi": 0,
"awayScore": 0,
"homeScore": 0,
"isOut": true
},
"about": {
"inning": 1,
"halfInning": "top"
}
}{
"gamePk": 633094,
"season": "2021",
"officialDate": "2021-07-30",
"status": {
"detailedState": "Final"
},
"teams": {
"away": {
"score": 3,
"team": {
"name": "Chicago Cubs"
}
},
"home": {
"score": 4,
"team": {
"name": "Washington Nationals"
}
}
},
"venue": {
"name": "Nationals Park"
}
}{
"team": {
"name": "Chicago White Sox",
"abbreviation": "CWS"
},
"batting": {
"runs": 7,
"hits": 8,
"homeRuns": 3,
"strikeOuts": 11,
"baseOnBalls": 5,
"avg": ".257"
},
"pitching": {
"inningsPitched": "10.0",
"earnedRuns": 4,
"strikeOuts": 14,
"era": "3.58"
}
}Before you integrate
Answers to the questions that usually decide whether this API fits a project.
JSON from the MLB Stats API, one part of the sport per call: seasons, leagues, venues, teams and their rosters, players, free agents, the schedule for a date, or a single game. A schedule row is a summary; the box score and play-by-play are separate calls that take the game's gamePk.
No. The win probability feed shows each team's chance of winning after every plate appearance, but this API has no sportsbook lines or prices.
No. They are trimmed examples that show the shape of each response. The dates, scores, and players in a sample belong to that example.
Call the schedule for the date and read gamePk from the game you want. Pass it to /api/v1/mlb/games-boxscore, or to /api/v1/mlb/games and /api/v1/mlb/games-playbyplay for the game feed and every play.
Seasons need seasonId as a four-digit year, and every game call needs gamePk. Team history, coaches, affiliates, and roster need teamIds. The schedule date, teamId on teams, and personIds on players can be left out, which returns today's schedule, every team, or every player.
The baseball docs cover all 18 MLB endpoints, grouped into general, teams, and games, with the identifier each one takes, the date and year formats, and a sample response for each.
Every endpoint in the documentation includes a sample request in Shell, JavaScript, PHP, and Python.
Related APIs
Your key works on these APIs too, if a project also needs hockey, soccer, or market data.
NHL schedules, standings as of a date, scores that include games in progress, and each team's roster, games, and stats. Hockey API
Live and upcoming soccer matches with lineups, events, stats, and head-to-head records, plus team and player stats. One endpoint returns a bookmaker's odds for a match. Football API
Stock quotes, price history, option chains, technical indicators, and the earnings and dividend calendars. Stock and Options API
Pricing
Your plan's monthly requests work on this API and every other SteadyAPI API. Plan details, overage rates, and the Free plan's daily cap are on the pricing page. Need more volume than the largest plan? Email [email protected].
Free $0.00 per month | Starter $14.99 per month | Developer $39.99 per month | Business Popular $89.99 per month | Enterprise $299.99 per month | |
|---|---|---|---|---|---|
| Subscribe | Subscribe | Subscribe | Subscribe | Subscribe | |
| Requests per month | 500 | 10,000 | 50,000 | 250,000 | 2,500,000 |
| Stock Market API | |||||
| Options Data API | |||||
| Crypto Data API | |||||
| AliExpress API | |||||
| Reddit API | |||||
| Booking.com API | |||||
| Real Estate API | |||||
| Baseball (MLB) API | |||||
| Hockey API | |||||
| Football API | |||||
| Amazon API | |||||
| eBay API | |||||
| Walmart API | |||||
| Instagram API | |||||
| Twitter / X API | |||||
| TikTok API | |||||
| YouTube API | |||||
| AutoHub API | |||||
| ScrapeFlow | |||||
| Commercial Use | |||||
| Optional overage rate* | $1.50 per 1,000 requests | $1.05 per 1,000 requests | $0.50 per 1,000 requests | $0.09 per 1,000 requests | |
| Overage cap | up to 50,000 extra | up to 250,000 extra | up to 1,250,000 extra | up to 12,500,000 extra |
Free $0.00 per year | Starter $11.96 per month$143.52 billed yearly | Developer $32.50 per month$389.99 billed yearly | Business Popular $72.50 per month$869.99 billed yearly | Enterprise $320.83 per month$3,849.99 billed yearly | |
|---|---|---|---|---|---|
| Subscribe | Subscribe | Subscribe | Subscribe | Subscribe | |
| Requests per month | 500 | 10,000 | 50,000 | 250,000 | 2,500,000 |
| Stock Market API | |||||
| Options Data API | |||||
| Crypto Data API | |||||
| AliExpress API | |||||
| Reddit API | |||||
| Booking.com API | |||||
| Real Estate API | |||||
| Baseball (MLB) API | |||||
| Hockey API | |||||
| Football API | |||||
| Amazon API | |||||
| eBay API | |||||
| Walmart API | |||||
| Instagram API | |||||
| Twitter / X API | |||||
| TikTok API | |||||
| YouTube API | |||||
| AutoHub API | |||||
| ScrapeFlow | |||||
| Commercial Use | |||||
| Optional overage rate* | $1.50 per 1,000 requests | $1.05 per 1,000 requests | $0.50 per 1,000 requests | $0.09 per 1,000 requests | |
| Overage cap | up to 50,000 extra | up to 250,000 extra | up to 1,250,000 extra | up to 12,500,000 extra |
* Overage is optional and stays off until you turn it on in Billing. It is available on paid plans billed by card through Stripe, and not during a trial. Usage is counted in monthly periods that start on your billing day, yearly plans included. Requests past the included limit are charged at the plan's rate for each started block of 1,000, up to the overage cap, on one invoice after the period ends. Amounts under $0.50 carry over to the next invoice. If you change plans during a period, the limit and overage rate of the plan you are on when the period ends apply to the whole period.
The Free plan is also capped at 20 requests per day (New York time). Requests count by endpoint weight, and only responses with HTTP status 200 count.
Commercial use is included only on the plans that list it. If you are not sure whether your project counts as commercial use, email [email protected] before you launch.
Why SteadyAPI
Each endpoint returns one part of the game, so a page requests only the parts it shows.