Some basic questions

2 Human Warrior
0
Hi all, I am starting to pick working with the API again, after having it done before about one and a half years ago. Back then I was just fiddling, but now I have a real project so I need some deeper information. I tried searching a bit, but didn't find satisfactory or up-to-date answers.
I'm sure though they can be answered in a second or two. :)

First off, in the sticky about throttling [1] it says that there is a limit of 3,000 requests (or rather points) per day, however in the API Usage Policy sticky [2] it says 10,000 unauthenticated requests and 50,000 authenticated requests. Which one is up to date?

Also, what is exactly an "authenticated" request, and how would you authenticate? There is also talk about an "API key", but there is no mention of exactly what it is and how to obtain one. I assume it is necessary to authenticate, but it does not say in the stickies.

Furthermore, I found a thread which lists some libraries [3], but it does not seem up-to-date at all. Most of the libraries there (particularly the ones interesting for me, PHP and Java) seem to be last updated about 2 years ago, and I cannot imagine the API having stayed the same for that time. So, specifically for PHP and Java, what are the leading libraries at the moment?

Finally, a question more specific to my project. I intend to mine/crawl/scrape the armoury for character information and run some statistical tools for a paper I am writing. I find two problems here:
1) If there would be about 10 million characters to mine, with 50,000 authorized requests per day, it would take 200 days to get all character information. Now I understand that 10 million is a lot, but I was actually thinking that 1 million is a reasonable amount of characters for my study. So should I just mine data for 20 days, store the data locally and then run my tools on the stored data?
2) I cannot really find an API or something to get lists of characters, except for a guild, but you'd need to know the guild name, and again, there is no API to find guilds, as far as I can see. What is the best/most common way to crawl the armoury to gather data for statistics?

Thanks in advance for any insights you might share. :-)

[1] Throttling: http://us.battle.net/wow/en/forum/topic/2743691064
[2] API Usage Policy: http://us.battle.net/wow/en/forum/topic/3746635131
[3] API libraries: http://us.battle.net/wow/en/forum/topic/2369882588

PS. This char is so low because it's a US starter account; my main account is an EU account.
Reply Quote
100 Dwarf Mage
11375
I can't answer the throttling question, but I can answer some of your other ones.

02/13/2013 04:29 AMPosted by Curiously
Also, what is exactly an "authenticated" request, and how would you authenticate? There is also talk about an "API key", but there is no mention of exactly what it is and how to obtain one. I assume it is necessary to authenticate, but it does not say in the stickies.

Authentication is covered in the documentation:
http://blizzard.github.com/api-wow-docs/#features/authentication

02/13/2013 04:29 AMPosted by Curiously
2) I cannot really find an API or something to get lists of characters, except for a guild, but you'd need to know the guild name, and again, there is no API to find guilds, as far as I can see. What is the best/most common way to crawl the armoury to gather data for statistics?

Realm Pop uses the AH data dumps to get a preliminary list of characters, then fetches each character's guild roster to build a more complete list. You could then fetch the character profile for each of those characters if you needed more detailed information than the roster provides.

The developer probably explains it a bit better on the front page:
http://wow.realmpop.com/
Reply Quote
1 Troll Rogue
0
02/13/2013 04:29 AMPosted by Curiously
First off, in the sticky about throttling [1] it says that there is a limit of 3,000 requests (or rather points) per day, however in the API Usage Policy sticky [2] it says 10,000 unauthenticated requests and 50,000 authenticated requests. Which one is up to date?


10,000/50,000

Also, what is exactly an "authenticated" request, and how would you authenticate? There is also talk about an "API key", but there is no mention of exactly what it is and how to obtain one. I assume it is necessary to authenticate, but it does not say in the stickies.


As said above, check the docs. You get one by emailing Blizzard and waiting for the credentials in a reply. I'd skip it for a short-term project.

Furthermore, I found a thread which lists some libraries [3], but it does not seem up-to-date at all. Most of the libraries there (particularly the ones interesting for me, PHP and Java) seem to be last updated about 2 years ago, and I cannot imagine the API having stayed the same for that time. So, specifically for PHP and Java, what are the leading libraries at the moment?


The API has pretty much stayed the same, with few exceptions. I'd skip using a library anyway. It's all JSON over HTTP. Just build a URL, pull it down, and use the language's functions to convert it to an object.

Finally, a question more specific to my project. I intend to mine/crawl/scrape the armoury for character information and run some statistical tools for a paper I am writing. I find two problems here:
1) If there would be about 10 million characters to mine, with 50,000 authorized requests per day, it would take 200 days to get all character information. Now I understand that 10 million is a lot, but I was actually thinking that 1 million is a reasonable amount of characters for my study. So should I just mine data for 20 days, store the data locally and then run my tools on the stored data?


Depends on your project, really. I would guess "probably."

2) I cannot really find an API or something to get lists of characters, except for a guild, but you'd need to know the guild name, and again, there is no API to find guilds, as far as I can see. What is the best/most common way to crawl the armoury to gather data for statistics?


As mentioned above, I use the auction house parses to get seller names for Realm Pop and Transmog Fashion. http://us.battle.net/wow/en/forum/topic/3657430013
Reply Quote
100 Undead Rogue
20300
02/13/2013 04:29 AMPosted by Curiously
Furthermore, I found a thread which lists some libraries [3], but it does not seem up-to-date at all. Most of the libraries there (particularly the ones interesting for me, PHP and Java) seem to be last updated about 2 years ago, and I cannot imagine the API having stayed the same for that time. So, specifically for PHP and Java, what are the leading libraries at the moment?


When I wrote my Java library last year [1], my two primary concerns where character information and authentication. I stuck to it and as others have mentionned, the JSON data is pretty stable. Why change something that works?

I like to think of my library to be well design enough that you can subclass and add your own methods for other objects (guild info and such).

A note about open source software: it is mostly created for a specific purpose by volunteers whose priorities and interests change over time, hence the "last updated 2 years ago".

[1] http://code.google.com/p/forklabs-bnetconnector/
Edited by Oscassey on 2/14/2013 4:14 PM PST
Reply Quote

Please report any Code of Conduct violations, including:

Threats of violence. We take these seriously and will alert the proper authorities.

Posts containing personal information about other players. This includes physical addresses, e-mail addresses, phone numbers, and inappropriate photos and/or videos.

Harassing or discriminatory language. This will not be tolerated.

Forums Code of Conduct

Report Post # written by

Reason
Explain (256 characters max)
Submit Cancel

Reported!

[Close]