Regional FlagThird-Party API Usage Policy FAQSource
avatar
Web & Mobile Team
Target Source
#1 - 2011/12/14 06:30:00 PM
Please use this thread to ask any questions about the Third-Party API Usage Policy. Answered questions will be summarized for easy finding.

What impact does this have on getting an API key?

A copy of and link to this policy will be provided when an API key request is approved and the key provided.

Does this mean that the backend code of all web applications must be open sourced or are we talking about the html/javascript here?

The short answer is yes. The long answer is no, what you should do is extract the code that engages the API into a client library that satisfies the requirements of the policy.

avatar
Web & Mobile Team
Target Source
#3 - 2011/12/14 06:45:00 PM
12/14/2011 10:38 AMPosted by Fuitad
Does this mean that the backend code of all web applications must be open sourced or are we talking about the html/javascript here?


The short answer is yes. The long answer is no, what you should do is extract the code that engages the API into a client library that satisfies the requirements of the policy.

12/14/2011 10:38 AMPosted by Fuitad
Is there a way to know how much requests we've made at any given time? I'm still trying to understand if AH dumps downloads are considering a request or not, given that they are static files. Additionally, do you count requests that make good usage of "If-Modified-Since"?


We currently don't expose an API resource that tells you an application's current point allocation. We'd like to, but haven't yet.

The "cost" of requests is fairly simple. Each API request costs 1 to 5 points, depending on how heavy the operation is and load. Requests that use cache headers cost less and those that use cache headers that result in a cache-hit cost only 1 point. Requests for static files, like for the auction house dumps, have a cost of 0 because from our point of view they are not part of the API.

avatar
Web & Mobile Team
Target Source
#6 - 2011/12/14 06:56:00 PM
12/14/2011 10:51 AMPosted by Fuitad
Just to be 100% sure I understand your answer. When you say "that engages the API", do you mean the code that connects to battle.net and downloads data or any code that touches that data at all (i.e. downloading, processing, reporting, etc...).


The opening section and "Intended Audiance" describes what constitutes an application in this context.

avatar
Web & Mobile Team
Target Source
#7 - 2011/12/14 06:58:00 PM
Ok so:

http://us.battle.net/api/wow/realm/status == 1 point
http://us.battle.net/api/wow/auction/data/sentinels == 1 point
http://us.battle.net/auction-data/7c7ba228f010890c849e038ee61f4375/auctions.json == 0 point

Am I getting this right?


More or less. The cost of getting the realm status could be greater than one, but is reduced to 1 if you uses HTTP cache headers and the request resulted in a cache hit. The same holds true with the second API resource request.

avatar
Web & Mobile Team
Target Source
#9 - 2011/12/14 07:02:00 PM
12/14/2011 11:01 AMPosted by Fuitad
I'm still unsure which part of my code I have to open source. I have no problem playing nice with Blizzard's policy but I need to understand exactly what's expected.


If you have specific questions relating to your codebase, you should probably contact api-support@blizzard.com.

avatar
Web & Mobile Team
Target Source
#15 - 2011/12/14 09:25:00 PM
The client library I'm putting together uses Spring's RestTemplate and the MappingJacksonHttpMessageConverter to do all the conversion into Java objects, and as such the code created by me is minor (Java based Domain objects, and data access objects that map the 'GET' functions to their appropriate api path) and some Spring configuration files. Should I include the Spring configuration files with my Library?


To satisfy the policy? Probably not. Although, it sounds like it would be a very helpful thing to include in client libraries.

avatar
Web & Mobile Team
Target Source
#28 - 2011/12/15 06:35:00 PM
12/15/2011 10:19 AMPosted by Vicman
How long do apps that are in violation of charging for an app that uses the Armory data have to remove their charge or comply with the change? I know Ask Mr. Robot is currently still charging for the droid app 1.99$


I'm really not at liberty to comment on the specifics of application policy to anyone other than the application's developers.

avatar
Web & Mobile Team
Target Source
#29 - 2011/12/15 06:37:00 PM
@Straton @Blizzard

What about the model I'm currently working with: (For the sake of simplicity, I'm leaving out what they do, but it should be self explanatory)

My model is made up of three (3) distinct applications: The S c r a p e r (open sourced, home on Github), The Database (closed sourced), and The Client (Both a Free/Premium version, closed sourced).

The S c r a p e r contains all my API calls to Blizzard's API. It will communicate, via a network, to The Database. The Database then in turn serves the certain data to The Client, free or premium, depending on the subscription.

As of the current policy, this method would be valid since the "application" (The S c r a p e r) that uses the API is indeed open sourced. The Database, which acts as a proxy between The Client (Free/Premium) and The S c r a p e r, allows me manipulate the data behind the scenes, keeping my proprietary functions/code/algorithms safe.

Also, I can justify having a premium client because "database/servers ain't free."

Let me know if anyone sees this being against the current Policy!

Edit: fix you regular expressions... s c r a p e r should not be censored...


If you have three distinct applications, then each of them are subject to the Third-Party API Usage policy. Without knowing more about them, I really can't comment. If you have a specific question about your application then I suggest you contact api-support@blizzard.com.