Diablo 3 API Preview

(Locked)

Web & Mobile Team
With the release of Diablo 3, we are working hard to make career and hero profiles available to the community. With career and hero profiles, we are excited to also release a set of API resources specific to Diablo 3 for community fansites and developers to consume. I’d like to take this opportunity to give a preview of the progress we’ve made to the community and open up discussions around what data will be available.

Please keep in mind that this is an early preview and there will likely be many changes to the D3 API by the time it is released. Also note that we haven’t finalized several key pieces of information including artisan recipes, hero and follower spells and powers and achievements.

Career Profile

The career profile API provides top level (account) career information. This API resource is meant to provide a way to discover the heroes associated with an account as well as the artisan and game progression information for the account. To use the career profile API resource, a URL containing a battletag is crafted and a request is made. An example request for the Battletag “Straton#1” would be:

/api/d3/account/Straton/1

The following data structure is then returned:

http://blizzard.github.com/d3-api-docs/#career-profile/career-profile-example

As you can see, there are several account specific data points to reference. The heroes attribute contains a list of all of the active heroes for the account. This list does not include fallen heroes. The artisans dataset includes a list of the artisans and the id, label, level and progression of each. Next are several progression attributes that can be used to determine the highest difficulty boss for each act. Last are several stats on the number of monsters and elites killed.

Hero Profile API

Hero profile API resources provide hero specific information including basic information like the name, class, gender and level as well as more complex information like follower information, hero statistics, active skills/powers and items. Unlike the career profile API resource, a hero id is used to craft a URL instead of a battletag. An example for hero 182 would be:

/api/d3/hero/1

The following data structure is then returned:

http://blizzard.github.com/d3-api-docs/#hero-profile/hero-profile-example

The first set of information provided includes the name, level and class information. Following that is a list of the hirelings the hero has unlocked. Lastly, a block of statistics is returned that includes stats, resistances and kills.
Edited by Straton on 6/7/2012 5:54 PM PDT
Web & Mobile Team
FAQ

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

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

Q: What about achievements?

A: We do plan on providing all achievement information much like we do with the WoW API. The difference being that achievements are account bound.

Q: How will the request limits work? Is the "~3000" requests per day going to be shared between the D3 API and the WoW API?

A: The same as with the WoW API. The requests per-day limits will be shared between the APIs as most fansites and applications are game specific (with a few exceptions).

Q: Will you be implementing an API that is similar to the realm status API for WoW?

A: Yes. We will have an API resource that provides the status data as we do on http://us.battle.net/d3/en/status .

Q: Any plans for a search API? Any way we could crawl for accounts to do aggregate statistics?

A: We haven't really come up with a good way to provide an index that doesn't compromise privacy or data that we don't want to expose. This is something we are thinking about though.

Q: Any plans for giving us information about quest completion? Like how long it took them to clear a quest, perhaps including historical data if they've done a quest multiple times, and including party members involved in the kill?

A: I believe that some of this information will or should be available with achievement data and statistics. I don't believe that we have the ability to support multiple data sets like how many times you've completed a given quest or how long it took. It is something we can look into further, but will be lower in priority.

Q: What about events like "Killed Belial (Inferno) on <timestamp>"?

A: This data will also likely be made available with achievement data and statistics. Again, the information that I believe we can provide is the first instance of said kills.

Q: Will account id references be included with the hero API?

A: I don't believe that we are planning on doing that. That would lead to a degree of data-mining that we are not comfortable with.

Q: ... 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?

A: That isn't something we are planning on supporting at this time.

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

A: We aren't able to provide that information at this time.

Q: Did I miss anything about image renders of Diablo characters?

A: No, we aren't able to support character renders at this time. Sorry.

Q: Also please consider adding official talent calculator hash in the hero API skills so we can link to the official talent calculator for builds.

A: This is something that we plan on providing.

Q: 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?

A: 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.

Q: Could you please add the icon for runes and the id for skills and runes?

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

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

A: That is correct.

Q: While we're on the subject of this, what format is this timestamp in? Milliseconds since the epoch?

A: Seconds since epoch. Handling of timezones is TBD.
Edited by Straton on 6/6/2012 5:53 PM PDT
90 Undead Mage
13810
It is late on a Sunday night, you work too hard!

Will the AH have API access in a similar manner to WoW? What about achievements?
Edited by Chaud on 5/20/2012 10:28 PM PDT
Web & Mobile Team
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.
Edited by Straton on 5/20/2012 10:28 PM PDT
1 Night Elf Rogue
0
Please consider providing read-only Auction House access, at least for normal mode gold. Right now your filtering and tooltips are so completely broken that it is a nightmare to try to buy anything without wasting your money. Read only access would at least allow people to make informed purchasing decisions when spending gold.
Edited by Antumbra on 5/20/2012 10:31 PM PDT
Web & Mobile Team
05/20/2012 10:31 PMPosted by Antumbra
Please consider providing read-only Auction House access, at least for normal mode gold. Right now your filtering and tooltips are so completely broken that it is a nightmare to try to buy anything without wasting your money. Read only access would at least allow people to make informed purchasing decisions when spending gold.


Building D3 AH APIs is not something that we will be dedicating resources to at this time.
90 Undead Mage
13810
How will the request limits work? Is the "~3000" requests per day going to be shared between the D3 API and the WoW API?
26 Worgen Rogue
10635
05/20/2012 10:31 PMPosted by Antumbra
Please consider providing read-only Auction House access, at least for normal mode gold. Right now your filtering and tooltips are so completely broken that it is a nightmare to try to buy anything without wasting your money. Read only access would at least allow people to make informed purchasing decisions when spending gold.


Couldn't agree more with this. Searching the auction house without being able to filter out "Buyout-N/A" items is pretty awful. This wouldn't be the place to put out suggestions for the AH, but if a web based read only AH could make filtering and finder gear easier, I would be all for it.
Web & Mobile Team
05/20/2012 10:36 PMPosted by Chaud
How will the request limits work? Is the "~3000" requests per day going to be shared between the D3 API and the WoW API?


The same as with the WoW API. The requests per-day limits will be shared between the APIs as most fansites and applications are game specific (with a few exceptions).
4 Human Mage
0
Any chance for heros names in profile informations? Something like:
"heroes": [182, 183, 184, 185, 186],
"heroesNames": ['Yharr', 'Hero2', 'Hero3', 'Hero4', 'Hero5'],

Then I would have a list of heroes associated with account without sending five consecutive requests.
Web & Mobile Team
Any chance for heros names in profile informations? Something like:
"heroes": [182, 183, 184, 185, 186],
"heroesNames": ['Yharr', 'Hero2', 'Hero3', 'Hero4', 'Hero5'],

Then I would have a list of heroes associated with account without sending five consecutive requests.


Yeah, we could do something along those lines. I'd probably lean more toward something like:


"heroes": [{
"id": 182, "name": "Yharr", "level": 26, "class": "barbarian", "hardcore": true
}, ...]


Since hero names aren't unique, I'd rather not have a list/set map to ids. Will think about this more though.
Edited by Straton on 5/21/2012 12:35 AM PDT
85 Dwarf Hunter
8935
Wooo! I am excite!

Thank you for providing the JSON for us to start messing around with.
4 Human Mage
0
Yeah, we could do something along those lines. I'd probably lean more toward something like:


"heroes": [{
"id": 182, "name": "Yharr", "level": 26, "class": "barbarian", "hardcore": true
}, ...]


Since hero names aren't unique, I'd rather not have a list/set map to ids. Will think about this more though.


Looks great, add 'update_time' for each hero and I'm set. Thanks!
1 Draenei Paladin
0
Also the 'gender' for each hero would be fine.
1 Gnome Mage
0
Woopiiee

will tell it in the EU Forums.

/hug Straton
3 Night Elf Druid
0
Nice! :)

Do you consider adding data resources for rolled items, unrolled items and properties?

To explain:

- A rolled item is an item that has been generated and who's stats are final.

- An unrolled item is a raw template that defines the core data, the predefined properties (and their possible ranges) and the possible number of additional random properties.

- A property is a affix or suffix like +strength. This data resource could define on what item type and item level it may appear and what range it has.

This would enable us to do some really cool stuff! :-)
- Hearthstone
90 Tauren Paladin
11545
Please consider providing read-only Auction House access, at least for normal mode gold. Right now your filtering and tooltips are so completely broken that it is a nightmare to try to buy anything without wasting your money. Read only access would at least allow people to make informed purchasing decisions when spending gold.


Building D3 AH APIs is not something that we will be dedicating resources to at this time.


It seems most of what is in the works is to show people your character. Being able to view the AH similar to WoW would be better and more efficient to gameplay.

Efficient gameplay > epeen booster API
Edited by Palaurus on 5/22/2012 2:54 AM PDT
90 Human Paladin
14410
@Straton: Will you be implementing an API that is similar to the realm status API for WoW? While there are no "realms", per say, the game servers and AH statuses would be nice to reveal.
85 Gnome Priest
5185
Please remove the field "time-played" from the API.
This is going to violate privacy laws...

Not everyone of your customers are from the Facebook generation.
85 Troll Mage
15675
Please remove the field "time-played" from the API.
This is going to violate privacy laws...

Not everyone of your customers are from the Facebook generation.


I think it's fine. It's only providing a relative amount of time compared to one another, not total time played. In Straton's example, he is showing that he spends most of his time playing the barbarian. Compared to the barbarian, he spends about 60% of his time as a Demon Hunter, and so on. It's not saying "This person played a barbarian for 10 hours, Demon Hunter for 6 hours, etc." The feature is useful in that it can give devs a basis for who they think is the player's "main." For example say they spend most of their time as a barbarian, and id 123 is a barbarian in full Hell gear, while id 124 is a barbarian in full normal gear. this shows that id 123 is the player's main.

Hopefully this can go live soon. Would love to test this out.
Edited by Delritha on 5/21/2012 8:59 AM 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]