[API] How to get more information (exposition)?

Hi everyone,

I am junior dev and I had a project idea using Blizzard wow API.

I have been using APIs of many other services for a while and I must say I am surprised to see that blizzard wow API does not expose that much of information.

Some example

As a basic need for my project I want to get all classes and their spells with spells information like CDs and cast time.
This could have been a simple task but I can’t have those information together ( I can’t even get CDs and cast time for a single spell)

The Game date API in the spell section is depict as follow:
/data/wow/spell/{spellId}
So when I search with spellID=133 I have this result for the fireball

{
  "_links": {
    "self": {
      "href": "https://us.api.blizzard.com/data/wow/spell/133?namespace=static-10.1.7_51059-us"
    }
  },
  "id": 133,
  "name": "Fireball",
  "description": "Throws a fiery ball that causes 6,599 Fire damage.",
  "media": {
    "key": {
      "href": "https://us.api.blizzard.com/data/wow/media/spell/133?namespace=static-10.1.7_51059-us"
    },
    "id": 133
  }
}

It’s not clear to me where the CD and cast time can be found if not in this section.

Thank you in advance for helping me

Best regards

Unfortunately the API is very limited compared to the amount of data in-game. Spells are mostly here to support tooltips on some items linked by other endpoints like talents and some items with effects. Not all spells are present and not all information about spells are available.

Applications that have additional data usually don’t use just the API, but also game client data.

1 Like

Thank you for the answer, are you talking about the LUA API ?

I have been working mostly with online REST or GraphQL API and I don’t know how to get game client data

Either the LUA API or decoding tables from the game client files, you can search for “WoW CASC files” for more information.

Few more questions

Does that mean I can access LUA API with simple call from http requests ? Like some kind of RCON.
If not it need a workaround to fetch my information out of the LUA API. I’m not entirely sure to want to develop an addon just to extract all game’s info I need and put it in a DB.

Hypothesis

Somethings I though about:

  • Scraping info on the most knowledgeable website, either I keep it in cache and request it again when needed.
  • Setting up a DataBase (My design was no including DB since it would be POC and for personnal use in short terms, meaning I wanted to keep it as light and simple as I can)

Not at all, the LUA API is managed by the game client and uses the socket communication between the game client and the WoW server. You can’t use it outside the game client.

Probably an unethical approach. They put a lot of effort for obtaining the data, the ones who want to share it do so by exposing their own APIs.

Most WoW related applications end up doing this and it is probably the best option in the long run. If you need a big amount of data you will get better performance by caching it instead of requesting on demand.
Sometimes a simple caching solution like redis might be enough.

I have been searching for wow API for days and I didn’t find any. Do you have names ?

I know it is unethical to scrap, but what should I do ? Deploy unnecessary ressources to get 10 maybe 20 spells and all classes, an addon linked to a DB that is read by my application ? Or I hardcode those 10 to 20 spell information in a dictionary but I’ll need to fix the values every time a game patch comes and change CD or Cast time.

Thank you for helping me. It could have been very simple if blizzard had a decent API though I have no choice but to write every information from scratch. :upside_down_face: