Skip to content

All System Games and Hashes

A call to this endpoint will retrieve the complete list of games for a specified console on the site, targeted by the console ID. If you do not know the console ID you're looking for, try using the all systems endpoint.

DANGER

Consider aggressively caching this endpoint's response. The response size for some system IDs can be huge. The data doesn't change very often. Frequent calls to this endpoint may prompt us to look into your bandwidth usage. Refer to our usage guidelines for more details.

On-site Representation

The system games list can be found by selecting any system in the "Games" menu from the site navbar. You will then be presented with the games list:

Console Games List

HTTP Request

GET

https://retroachievements.org/API/API_GetGameList.php?i=1&h=1&f=1

Query Parameters

NameRequired?Description
yYesYour web API key.
iYesThe target system ID.
fIf 1, only return games that have achievements. Defaults to 0.
hIf 1, also return supported hashes for games. Defaults to 0.
oOffset of the list of results. Ignores the first X results set in this parameter. Defaults to 0. Useful for pagination.
cNumber of max results desired. Defaults to 0, which means, all the results. Useful for pagination.

Client Library

ts
import { buildAuthorization, getGameList } from "@retroachievements/api";

// First, build your authorization object.
const username = "<your username on RA>";
const webApiKey = "<your web API key>";

const authorization = buildAuthorization({ username, webApiKey });

// Then, make the API call.
const gameList = await getGameList(authorization, {
  consoleId: 1,
  shouldOnlyRetrieveGamesWithAchievements: true,
  shouldRetrieveGameHashes: true,
});
kotlin
val credentials = RetroCredentials("<username>", "<web api key>")
val api: RetroInterface = RetroClient(credentials).api

val response: NetworkResponse<GetGameList.Response, ErrorResponse> = api.getGameList(
    consoleId = 1
)

if (response is NetworkResponse.Success) {
    // handle the data
    val gameList: GetGameList.Response = response.body

} else if (response is NetworkResponse.Error) {
    // if the server returns an error it be found here
    val errorResponse: ErrorResponse? = response.body

    // if the api (locally) had an internal error, it'll be found here
    val internalError: Throwable? = response.error
}

Response

json
[
  {
    "Title": "Advanced Busterhawk: Gley Lancer",
    "ID": 3684,
    "ConsoleID": 1,
    "ConsoleName": "Mega Drive",
    "ImageIcon": "/Images/020895.png",
    "NumAchievements": 44,
    "NumLeaderboards": 33,
    "Points": 595,
    "DateModified": "2022-11-20 03:44:12",
    "ForumTopicID": 1936,
    "Hashes": [
      "8bd4a97783cda077c342173df0a9b51e",
      "a13ab653a20fb383337fab1e52ddb0df"
    ]
  }
  // ...
]
json
[
  {
    "title": "Elemental Master",
    "id": 4247,
    "consoleId": 1,
    "consoleName": "Mega Drive",
    "imageIcon": "/Images/048245.png",
    "numAchievements": 44,
    "numLeaderboards": 0,
    "points": 500,
    "dateModified": "2021-12-09 17:05:39",
    "forumTopicId": 1972,
    "hashes": ["32e1a15161ef1f070b023738353bde51"]
  }
  // ...
]

Source

RepoURL
RAWebhttps://github.com/RetroAchievements/RAWeb/blob/master/public/API/API_GetGameList.php
api-jshttps://github.com/RetroAchievements/api-js/blob/main/src/console/getGameList.ts
api-kotlinhttps://github.com/RetroAchievements/api-kotlin/blob/main/src/main/kotlin/org/retroachivements/api/RetroInterface.kt

Released under the MIT license.