Today we were tasked with building a dashboard regarding one of my favourite things ever: GAMING. To obtain our data we had to use an API from the site GiantBomb.com. After retrieving an API key, the next step was to work out what URL I needed to construct in order to extract the data I was interested in. At this stage I had decided to focus on a story about a single game producing company known as Naughty Dog.

According to the API guide on the website I needed to obtain a “GUID” for the company I was interested in. This initially involved using a filter on the “name” (field) of a “company” (the game developer I was interested in) (call topic):

https://www.giantbomb.com/api/companies/?api_key=*KEY*&format=json&filter=name:naughty%dog&offset=0

This then allowed me to extract the names of all the games produced by that company by running a call for the company GUID:

https://www.giantbomb.com/api/company/3010-827/?api_key=*KEY*&format=json&offset=0

The list of games were accompanied by a unique identifier code, but strangely not the identifier code used to call all the information about each game. So I had to search for each game using the filter again to identify the list of “GUID” codes to extract the full information (such as characters, concepts and date of release) about each game:

https://www.giantbomb.com/api/games/?api_key=*KEY*&format=json&filter=id:32982

After identifying the GUIDs for each game I ran a final workflow to call all the information available for each game. Although I only had 24 games to search for, I initially misunderstood how page limits worked and developed a workflow to ensure up to 5000 records were retrieved in total. Needless to say, I overestimated the number of records I required and ultimately exhausted the API key limitations in one run, rendering it useless for an hour. Having learnt my lesson, and two key points of information;

  • Each row going into your download tool is an individual call to the API
  • If your call involves retrieving a list of things then this is where the call limit will apply, but if you are searching for one, then the limit does not apply

I finally retrieved all the available information about each game developed by Naughty Dog:

https://www.giantbomb.com/api/game/3030-36989/?api_key=*KEY*&format=json&offset=0

From there I had to rearrange the data into a tableau friendly format and start my viz.

I was able to see which franchises rated best, how many characters each game had and what each level looks like. You can see for yourself here.

 

Cheerio,

G

Georgia Thomas
Author: Georgia Thomas