Third-Party API Usage Policy FAQ

(Sticky)

Web & Mobile Team
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.
Edited by Peratryn on 4/9/2014 4:46 PM PDT
Reply Quote
85 Human Death Knight
0
Application code must be completely visible.

The programming code of an application must in no way be hidden or obfuscated, and must be freely accessible to and viewable by the general public.

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

Applications may make up to a total of 50,000 authenticated requests per day.


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"?
Reply Quote
Web & Mobile Team
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.
Edited by Straton on 12/14/2011 10:47 AM PST
Reply Quote
85 Human Death Knight
0
12/14/2011 10:45 AMPosted by Straton
what you should do is extract the code that engages the API into a client library that satisfies the requirements of the policy.


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...).

Applications may not charge premiums for features that use the API.

What about charging users a fee for features that cost us money. A good example would be a SMS notification system. Let's say I have to pay 5 cents per SMS I send out to users who subscribe to the service. Is it OK to ask that user to pay those fees, considering he's not really getting access to any data another doesn't have access to.
Reply Quote
85 Human Death Knight
0
12/14/2011 10:45 AMPosted by Straton
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.


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?
Reply Quote
Web & Mobile Team
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.
Reply Quote
Web & Mobile Team
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.
Reply Quote
85 Human Death Knight
0
12/14/2011 10:56 AMPosted by Straton
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.

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.
Reply Quote
Web & Mobile Team
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.
Reply Quote
90 Human Mage
11920
12/14/2011 10:51 AMPosted by Fuitad
Applications may not charge premiums for features that use the API.

What about charging users a fee for features that cost us money. A good example would be a SMS notification system. Let's say I have to pay 5 cents per SMS I send out to users who subscribe to the service. Is it OK to ask that user to pay those fees, considering he's not really getting access to any data another doesn't have access to.


Any clarification on this point? I'd like to use text messaging in my application as well, and it's certainly not something I could fund out of my own pocket.
Reply Quote
85 Human Death Knight
0
12/14/2011 11:02 AMPosted by Straton
If you have specific questions relating to your codebase, you should probably contact api-support@blizzard.com.


Email sent.

12/14/2011 10:58 AMPosted by Straton
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.


Something nice would at least be a response header like 'X-Api-Cost: 1' so that we can track those on our end. I find it a little unfair to be told "Use no more than X amount of requests/points" but not be given a way to track the usage and throttle things on my own if needed.

Reply Quote
1 Human Hunter
0
I think you guys are being over-bearing in your control over 3rd party apps which are community driven both in creation and popularity. These aren't the same as in-game addons.

I realize there are considerations behind each aspect of the policy, but I believe you are underestimating the ability of the community to self-police. By creating One-Size-Fits-All policies like this, you are stifling creativity and dissuading possible developers from even bothering to invest time and money into creating tools built around your game lest they get into a legal struggle with you or risk you just cutting them off completely.

It's your game and your servers giving the api data, so you can be as heavy handed as you want, but I still think you guys have made the wrong call and I think in the long run the community will be less well-off because of these types of policies. I also believe in-turn this means the game will be less well-off, which again in-turn means less money in your pocket.

- A passionate fan.
Edited by Nill on 12/14/2011 12:56 PM PST
Reply Quote

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.


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?
Reply Quote
Web & Mobile Team
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.
Reply Quote
85 Worgen Hunter
2745
Does this mean that askmrrobot.com has to stop charging money for its iPhone app?
Reply Quote
90 Human Death Knight
9035
I am a happy customer using the Wow Mobile Armory.
I am a happy customer using the AskMrRobot mobile app.

The whole purpose of an API is to leverage the innovation of others.
This policy disallows profit, which disincentivizes innovation.
--
Respectfully,

https://twitter.com/potatoeWoW
Edited by Potatoedecay on 12/14/2011 2:22 PM PST
Reply Quote
90 Human Mage
11725
The API library thing is confusing, still.

If I use someone else's third party library to talk to the Community Platform API, do I then have to publish another copy of that library? Or my entire app? Or just point people at the library?
Reply Quote
85 Human Death Knight
0
12/14/2011 02:52 PMPosted by Raimondas
If I use someone else's third party library to talk to the Community Platform API, do I then have to publish another copy of that library? Or my entire app? Or just point people at the library?


From what I understand (and taking for account that the library in question is already open sourced), you only need to link to it.

What Blizzard appears to want to be able to look at is any code that interacts with their server. Not your site code.

But that's as unofficial as it gets.
Reply Quote
90 Human Warlock
4270
The clarification about what should be open sourced / publicly viewable is much appreciated. When I originally read that it had me worried thinking I'd have to open up all the back-end code.

My concern now though is over revenue. Reading the policy, it looks like no form of payed apps or services are allowed at all. Is this correct?

Two examples:
An iOS app that interacts with the Blizzard API and developer's servers that let's you create a wish list of gear that's sold for a buck.
A web site that gathers character information from the API and offers basic free service X, but for some amount of money can be upgraded to extend features.

Are both of those examples prohibited? I guess my direct question is this: developing even simple applications or cool web services require time and money on the part of the developer, what are our options for recouping those costs. I'm not suggesting someone should be out to make a living off this, but if you make a cool web-app that gets popular with the community the hosting costs alone can get pretty high and standard ad banners are probably not going to cover the costs.

Any response would be appreciated and thanks for the hard work!
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]