Diablo 3 API Preview

(Locked)

90 Human Paladin
14410
@Straton: Is it possible to keep the server status page up to date? I have an Android app sc*##!*% that page until an API is available and I'm finding that the server status page is very often out of date. Its especially frustrating to have users one starring my app and leaving bad reviews because of this. The users don't realize its an issue on your end and blame the messenger. Can you offer any insight as to why that page is often not correct? My app aside that page should be accurate anyway or there is no point to its existence.


Sc%#!##@ the HTML of the D3 server status page is strictly prohibited.


Aside from you mentioning it here, where has this been previously mentioned? I know when the WoW API was released the community team asked everyone to transition off parsing HTML pages or risk being blacklisted. From the US forums:

Now that the API is live, we want to make you all aware that HTML datamining (via us.battle.net/wow or any of the other regional wow sites) is not acceptable. Within the next 7 days, we will start to blacklist users that are making excessive requests to our regular community sites.
Thank you for your cooperation!


However, this specifically mentions WoW sites, not any future games sites (like Diablo 3). I would gladly use a server status API because this is much more efficient as far as data goes (and given that my audience is a mobile platform, this is pretty important). But until this API is active (even in a beta stage), I don't seem to have any other options aside from just not making my app at all. Considering there are other apps out there that did this even before me, clearly people don't realize this is prohibited. Is there a more preferred way you'd have us develop this kind of app/website/etc? Only methods I can think of are HTML parsing (not allowed), API (unreleased), or pinging the servers directly (I'm sure you all wouldn't approve of this). I'm not trying to be a smart alec here, I honestly just want to have my app be able to exist and not have to worry about Blizzard striking it down.

Finally, this also doesn't address why the status page is often out of date. Regardless of my app's existence at all, shouldn't this page be working regardless?
Edited by Elimine on 5/26/2012 3:46 PM PDT
85 Human Warlock
3605
Looks great, can't wait to use it.
85 Draenei Shaman
3875
Straton,

would it be possible to get time played for each character instead of having it be a ratio? possibly when doing a request to the hero api?

edit: will there be chapter information for each act?
Edited by Thuli on 5/27/2012 6:27 PM PDT
1 Troll Warrior
0
The API preview looks great, but I have some concerns and questions regarding provided information or lack thereof:

  • There are no timestamps for progression. Can you please provide timestamps for each milestone in progression?

For example:


"progression": [{
"act": 1,
"difficulty": 0,
"timestamp": 1351949944
},{

  • No Hero API progression? I see progression for the Career API but without hero progression we'll have no way to track our heroes!

  • What is the correct interpretation of progression? When it says Act 1, does that mean I am on Act 1 or does that mean I have finished Act 1?

  • Currently equipped hero weapons and armor - will this be available in the hero API?

  • Hirelings skills - will these be available much like they are for heroes?

  • Runes have no icon - please add the rune icon path. =)
Edited by Eso on 5/28/2012 12:57 AM PDT
85 Human Warlock
3605
https://us.battle.net/d3/en/forum/topic/5151721717

Diablo 3 forums thread post for this since he does not have a license and cannot post here.
90 Goblin Mage
10900
Would like to echo a request for data relating to currently equipped hero weapons and armor. Specifically the stats of each item currently equipped by a character. Is this possible? Thanks.
90 Orc Shaman
14345
Did I miss anything about image renders of Diablo characters? Something along the lines of

http://us.battle.net/static-render/us/zangarmarsh/199/59088071-profilemain.jpg?alt=/wow/static/images/2d/profilemain/race/2-0.jpg

That's the golden goose.

If that's not possible due to the volume of renders you'd need to do, I suggest having a fan art dump, similar to what CPP's been doing for years with EVE Online:

http://wiki.eve-id.net/CCP_Image_Dump

Sites like wowhead already datamine this data, so it's already out there. It'd just be nice if other fan developers had access to it as well.
85 Tauren Warrior
2755
I am a current web design and development student, I previously built a personal stats application for Battlefield 3 in one of my previous classes. Their API provided all the images for each piece of equipment.

Will the Diablo 3 API provide a downloadable image pack for this API if at all, and if a pack is not provided, what kind of visual pieces could we expect to be included with or for this API?
100 Night Elf Hunter
12550
05/28/2012 11:06 PMPosted by Deathdiety
Will the Diablo 3 API provide a downloadable image pack for this API if at all, and if a pack is not provided, what kind of visual pieces could we expect to be included with or for this API?


they dident give us an image pack with the wow one so u dout this.. you will probably see fan sites offer ones extracted out of the game files..
Web & Mobile Team
... would it be possible to get time played for each character instead of having it be a ratio? possibly when doing a request to the hero api?


That isn't something we are planning on supporting at this time.
Edited by Straton on 5/29/2012 10:36 AM PDT
Web & Mobile Team
There are no timestamps for progression. Can you please provide timestamps for each milestone in progression?


We aren't able to provide that information at this time.
Web & Mobile Team
05/28/2012 10:55 PMPosted by Ryrok
Did I miss anything about image renders of Diablo characters?


No, we aren't able to support character renders at this time. Sorry.
80 Undead Priest
0
It is late on a Sunday night, you work too hard!

Will the AH have API access in a similar manner to WoW?


There are no plans to create an AH API (even read-only) for gold, hardcore gold or real money.


This is very unfortunate. It would have been very nice to allow developers to extend the current AH through the use of more advanced filters and viewing features. (How about being able to compare stats when you hover over an item, similar to ingame?). There's just so many cool things we'd like to do, that just wouldn't be practical for the Blizzard team to implement.

Additionally this choice has to be a poor business decision. With the upcoming RMAH one would think that Blizzard would like to give developers the tools to make better interfaces with the possibility it would make them more money.

Can you provide us with an explanation of why this worked in WoW, but wouldn't be a good idea in Diablo 3?
Edited by Artasia on 5/29/2012 1:50 PM PDT
15 Tauren Warrior
0
05/29/2012 10:40 AMPosted by Straton
We aren't able to provide that information at this time.


Well if there's any debate about it, please consider it! Otherwise there is no way for any website or app to track hero progression by timestamp. It's like if you took out timestamps from WoW achievements, wowprogress.com would cease to exist and nobody would know who killed what or where guilds are in progression.

Those statistics are fun. :-)

I realize D3 achievements will have timestamps but D3 achievements are account-based, so while we'll know what Battletag killed who first (via achievement timestamps), we'll never know what hero made Act IV Inferno first without timestamps on Hero progression.

Also please consider adding official talent calculator hash in the hero API skills so we can link to the official talent calculator for builds.
Edited by Zen on 5/29/2012 6:09 PM PDT
1 Undead Mage
0
Hero Profile API:

  • Is the career profile API the only source for the hero ids or will it be possible to get the id via battle.net Armory or even ingame?
  • Could you please add the icon for runes and the id for skills and runes?
  • It is nice to get the (localized?) artisan slug, but what's about the id?

Consistent API:

  • If the icon will contain the full URL, would you mind to update the icon values for the WoW API?
  • The returned array keys are not consistent. For the WoW API you used lower camel case and now you use a mix of dashes and underscores to join words. Example: "last_modified" should be "lastModified".

Error Handling:

If both APIs share the same request limit, am I correct if I assume that they also share the same error handling?

Could you please add an id to the error response? That in combination with improved status codes would greatly enhance the ability to handle API errors in libraries. In bnetlib, for example, I will throw costum exceptions[1] for any API error and to do so, I've to compare the reason string[2] (for most cases). String comparison got some drawbacks: The code looks ugly (some reason strings are quite long) and if the documentation isn't accurate (e.g. missing full stop) the error may not be recognized.

Response Status Code:

Are there any plans to improve the returned status codes to be more RFC compliant?

Currently, most errors will return a "500 Internal Server Error" even if the error is on the client side and should therefore return a 4xx (client) error. For example, the status code 429[3] is more suitable to indicate a throttling.

Response Headers:

Have you ever considered to return the following headers?

  • X-RateLimit-Cost
  • X-RateLimit-Limit
  • X-RateLimit-Reset
  • X-RateLimit-Remaining

That would allow developers to throttle request before the server throttles/bans me, start new requests when my credit has been restocked and even calculate if it is save to send the request – given that the cost does not increase/decrease depending on server load, which, according to "Applications, Rate Limits & Throttling"[4] is not the case. Needless to say that value of "X-RateLimit-Cost" is easily calculated by comparing the remaining credit.

The use may differ depending on the returned headers if the server throttles me, but the documentation is a bit unclear in that regard[5].

Off Topic:

  • Does a request costs less if I only send a HEAD request?
  • Do you use "500 Internal Server Error" instead of "503 Service Unavailable" for overload/maintenance too?

Please update the examples for every major milestone, so I can update my Diablo adapter[6] early.

Edit: Just as a note, the career example contains a json syntax error ("last_modified" comma).

[1] https://github.com/coss/bnetlib/blob/master/src/bnetlib/Connection/AbstractConnection.php#L181-204
[2] https://github.com/coss/bnetlib/blob/master/src/bnetlib/Connection/AbstractConnection.php#L252-321
[3] http://tools.ietf.org/html/rfc6585#section-4
[4] http://us.battle.net/wow/en/forum/topic/2743691064
[5] https://github.com/Blizzard/api-wow-docs/issues/12
[6] https://github.com/coss/bnetlib/tree/diablo-preview
Edited by Coss on 5/30/2012 8:14 AM PDT
Web & Mobile Team
05/29/2012 06:07 PMPosted by Zen
Also please consider adding official talent calculator hash in the hero API skills so we can link to the official talent calculator for builds.


This is something that we plan on providing.
Web & Mobile Team
05/30/2012 08:04 AMPosted by Coss
Is the career profile API the only source for the hero ids or will it be possible to get the id via battle.net Armory or even ingame?


Right now, the only way to get hero ids will be through the career API resource. As far as I can tell, there are no ids provided in-game or through any other battle.net services.

05/30/2012 08:04 AMPosted by Coss
Could you please add the icon for runes and the id for skills and runes?


If this wasn't included in the original preview data structure then it was a simple oversight.

05/30/2012 08:04 AMPosted by Coss
It is nice to get the (localized?) artisan slug, but what's about the id?


We are in the process of evaluating localized data vs non-localized data. We will expose what makes the most sense.

05/30/2012 08:04 AMPosted by Coss
If the icon will contain the full URL, would you mind to update the icon values for the WoW API?


I believe this is already on the backlog, although I have no idea when it'll get resourced. Maybe around MoP.

05/30/2012 08:04 AMPosted by Coss
The returned array keys are not consistent. For the WoW API you used lower camel case and now you use a mix of dashes and underscores to join words. Example: "last_modified" should be "lastModified".


We are in the process of switching to a more consistant naming scheme for the attributes in our data structures. And again, this is very early in the process so attribute names haven't been scrubbed or cleaned up.

if both APIs share the same request limit, am I correct if I assume that they also share the same error handling?


That is correct.

I could go more into the larger API changes that we'd like to make, but perhaps in another post.
Edited by Straton on 5/30/2012 8:57 AM PDT
1 Undead Mage
0
05/30/2012 08:56 AMPosted by Straton
We are in the process of switching to a more consistant naming scheme for the attributes in our data structures. And again, this is very early in the process so attribute names haven't been scrubbed or cleaned up.

I'm glad to hear that.

05/30/2012 08:56 AMPosted by Straton
I could go more into the larger API changes that we'd like to make, but perhaps in another post.

Can't wait to see the changes :).
90 Gnome Death Knight
6130
For anyone working on d3 api clients I've stubbed out some routes on appengine, I plan on primarily using them for testing my go language client, however they should be usable with any language that supports http GET and json.

http://d3-api.appspot.com/

the route urls are listed from root

please bear in mind these are just stubs that respond with straton's example's .

if you have any questions or have feature or bug requests my tag is strings#1212
Edited by Tonzo on 5/30/2012 3:24 PM PDT
This topic is locked.

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]