Important
This project is under heavy development.
Note
Made by @impuestito_org
This Express.js API provides access to Xbox Game Pass game information, including current games, new additions, upcoming games, and games leaving the service. The API fetches data from Microsoft's official Game Pass catalog and provides it in a structured format.
- Development:
http://localhost:3000
- Production: Your production URL
- Port: 3000 (default) or specified by
process.env.PORT
- CORS: Enabled
- JSON formatting: 2 spaces
- Security: Helmet middleware enabled
- Logging: Morgan middleware (combined format)
- Initial data fetch occurs on server start
- Scheduled updates run daily at 12:00 PM (noon) using cron
- Older data (>7 days) is automatically cleaned up
Base path: /api/gamepass
or /api/gamepass/full
GET /
- Returns complete Game Pass dataGET /all
- Returns all current Game Pass gamesGET /new
- Returns newly added gamesGET /coming
- Returns upcoming gamesGET /leaving
- Returns games leaving soon
Response includes full game details including:
{
"id": "string",
"title": "string",
"EAPlay": boolean,
"imageTile": "string",
"dateAdded": "string",
"platforms": {
"one": boolean,
"series": boolean,
"windows": boolean,
"cloud": boolean
},
"price": object
}
Base path: /api/gamepass/extension
GET /
- Returns simplified data for extensionsGET /all
- Returns all current games (simplified)GET /new
- Returns new games (simplified)GET /coming
- Returns upcoming games (simplified)GET /leaving
- Returns leaving games (simplified)
Response includes simplified game data:
{
"id": "string",
"title": "string",
"EAPlay": boolean,
"platforms": object
}
Base path: /api/gamepass/bot
GET /
- Returns basic data for bot usageGET /all
- Returns all games (basic info)GET /new
- Returns new games (basic info)GET /coming
- Returns upcoming games (basic info)GET /leaving
- Returns leaving games (basic info)GET /updates
- Returns combined new/coming/leaving gamesGET /search
- Returns searchable game data
Response includes minimal game data:
{
"id": "string",
"title": "string"
}
Base path: /api/gamepass/search
-
GET /:gameId/:market
- Search for specific game detailsgameId
: Game's Store IDmarket
: Market code (e.g., "us", "es-ar")
-
GET /price/:gameId/:market
- Get specific game pricegameId
: Game's Store IDmarket
: Market code for pricing
Base path: /api/list
GET /:list
- Returns game IDs for different categories- Available lists:
Deal
New
TopPaid
TopFree
BestRated
MostPlayed
ComingSoon
Gold
- Available lists:
The API stores data in JSON files:
output-full.json
: Complete game dataoutput-extension.json
: Simplified data for extensionsoutput-bot.json
: Basic data for bot usage
Data is stored in ./output/
directory with timestamped subdirectories for historical data.
404
: Resource not found500
: Server error or missing parameters
Currently no rate limiting implemented. Consider implementing for production use.
- Game Pass Catalog API:
https://catalog.gamepass.com
- Microsoft Store API:
https://displaycatalog.mp.microsoft.com
- Recommendations API:
https://reco-public.rec.mp.microsoft.com
- Node.js
- npm/yarn
npm install
npm start
src/
├── helpers/
│ ├── gamepass/
│ │ ├── saveAllGames.js
│ │ └── removeOlderFolders.js
│ ├── gameMapper.js
│ └── queryComposer.js
├── routes/
│ ├── gamepass-full.js
│ ├── gamepass-extension.js
│ ├── gamepass-bot.js
│ ├── gamepass-search.js
│ ├── games.js
│ └── list.js
└── index.js
- IDs for Deal:
/api/list/Deal
, - IDs for New:
/api/list/New
, - IDs for TopPaid:
/api/list/TopPaid
, - IDs for TopFree:
/api/list/TopFree
, - IDs for BestRated:
/api/list/BestRated
, - IDs for MostPlayed:
/api/list/MostPlayed
, - IDs for ComingSoon:
/api/list/ComingSoon
, - IDs for Gold:
/api/list/FreePlayDays
,
- Deal catalog:
/api/games/Deal
, - New catalog:
/api/games/New
, - TopPaid catalog:
/api/games/TopPaid
, - TopFree catalog:
/api/games/TopFree
, - BestRated catalog:
/api/games/BestRated
, - MostPlayed catalog:
/api/games/MostPlayed
, - ComingSoon catalog:
/api/games/ComingSoon
, - Gold catalog:
/api/games/FreePlayDays
,
market=ar
language=es-ar
itemTypes=Game
deviceFamily=Windows.Xbox
count=2000
skipItems=0
This implementation fetch game data from the Micosoft Xbox public API
https://reco-public.rec.mp.microsoft.com/channels/Reco/V8.0/Lists/api/list/
{
Deal: 'Computed/Deal',
New: 'Computed/New',
TopPaid: 'Computed/TopPaid',
TopFree: 'Computed/TopFree',
BestRated: 'Computed/BestRated',
MostPlayed: 'Computed/MostPlayed',
ComingSoon: 'Computed/ComingSoon',
Gold: 'collection/FreePlayDays',
}
{
market: 'ar',
language: 'es-ar',
itemType: 'Game',
deviceFamily: 'Windows.Xbox',
count: '2000',
skipItems: '0',
}
https://displaycatalog.mp.microsoft.com/v7.0/products
{
market: 'ar',
languages: 'es-ar',
bigIds: '9NJRX71M5X9P,9N9J38LPVSM3',
}
| Requires research and confirmation
- Gold:
9ZH7BH6P9RM7
- EA Play:
9N8KCDNKJJQ6
||B0HFJ7PW900M
- Game Pass:
9SJCZDHW896G
||9WNZS2ZC9L74
- Game Pass Ultimate:
9SQ1C79LQTJJ
<-- UNKNOWN. TO BE DEFINED.
- Xbox Store: https://www.xbox.com/es-ar/games/all-games
- Microsoft Store: https://www.microsoft.com/es-ar/store/deals/games/xbox