close

Anonymous edits have been disabled on the wiki. If you want to contribute please login or create an account.


Warning for game developers: PCGamingWiki staff members will only ever reach out to you using the official press@pcgamingwiki.com mail address.
Be aware of scammers claiming to be representatives or affiliates of PCGamingWiki who promise a PCGW page for a game key.


Developers Notice (April 26): Additional caching + rate limiting have been applied and may affect you if you interface with the MediaWiki API. Our API page details the current requirements to interface with the API, as well as common issues that you may experience.

PCGamingWiki:API

From PCGamingWiki, the wiki about fixing PC games

API

This page might not be updated to reflect all available API endpoints or functionality.


Page contents


Requirements

If you need to contact us, please do so over Discord.

Current rate limit: 20 requests/minute.

1. To alleviate the negative impact on our infrastructure, the MediaWiki API has been rate limited to only allow a limited requests per minute (see above). Failure to keep within this limit will return HTTP 429 Too Many Requests. We are currently monitoring the situation and hope that we will be able to raise the limit a bit if our infrastructure is able to handle it.

2. Use a proper custom user-agent string, preferably one with contact information, when interfacing with our APIs. Failure to do so might result in unsuccessful connections or bans. MediaWiki recommends using a user-agent string in the following format:

User-Agent: clientname/version (contact information e.g. username, email) framework/version....

e.g. MyCoolTool/1.1 (https://example.org/MyCoolTool/; MyCoolTool@example.org) UsedBaseLibrary/1.4

3. Use proper etiquette when interfacing with the API and remember that this is a small community-run project, with infrastructure not designed to handle modern AI scrapping and bots. The more data you are able to index or cache on your own side, at least for awhile, the better.


Connection errors

If you need to contact us, please do so over Discord.

Developers may run into the following errors when attempting to interface with the API:

  • HTTP 403 Forbidden: The connection was blocked for some reason. This might be because you are using a generic user-agent string that have been blocked or we have seen excessive traffic from your IP in the past. Be sure to use a proper user-agent string according to the specified requirements above.
  • HTTP 429 Too Many Requests: The connection was temporarily blocked due to making too many requests. Please decrease the amount of requests you are making, and keep within the rate limit specified above.


Redirect API

Our custom redirect API allows us to redirect incoming users using any registered GOG Product ID or Steam App ID to the relevant PCGamingWiki page.
Source code


Examples:

GOG ID:
https://www.pcgamingwiki.com/api/gog.php?page=1785384169
Steam App ID:
https://www.pcgamingwiki.com/api/appid.php?appid=674020


MediaWiki API

As the PCGamingWiki is based on MediaWiki, the built-in MediaWiki API endpoint can be used to access a lot of data. Some MediaWiki extensions we use such as Cargo also exposes their own API actions through the MediaWiki API.
If you want to retrieve the Cargo table and their columns (e.g. cover image, developer, publisher, release date, etc) of a page, the Cargo Tables page is the go-to place to understanding the structure, while cargoquery is the API call you will mostly use. See this example (sandbox).
The API Sandbox can be helpful in figuring the API out, and the Cargo Query page for figuring out Cargo.
When querying _pageName or _pageID (or any Cargo column that starts with an _ underscore), the fields parts of the query needs to alias it to another name, using e.g. &fields=Infobox_game._pageName=Page
See the Extension:Cargo/Querying data for even more information about Cargo.


Examples:

Retrieve some specific Cargo values from the Infobox_game table using its Steam AppID:
https://www.pcgamingwiki.com/w/api.php?action=cargoquery&tables=Infobox_game&fields=Infobox_game._pageName=Page,Infobox_game.Developers,Infobox_game.Released,Infobox_game.Cover_URL&where=Infobox_game.Steam_AppID%20HOLDS%20%221245620%22&format=jsonfm
  • If the exact page name is known, it is also possible to retrieve using _pageName like so: &where=Infobox_game._pageName%3D"Elden Ring"
Find the page ID of a PCGW page using the Cargo Infobox_game.Steam_AppID column:
https://www.pcgamingwiki.com/w/api.php?action=cargoquery&tables=Infobox_game&fields=Infobox_game._pageID%3DPageID%2CInfobox_game.Steam_AppID&where=Infobox_game.Steam_AppID%20HOLDS%20%221245620%22&format=jsonfm
Retrieve some specific Cargo values from the Infobox_game table using the page ID retrieved earlier:
https://www.pcgamingwiki.com/w/api.php?action=cargoquery&tables=Infobox_game&fields=Infobox_game._pageName=Page,Infobox_game.Developers,Infobox_game.Released,Infobox_game.Cover_URL&where=Infobox_game._pageID%3D%22146683%22&format=jsonfm
Retrieve the wikitext of the page using the page ID retrieved earlier:
https://www.pcgamingwiki.com/w/api.php?action=parse&format=json&pageid=146683&prop=wikitext
Retrieve specific Cargo values stored in different tables using its Steam AppID:
https://www.pcgamingwiki.com/w/api.php?action=cargoquery&tables=Infobox_game,Video&fields=Infobox_game._pageName=Page,Infobox_game.Developers,Infobox_game.Released,Infobox_game.Cover_URL,Video.4K_Ultra_HD,Video.HDR,Video.Ultrawidescreen&join_on=Infobox_game._pageID=Video._pageID&where=Infobox_game.Steam_AppID%20HOLDS%20%221245620%22&format=jsonfm
  • This example retrieves three values from the Video table as well as four values from the Infobox_game table for a single page.