Why to use RAWG (From their website)

Why build on RAWG
  • More than 350,000 games for 50 platforms including mobiles.
  • Rich metadata: tags, genres, developers, publishers, individual creators, official websites, release dates, Metacritic ratings.
  • Where to buy: links to digital distribution services
  • Similar games based on visual similarity.
  • Player activity data: Steam average playtime and RAWG player counts and ratings.
  • Actively developing and constantly getting better by user contribution and our algorithms.

Terms of use (From their website)

Terms of Use
  • Free for personal use as long as you attribute RAWG as the source of the data and/or images and add an active hyperlink from every page where the data of RAWG is used.
  • Free for commercial use for startups and hobby projects with not more than 100,000 monthly active users or 500,000 page views per month. If your project is larger than that, email us at api@rawg.io for commercial terms.
  • No cloning. It would not be cool if you used our API to launch a clone of RAWG. We know it is not always easy to say what is a duplicate and what isn’t. Drop us a line at api@rawg.io if you are in doubt, and we will talk it through.
  • You must include an API key with every request. The key can be obtained at https://rawg.io/apidocs. If you don’t provide it, we may ban your requests.

Env

Base url: https://api.rawg.io/api

Get your own API key

List all games

index.ts
axios
  .get(process.env.RAWG_BASE_URL as string, {
    params: {
      page: 1,
      page_size: 20,
      key: process.env.RAWG_API_KEY as string,
      search: query,
    },
  })
  .then((response) => {
    console.log({response})
  });

Get the details about a specific game

index.ts
axios
  .get(`${process.env.RAWG_BASE_URL}/${review?.game_id}` as string, {
    params: {
      key: process.env.RAWG_API_KEY as string,
    },
  })
  .then((response) => {
    console.log({response})
  });

Get the trailers of a specific game

index.ts
axios
  .get(`${process.env.RAWG_BASE_URL}/games/${game.id}/movies`, {
    params: {
      key: process.env.RAWG_API_KEY,
    },  
  })
  .then((response) => {
      conosle.log({response})
  });
index.ts
axios
  .get(`${process.env.RAWG_BASE_URL}/games/${game.id}/twitch`, {
    params: {
      key: process.env.RAWG_API_KEY,
    },  
  })
  .then((response) => {
      conosle.log({response})
  });
index.ts
axios
  .get(`${process.env.RAWG_BASE_URL}/games/${game.id}/youtube`, {
    params: {
      key: process.env.RAWG_API_KEY,
    },  
  })
  .then((response) => {
      conosle.log({response})
  });

Learn more

For more examples or other implementations check out the official documentation