PCGamingWiki:API

From PCGamingWiki, the wiki about fixing PC games
Revision as of 15:57, 6 April 2022 by Aemony (talk | contribs) (updated page to replace SMW examples with Cargo examples)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

API

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


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.


Redirect API

Our custom redirect API allows us to redirect incoming users using any registered GOG ID, Steam App ID, or WineHQ 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
WineHQ:
https://www.pcgamingwiki.com/api/winehq.php?appid=15482