Xbox API endpoint
Returns one page of the full Xbox storefront catalog (games, add-ons, and subscriptions), optionally sorted and/or filtered. With no sort/filter parameters, returns the store's own default (relevance) order. Multiple values for a repeatable filter (genre, price, platform, subscription, age_rating, multiplayer, technical_features, handheld_compatibility) match ANY of them (logical OR); different filter fields combine as logical AND. Cursor-paginated, fixed at 25 items per page.
/xbox/browseQuery parameters:
cursor (optional) — opaque pagination cursor from a previous response's next_cursor. Omit for the first page.sort (optional, default relevance) — one of relevance, release_date_desc, most_popular, price_asc, price_desc, most_wishlisted, discount_desc, title_asc, title_desc.genre (optional, repeatable) — matches ANY given genre. One of Action & adventure, Card & board, Casino, Classics, Companion, Educational, Family & kids, Fighting, Multi-Player Online Battle Arena, Music, Other, Platformer, Puzzle & trivia, Racing & flying, Role playing, Shooter, Simulation, Sports, Strategy, Tools, Word.price (optional, repeatable) — one of OnSale, 0 (Free), 0.01To5, 5To10, 10To20, 20To40, 40To60, 60To.platform (optional, repeatable) — one of XboxSeriesX|S, XboxOne, PC, Handheld, CloudGaming, XboxPlayAnywhere.subscription (optional, repeatable) — filter to titles included with a subscription, by the subscription's own product id. One of CFQ7TTC0KHS0 (Game Pass Ultimate), CFQ7TTC0P85B (Game Pass Premium), CFQ7TTC0K5DJ (Game Pass Essential), CFQ7TTC0K6L8 (Game Pass for Console), CFQ7TTC0KGQ8 (Game Pass for PC), CFQ7TTC0K5DH (EA Play), CFQ7TTC0QH5H (Ubisoft+).age_rating (optional, repeatable) — ESRB rating. One of ESRB:EC, ESRB:E, ESRB:E10, ESRB:T, ESRB:M, ESRB:AO, ESRB:RPEveryone, ESRB:RPMature, ESRB:RPTeen, ESRB:UR.multiplayer (optional, repeatable) — one of CrossPlatformMultiplayer, CrossPlatformCoop, SinglePlayer, OnlineMultiplayerWithGold, CoopSupportOnline, CoopSupportLocal, LocalMultiplayer.technical_features (optional, repeatable) — one of CapabilityXboxEnhanced, ConsoleGen9Optimized, ConsoleCrossGen, Capability4k, CapabilityHDR, 60fps, 120fps, RayTracing.handheld_compatibility (optional, repeatable) — one of VERIFIED, PLAYABLE, UNSUPPORTED, UNKNOWN.supported_language (optional, repeatable) — one of ar-SA, zh-CN, zh-TW, cs-CZ, da-DK, nl-NL, en-GB, en-US, fi-FI, fr-FR, de-DE, el-GR, he-IL, hu-HU, it-IT, ja-JP, ko-KR, nb-NO, pl-PL, pt-BR, pt-PT, ru-RU, sk-SK, es-MX, es-ES, sv-SE, tr-TR.accessibility (optional, repeatable) — one of AccessibilityOnLaunch, AdjustableDifficulty, OnDemandTutorials, Pausable, ProgressSavingOptions, MonoSound, CustomVolumeControls, NarratedGameMenus, StereoSound, SpatialAudio, SteadyCamera, ContrastOptions, ColorOptions, SubtitleOptions, AdjustableTextSize, AdjustableInputSensitivity, BasicInputRemapping, TtsSttCommunications, InputRemapping, PlayableWithButtonsOnly, FullKeyboardSupport, PlayableWithMouseOnly, PlayableWithTouchOnly, NoButtonHolds, PlayableWithoutMotionControls, NoQuickTimeEvents, PlayableWithoutTouchControls, SingleStickGameplay, StickInversion.locale (optional, default en-US) — display locale (BCP-47).Multiple values for one repeatable filter match ANY of them (logical OR, e.g. genre=Shooter&genre=Sports matches either genre). Different filter fields combine as logical AND (e.g. genre=Shooter&price=0 matches free shooters only).
Page size is fixed at 25 items and is not configurable.
Pagination: this endpoint is always cursor-paginated (25 items/page), whether or not a filter is active.
Returns total_items, has_more, next_cursor, and items[] — each item is a game/add-on/subscription summary: product_id, title, publisher, product_kind, categories[], available_on[] (platforms), average_rating, rating_count, release_date_utc, content_rating (board, rating, age, descriptors), price (list price, MSRP, discount percentage, currency, is_free, sale end date), is_preorder, box_art_url, poster_url, hero_art_url, and url (the public xbox.com product page).
Note: the upstream's genre filter facet is not always a strict subset of a result's own displayed categories[] — a small number of results can pass a genre filter without that exact genre appearing in their categories[] (a data-taxonomy nuance upstream, not a sign the filter didn't apply); total_items narrowing is the reliable signal that a filter took effect.
Example response (default order, truncated):
{"code":200,"msg":"OK","data":{"total_items":17620,"has_more":true,"next_cursor":"eyJIYXNNb3JlIjp0cnVlLC4uLn0=","items":[{"product_id":"BT5P2X999VH2","title":"Fortnite","product_kind":"Game","categories":["Shooter"],"available_on":["PC","XboxSeriesX|S"],"price":{"list_price":0,"is_free":true},"url":"https://www.xbox.com/en-US/games/store/game/bt5p2x999vh2"}]}}
Example: ?sort=price_asc&genre=Shooter&genre=Sports&price=0 returns free games in the Shooter or Sports genre, cheapest first (in this case, all free, so ties are broken by the upstream's own secondary order).
| Field | Filled in, of 25 checked | Values in the sample |
|---|---|---|
| product_id | 25 | |
| title | 25 | “Gears of War: E-Day” and 23 other values |
| publisher | 25 | “Xbox Game Studios” and 11 other values |
| product_kind | 25 | Game in all 25 |
| categories | 25 | median 1 entry |
| available_on | 25 | median 2 entries |
| average_rating | 22 | 2.2 to 4.9, median 3.5 |
| rating_count | 22 | 663 to 2,420,715, median 7,011 |
| release_date_utc | 22 | 2012-11-13 to 9998-12-30 |
| content_rating | 25 | |
| price | 22 | |
| box_art_url | 25 | store-images.s-microsoft.com |
| poster_url | 25 | store-images.s-microsoft.com |
| hero_art_url | 25 | store-images.s-microsoft.com |
| url | 25 | xbox.com |
| is_preorder | 5 | true in 5 of 5 |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| cursor | string | No | Opaque pagination cursor from a previous response's next_cursor | ||
| sort | string | No | Sort order Allowed values: relevance, release_date_desc, most_popular, price_asc, price_desc, most_wishlisted, discount_desc, title_asc, title_desc. | ||
| genre | array<string> | No | Genre filter (repeatable) Allowed values: Action & adventure, Card & board, Casino, Classics, Companion, Educational, Family & kids, Fighting, Multi-Player Online Battle Arena, Music, Other, Platformer, Puzzle & trivia, Racing & flying, Role playing, Shooter, Simulation, Sports, Strategy, Tools, Word. Repeat this query parameter for multiple values. | ||
| price | array<string> | No | Price-band filter (repeatable) Allowed values: OnSale, 0, 0.01To5, 5To10, 10To20, 20To40, 40To60, 60To. Repeat this query parameter for multiple values. | ||
| platform | array<string> | No | Platform filter (repeatable) Allowed values: XboxSeriesX|S, XboxOne, PC, Handheld, CloudGaming, XboxPlayAnywhere. Repeat this query parameter for multiple values. | ||
| subscription | array<string> | No | Subscription filter, by the subscription's own product id (repeatable) Allowed values: CFQ7TTC0KHS0, CFQ7TTC0P85B, CFQ7TTC0K5DJ, CFQ7TTC0K6L8, CFQ7TTC0KGQ8, CFQ7TTC0K5DH, CFQ7TTC0QH5H. Repeat this query parameter for multiple values. | ||
| age_rating | array<string> | No | ESRB age-rating filter (repeatable) Allowed values: ESRB:EC, ESRB:E, ESRB:E10, ESRB:T, ESRB:M, ESRB:AO, ESRB:RPEveryone, ESRB:RPMature, ESRB:RPTeen, ESRB:UR. Repeat this query parameter for multiple values. | ||
| multiplayer | array<string> | No | Multiplayer-mode filter (repeatable) Allowed values: CrossPlatformMultiplayer, CrossPlatformCoop, SinglePlayer, OnlineMultiplayerWithGold, CoopSupportOnline, CoopSupportLocal, LocalMultiplayer. Repeat this query parameter for multiple values. | ||
| technical_features | array<string> | No | Technical-feature filter (repeatable) Allowed values: CapabilityXboxEnhanced, ConsoleGen9Optimized, ConsoleCrossGen, Capability4k, CapabilityHDR, 60fps, 120fps, RayTracing. Repeat this query parameter for multiple values. | ||
| handheld_compatibility | array<string> | No | Handheld compatibility filter (repeatable) Allowed values: VERIFIED, PLAYABLE, UNSUPPORTED, UNKNOWN. Repeat this query parameter for multiple values. | ||
| supported_language | array<string> | No | Supported-language filter, by BCP-47 tag (repeatable) Allowed values: ar-SA, zh-CN, zh-TW, cs-CZ, da-DK, nl-NL, en-GB, en-US, fi-FI, fr-FR, de-DE, el-GR, he-IL, hu-HU, it-IT, ja-JP, ko-KR, nb-NO, pl-PL, pt-BR, pt-PT, ru-RU, sk-SK, es-MX, es-ES, sv-SE, tr-TR. Repeat this query parameter for multiple values. | ||
| accessibility | array<string> | No | Accessibility-feature filter (repeatable) Allowed values: AccessibilityOnLaunch, AdjustableDifficulty, OnDemandTutorials, Pausable, ProgressSavingOptions, MonoSound, CustomVolumeControls, NarratedGameMenus, StereoSound, SpatialAudio, SteadyCamera, ContrastOptions, ColorOptions, SubtitleOptions, AdjustableTextSize, AdjustableInputSensitivity, BasicInputRemapping, TtsSttCommunications, InputRemapping, PlayableWithButtonsOnly, FullKeyboardSupport, PlayableWithMouseOnly, PlayableWithTouchOnly, NoButtonHolds, PlayableWithoutMotionControls, NoQuickTimeEvents, PlayableWithoutTouchControls, SingleStickGameplay, StickInversion. Repeat this query parameter for multiple values. | ||
| locale | string | No | Display locale (BCP-47) | ||
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/xbox/browse?sort=relevance&genre=Action+%26+adventure&price=OnSale&platform=XboxSeriesX%7CS&subscription=CFQ7TTC0KHS0&age_rating=ESRB%3AEC&multiplayer=CrossPlatformMultiplayer&technical_features=CapabilityXboxEnhanced&handheld_compatibility=VERIFIED&supported_language=ar-SA&accessibility=AccessibilityOnLaunch" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"total_items": 17620,
"has_more": true,
"next_cursor": "eyJIYXNNb3JlIjp0cnVlLC4uLn0=",
"items": [
{
"product_id": "BT5P2X999VH2",
"title": "Fortnite",
"product_kind": "Game",
"categories": [
"Shooter"
],
"available_on": [
"PC",
"XboxSeriesX|S"
],
"price": {
"list_price": 0,
"is_free": true
},
"url": "https://www.xbox.com/en-US/games/store/game/bt5p2x999vh2"
}
]
}
}Request schema
No body schema
Response schema
#/definitions/xbox.browseResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | xbox.BrowseResponse | No | ||||
| data.has_more | boolean | No | true | |||
| data.items | array | No | ||||
| data.items[].available_on | array | No | ["XboxSeriesX|S","PC"] | |||
| data.items[].average_rating | number | No | 4.5 | |||
| data.items[].box_art_url | string | No | ||||
| data.items[].categories | array | No | ["Shooter"] | |||
| data.items[].content_rating | xbox.ContentRating | No | ||||
| data.items[].content_rating.age | integer | No | 17 | |||
| data.items[].content_rating.board | string | No | ESRB | |||
| data.items[].content_rating.description | string | No | For ages 17 and up | |||
| data.items[].content_rating.descriptors | array | No | ["Blood and Gore","Intense Violence"] | |||
| data.items[].content_rating.image_url | string | No | ||||
| data.items[].content_rating.rating | string | No | MATURE 17+ | |||
| data.items[].hero_art_url | string | No | ||||
| data.items[].is_preorder | boolean | No | ||||
| data.items[].poster_url | string | No | ||||
| data.items[].price | xbox.Price | No | ||||
| data.items[].price.currency | string | No | USD | |||
| data.items[].price.discount_percentage | number | No | 25 | |||
| data.items[].price.is_free | boolean | No | false | |||
| data.items[].price.list_price | number | No | 59.99 | |||
| data.items[].price.msrp | number | No | 59.99 | |||
| data.items[].price.sale_end_date_utc | string | No | 2026-10-23T03:59:59Z | |||
| data.items[].product_id | string | No | 9PK3G146XXVF | |||
| data.items[].product_kind | string | No | Game | |||
| data.items[].publisher | string | No | 343 Industries | |||
| data.items[].rating_count | integer | No | ||||
| data.items[].release_date_utc | string | No | 2021-12-08T00:00:00Z | |||
| data.items[].title | string | No | Halo Infinite | |||
| data.items[].url | string | No | https://www.xbox.com/en-US/games/store/game/9pk3g146xxvf | |||
| data.next_cursor | string | No | ||||
| data.total_items | integer | No | 17620 | |||
| msg | string | No | OK |
| Status | Description | Schema |
|---|---|---|
| 400 | Bad Request | #/definitions/app.Response |
| 503 | Service Unavailable | #/definitions/app.Response |
Use environment variables for secrets and keep Crawlora API keys server-side.
curl -X GET "https://api.crawlora.net/api/v1/xbox/browse?sort=relevance&genre=Action+%26+adventure&price=OnSale&platform=XboxSeriesX%7CS&subscription=CFQ7TTC0KHS0&age_rating=ESRB%3AEC&multiplayer=CrossPlatformMultiplayer&technical_features=CapabilityXboxEnhanced&handheld_compatibility=VERIFIED&supported_language=ar-SA&accessibility=AccessibilityOnLaunch" \
-H "x-api-key: $CRAWLORA_API_KEY"