API for mapping game/app IDs between PC gaming storefronts.
TLDR: If you have a Steam AppID / Epic AppName / etc., this API helps you find the same game on other platforms.
This repository includes the source code to host your own instance of this API. It does not include App IDs itself. We (the Heroic Games Launcher project) plan on hosting a public instance of this API soon.
Any client (IP address) may not submit more than 5 requests per minute
Tip
This rate limit is experimental and might be increased in the future.
Look up a game ID in the database.
Returns a Game object.
Example: Looking up Counter-Strike:
/v1/lookup/steam/10
⬇️
{
"title": "Counter-Strike",
"platforms": {
"steam": [
"10"
]
}
}Returns all games in the database as a Game[]
Example:
[
{
"title": "Counter-Strike",
"platforms": {
"steam": [
"10"
]
}
}
]interface Game {
title: string
platforms: Record<string, string[]>
}Note: Platform slugs (keys for the platforms record property) are not detailed here as they're defined by the database of
the instance. Contact your instance hoster for details on which platforms they support.
- Make sure
pnpmis installed & a MySQL server is running - Clone the repo
- Run
pnpm install - If you want to use a custom DB configuration, copy
.env.exampleto.envand edit it - Execute
meta/create_db.sqlon your server to create the tables accessed by this API
Note: While this script has to be run with write permissions, the DB user used by the API only needs to be able to read the respective tables. - Run
pnpm startto start the server
To add a new platform, add a row to the t_platforms table.
slugshould be a unique identifier for the platform (e.g.steam/epic/gog)nameshould be a descriptive name of the platform.
Note:nameis currently unused, although a "Look up all platforms" endpoint might be implemented soon
To add a new game, add a row to the t_games table.
titleshould be a recognizable title of the game. If a game has multiple titles, you might want to use the most generic/recognizable one.
To add IDs for a previously added game & platform combo, add a row to the t_platform_ids table.
game_idandplatform_idare IDs of the respective game & platform in the tables detailed aboveid_on_platformshould be a platform-specific unique ID of the game on the respective platform.
Note: What exactly qualifies as a "platform-specific unique ID" is up to you.