API Discussion

Mar 14 Plugins for Battle.net launcher? Hi. I was wondering if there is a way to create plugins for the battle.net launcher, for customization and such. I'm looking to implement a "time remaining: xx min xx sec" to the launcher as I feel like it's missing and would help me with the headache of having to calculate how long my downloads will take every single time. But I would also be very interested in customizing how the launcher looks in theme and such. I hope you guys can help me! :) Br, MymaqnMymaqn0 Mar 14
Mar 14 D3 API-how to get all heroes? I found that “/d3/profile/{account}/”only return recently active heroes. Is there any way to get the id of all heroes in the account?Squall2 Mar 14
Mar 14 Mythic Leaderboard Missing Profile Names Character Names are missing from certain Mythic Leaderboards currently https://us.api.blizzard.com/data/wow/connected-realm/11/mythic-leaderboard/353/period/685?namespace=dynamic-us&locale=en_US US Region all maps and realms that I have tried for periodid 685 onlyMAJ1 Mar 14
Mar 12 API doesn't get all character titles for World of Warcraft While calling the character endpoint with fields "titles" not all titles are returned by API. Sometimes there is over 40+ titles, but some characters seems to have only 1 or 2 attached, while in-game they have several dozen of achievements. Have anyone seen this behaviour?Dlugi1 Mar 12
Mar 12 Guild Progress Hello, Is there any new API for guild progress in the new API or should we continue fetching character data and analyzing it? Thanks...Nhea3 Mar 12
Mar 12 API coder wanted (Diablo III) Update: March 21 -- thanks. Found a coder. ...Blizzplanet0 Mar 12
Mar 11 KR Region Auction House API broken The KR region AH APIs have been broken for about 4 days now. > GET /wow/auction/data/garona?namespace=dynamic-kr&locale=en_US&access_token=USxxxxxxxxxxxxxx HTTP/1.1 > Host: kr.api.blizzard.com > User-Agent: curl/7.58.0 > Accept: */* > < HTTP/1.1 500 Internal Server Error < Date: Mon, 11 Mar 2019 13:49:27 GMT < Server: Apache-Coyote/1.1 < content-type: text/plain;charset=utf-8 < content-length: 16 < x-trace-traceid: 1584ec70-8b28-a1e0-bdd3-fa167ac307ec < x-trace-spanid: 1584ec70-8b28-a320-bdd3-fa167ac307ec < x-trace-parentspanid: 1584ec70-8b28-a2f0-bdd3-fa167ac307ec < x-frame-options: SAMEORIGIN < X-Content-Type-Options: nosniff < connection: keep-alive < Downstream Error See https://does.theapi.work/ for latest status.erorus1 Mar 11
Mar 9 Node.js/express 400 error Hello! I am trying to figure out how to build a basic node.js/express backend for oauth. I have never used express before so this is new to me. I am following the node.js/express bnet strategy https://www.npmjs.com/package/passport-bnet and I am also following this guide by Uglyer https://us.battle.net/forums/en/bnet/topic/20767577109?page=1#post-4 When I run my server (assuming I have it even set up correctly) and try to hit localhost:8000/auth/bnet I get a 400 error 'The redirect_uri parameter must be a valid URI' and a URL of https://us.battle.net/oauth/authorize?response_type=code&client_id=29a27f8c46ba464fb3826384e7ed6d7c Here is my server.js file require('dotenv').config(); process.env.NODE_ENV= "development"; const express = require('express'); const passport = require('passport'); const constants = require('constants'); const BnetStrategy = require('passport-bnet').Strategy; const app = express(); const port = process.env.PORT || 8000; app.listen(port, () => { console.log('Server started!'); }); // ROUTES //instance of router const router = express.Router(); router.use((req, res, next) => { console.log(req.method, req.url); next(); }); // home page router.get('/', (req, res) => { res.send('I am the home page'); }); /*========================= // Bnet OAuth2 Navigate to // ===========================*/ // Authenticate Requests router.get('/auth/bnet', (req, res, next) => { passport.authenticate('bnet', (err, user, info) => { if (err) { return next(err) } })(req, res, next); }); //*============================ // Bnet OAuth2 Callback Route // ==============================* router.get('/auth/bnet/callback', (req, res, next) => { passport.authenticate('bnet', { failureRedirect: constants.DOMAIN + '/loginFailure' }, (err, user, info) => { if (err) { return next(err); } console.log(user); res.redirect(constants.DOMAIN + '/loginSuccess' ); })(req, res, next); }); // handle CORS const cors = require('cors'); // apply routes to app app.use('/', router, cors()); // Use the BnetStrategy within Passport. passport.use(new BnetStrategy({ grant_type: 'authorization_code', clientID: process.env.BNET_ID, clientSecret: process.env.BNET_SECRET, callbackURL: constants.CALLBACKURL, region: 'us' }, (accessToken, refreshToken, profile, done) => { // Profile returns the Bnet Id, Battletag return done(null, profile); })); Here is my .env file BNET_ID='myID' BNET_SECRET='mySecret' Here is my constants file let constants = {}; if (process.env.NODE_ENV === 'production') { constants.DOMAIN = ''; constants.CALLBACKURL = 'https://localhost:8000/auth/bnet/callback' } else { constants.DOMAIN = 'https://localhost:' + 4200; constants.CALLBACKURL = 'https://myBackendApp.localtunnel.me/auth/bnet/callback' } module.exports = constants; As I said I am new to to express. I'm sure I could move some of this stuff to separate files and clean up some areas, but at the moment I just want to make sure things are in order, as I'm aware code order matters greatly in express, and if I've set up things in a way that should be working as I intend. On my front end I have a button with the tag <a href="https://myBackendApp.localtunnel.me/auth/bnet/"> that returns a 404 but that is another issue I can solve later. I just want to figure out the node.js/express stuff. Thanks for taking the time to read this!Isadore0 Mar 9
Mar 9 SC2 EU Ladder API returning outdated data The StarCraft 2 ladder api endpoint is currently returning outdated data(4 or so days old now). The responses are 200s but they do not accurate reflect the current ladder standings for a given ladder id(I have only tested grandmaster). Here is an example of a player's win/loss count being out of date in the api vs in game. API: https://imgur.com/S7SHFvT.png shows 129-49 in game: https://imgur.com/7A9YXD0.png shows 157-56 I should also note that the NA server IS returning up to date data as expected. It is only Europe I seeing this behavior on and have confirmed it with 3-4 other app developers and they are seeing the same behavior. According to one of the devs, this behavior started on Monday(they said after maintenance?). Hopefully that is helpful. Thanks so much. I would really appreciate if this could be looked into asap since I think a lot of devs have had their apps working off out of date data for the past 4-5 days.feardragon5 Mar 9
Mar 8 Nodejs Express OAuth2 Guide OAuth2 can be kind of confusing at times, especially in the development environment. Please, allow me to try to alleviate some of your frustration setting up and testing Bnet OAuth2 in your app. This guide is mainly going to focus on how to get a development environment running. As a result, the production side will come to life as well. I used this guide by Billi to get all set up myself. https://us.battle.net/forums/en/bnet/topic/14881218054 I am only going to cover bnet-us, please refer to Billi's guide to have more than just the US region. A little disclaimer is that I don't claim for this to be the best method but it is one that worked very well for me in testing and production. I work in Windows and use the Windows Subsystem for Linux. https://docs.microsoft.com/en-us/windows/wsl/install-win10 I will be writing Linux commands because I am assuming you will also be using this tool. I will also be assuming that you have a front end client running on a different port than your backend. Let's start with what packages you need (after you already have node and express running). https://www.npmjs.com/package/passport npm install --save passport https://www.npmjs.com/package/passport-bnet npm install --save passport-bnet https://www.npmjs.com/package/dotenv npm install --save dotenv https://www.npmjs.com/package/localtunnel npm install -g localtunnel I will only be going over how to connect passport to bnet and authentication routes. For more information on hooking up passport to your app please refer to the passport docs. http://www.passportjs.org/docs/ Let's start by setting up your environment. Go ahead and create your .env file in your root directory and as early as possible in your application, require and configure dotenv. require('dotenv').config() Inside of your .env file create these variables. Remember to never push this up to your repository to protect your keys. BNET_ID='insertKeyHere' BNET_SECRET='insertSecretHere' Create a constants file (constants.js) and let's define your domains. The Callback URL is https (localtunnel allows this) because that's what Blizzard requires. let constants = {}; if (process.env.NODE_ENV === 'production') { constants.DOMAIN = ''; constants.CALLBACKURL = '/auth/bnet/callback' } else { constants.DOMAIN = 'http://localhost:' + frontEndPort; constants.CALLBACKURL = 'https://myapp.localtunnel.me/auth/bnet/callback' } module.exports = constants; Ok, your domains are setup. Let's now look at our routes. The first route is going to be what your application redirects to when a user clicks the login button. It will handle the redirect to Bnet. The second route (callback) is what Bnet is looking for after the user has entered their credentials. In this callback route you will decide where the user is redirected to after they login through Bnet. const passport = require('passport'); const constants = require('/path/to/constants.js'); /*========================= Bnet OAuth2 Navigate to ===========================*/ router.get('/auth/bnet', (req, res, next) => { passport.authenticate('bnet', (err, user, info) => { if (err) { return next(err) } })(req, res, next); }); /*============================ Bnet OAuth2 Callback Route ==============================*/ router.get('/auth/bnet/callback', (req, res, next) => { passport.authenticate('bnet', { failureRedirect: constants.DOMAIN + '/loginFailure' }, (err, user, info) => { if (err) { return next(err); } console.log(user); res.redirect(constants.DOMAIN + '/loginSuccess' ); })(req, res, next); }); Now that the routes are all setup, we need to configure passport-bnet. After you have setup your initial passport (look at passport guides) we will configure the BnetStrategy. const constants = require('/path/to/constants.js'); const passport = require('passport'); const BnetStrategy = require('passport-bnet').Strategy; passport.use(new BnetStrategy({ clientID: process.env.BNET_ID, clientSecret: process.env.BNET_SECRET, callbackURL: constants.CALLBACKURL, region: 'us' }, (accessToken, refreshToken, profile, done) => { // Profile returns the Bnet Id, Battletag return done(null, profile); })); Alright, good work. On your website you will create a button or an a tag with an href pointing to your '/auth/bnet' route. However, in your development build, this needs to point to the URL that localtunnel gives you. I will show you how to run localtunnel after you create this button. In production, it will just point to your normal URL with the /auth/bnet route. <a href="https://myapp.localtunnel.me/auth/bnet/">Login with Bnet</a> Let's startup localtunnel. Open your bash shell (using the Windows Subsystem for Linux) and run lt --port 8080 --subdomain myapp A few things to keep in mind. This port needs to be your backend port. The subdomain also must be unique throughout the world. If you all use 'myapp', only one person is actually going to get the myapp subdomain. Now open up another bash shell and startup your node server with this command. NODE_ENV=development node app.js When it's production you will use this command instead. NODE_ENV=production node app.js When you click your button, it doesn't work. Wtf, Uglyer I followed your guide to the T! Don't panic, we just need to tell Bnet what our Callback URL is. You need to login to your dev.battle.net portal and follow these steps. Click on My Account -> Applications -> Edit -> scrolldown and enter your Callback URL (the same from the constants file depending on whether you are in development or production) into that textbox and hit save. It might take a few minutes to update on Bnet's side. A few things to remember is that if you do not use a constants file on your front end you will need to change the link on your button to be your Production URL when you deploy. The other place that is not dynamic will be the Callback URL on dev.battle.net, this will also need to be manually changed as you deploy your app. I hope this made sense and actually helps a few of you! Let me know what questions you have or if I've just messed up completely :P EXTRA: Get a user's WoW characters. Let's take a look back at the passport-bnet configuration. It gives us an Access Token to be used to gain information about the user. Let's use it to get the user's WoW characters. To make http requests from the server I use the package axios. https://www.npmjs.com/package/axios npm install --save axios I'm going to rewrite the passport-bnet config code here. Notice in the options portion of the BnetStrategy that I add a 'scope' parameter. Also, if you have any information coming from the request, you can pass it into your callback function with the 'passReqToCallback' parameter. const constants = require('/path/to/constants.js'); const passport = require('passport'); const BnetStrategy = require('passport-bnet').Strategy; const axios = require('axios'); passport.use(new BnetStrategy({ clientID: process.env.BNET_ID, clientSecret: process.env.BNET_SECRET, scope: 'wow.profile', callbackURL: constants.CALLBACKURL, region: 'us', passReqToCallback: true, }, (req, accessToken, refreshToken, profile, done) => { axios({ method: 'get', url: 'https://us.api.battle.net/wow/user/characters', headers: { 'Authorization': 'Bearer ' + accessToken } }) .then(response => { // Info about the user console.log(response.data); // User's characters console.log(response.data.characters); }) .catch(err => { return done(err); }); }));Uglyer3 Mar 8
Mar 8 401 bad client credential hi blizzard, i cant sync my twitch desktop app with my battle.net account, i always got error 401 bad client credentialsdraknar5 Mar 8
Mar 5 Open Source C# project example I have been maintaining https://wowloremaster.com for about a year now, but I will not be renewing my hosting contract. I loved working on the project, but I was never able to get the kind of traffic to monetize the site. I have decided to release the code on GitHub under the MIT license in the hopes that someone else may be able to make something out of it, or at least serve as an example of production code interfacing with the Blizzard APIs in C#. In the project you can find examples of how to perform user authentication and the client credential workflow for getting character data. (There are also some fine examples of how NOT to use jQuery . . ) For now I will host a copy of the app on my main website https://croncosoftware.com/loremaster, but I will no longer be maintaining either the internal build or the public build. The GitHub repo is https://github.com/Cronco-Software/Wow-Loremaster. I hope someone finds it useful!Delzune0 Mar 5
Mar 3 Starcraft 2 Achievements Heya. How do I know which of the things listed under the sc2 achievements list are actual achievements? WARCHESTSEASON2CONSOLETERRANRW with id:91475325922456 for example doesn't seem to me like a real achievement. Also, what are the flags? Their distribution is as follows: 2: 903 4: 70 0: 635 320: 34 256: 366 49154: 22 258: 151 12: 38 260: 10 2048: 15 2304: 35 4108: 52 16386: 5 8448: 6 64: 3 So I guess it's a bitfield? But what does the individual bits mean?primalr0 Mar 3
Mar 3 API for Overwatch Hi, Blizzard and free developers! I can't find any information about API's for Overwatch statistics. I tried to find information in developer site, but it has only classic game apis (Wow, D3, SC2 etc.) I want to create a tools which will help to compare your current statics with TOP players, right now in the game interface and in the portal (playoverwatch.com) it is not easy. Dear Blizzard, could you say where I can find API's if it created, or tell any information about this feature In the future? Thank you a lot!UnrealSPh0 Mar 3
Mar 1 Warfront Contributions in API Since it is changing daily now, is it possible to get this information via the API? Are there plans to provide this information via the API?ihsw1 Mar 1
Mar 1 Log in with Battle.net on third-party sites Many Warcraft fan sites are offering contests that use the log in with Battle.net OAuth approval to enter. https://dev.battle.net/docs/read/log_in_with_bnet When you go through the process it asks for approval to give the 3rd party access to- "Your Battle.net Account ID and BattleTag". http://i.imgur.com/bfDdSrK.jpg What exactly is your Battle.net Account ID? real name? email? It is not immediately obvious to me what this is. On the Warcraft login screen and on the Battle.net account services webpage it refers to your email address as your "Account Name". Your real name is referred to as "Name". I value privacy and would like clarification on what specific information the Battle.net login authorizes for 3rd parties. For other Battle.net users- How comfortable are you with letting 3rd party websites build databases on your Battle.net account information? Should parental controls be able to restrict this type of "Login with Battle.net" to protect the privacy of children who can't necessarily make informed decisions about their privacy?Reddrake13 Mar 1
Feb 27 worldofwarcraft.com character profiles URL pattern change Greetings developers, While we do not normally announce changes to the worldofwarcraft.com website on this forum, we have recently released a change that will likely impact many community websites. With this release, we have made changes to the URL pattern for the character profiles on worldofwarcraft.com. If you are linking to the official game site (worldofwarcraft.com) from your community site or other experiences, we recommend updating any URLs appropriately. Old pattern: https://worldofwarcraft.com/:locale/character/:realm-slug/:character-name Example: https://worldofwarcraft.com/en-us/character/illidan/Snutzr New pattern: https://worldofwarcraft.com/:locale/character/:region/:realm-slug/:character-name Example: https://worldofwarcraft.com/en-us/character/us/illidan/Snutzr While you update your applications and experiences, we have included redirects for requests which do not explicitly include a region. In these cases, we will use the region based on the locale of the request. Original request: https://worldofwarcraft.com/en-us/character/illidan/Snutzr Redirected to: https://worldofwarcraft.com/en-us/character/us/illidan/Snutzr The main benefit of this update is that character profiles are no longer attached to specific locales, allowing you to link and view profile pages of characters on German realms (for example) without also having to view those characters using the German locale (de-DE). For example, an EU character can now be viewed in the ko-KR locale (https://worldofwarcraft.com/ko-kr/character/eu/ravencrest/Chas). Thanks for your time, - MaguthulMaguthul0 Feb 27
Feb 27 Concerns/Issues with Client Secret Requirement for Community APIs It appears the client_secret is required for any use of the new APIs. This results in several types of applications becoming either 1) invalid under the API terms or 2) overly complex for users and developers. There are two connected questions that many developers are already very worried about, especially with only 3 months before the existing API cutoff: Can I choose to publish my client_secret knowing the risks? Will there be a method to get an access token without a client secret? If so, will this be available before Jan 6, 2019? Off the top of my head, there are several types of applications that are facing these issues: Static website Local application Standalone native application Shared/copyable web application (Google Sheets, Glitch, etc) Basically, any application that doesn't have their own dedicated backend will be facing these issues. To note upfront, the Battle.net authorization for users of these systems does not address these issues as it requires the application to get an access_token which requires the client_secret. Requiring "normal" users to generate and enter their own developer clients is also highly undesirable. As far as I can tell, the risks to exposing your client_secret are rate limit denial of service or unauthorized use of your client. I believe many developers would explicitly choose this tradeoff for the significant simplification for themselves and their users. Many of these applications must use this approach right now and large projects like SimC have not had issues with those vectors of attack. Based on the terms and current API authentication design, many existing applications or app features will not be allowed/possible with the new API system.seriallos22 Feb 27
Feb 25 question about the new api systems Hello dear developers, i do programming as a hobby (i started it 2 years ago...) and i had a small wow app in the apple app store which i pulled off a few months ago since i didn't have any time to update it. now i have finally the time to get back to programming and i would love to update my app. Since the apikey system is gone i have 2 questions: i understand that i need to get an access token, the access token is only good for 24 hours. Does this mean i have to do a tokenrequest in the app on the customer device with my personal blizzard account client id & secret id to get the token to get access to the api system? (i am using only public api) do you have a separate blizzard developer account? thank you in advanceWizz6 Feb 25
Feb 24 Overwatch API Hello, I have a little question for the Overwatch developers. I'm aware that not much info has been released about Overwatch, but I'd really like to know if you're planning on releasing the API on launch or shorty after? The Hearthstone situation really worries me, since an API for that still hasn't been released. Thank you, sprEEEzysprEEEzy26 Feb 24
Feb 24 Missing the Overwatch API Please add Overwatch to the API list, maybe also StarCraft Remastered :) I would like to see some statistics based on the played games, could be the ones shown when you hit tab in the game. E.g. how much did you heal, blocking damage, or medals. It may only be for the last week or month, it would just be nice to have access some information. Diablo 3, StarCraft 2, World of Warcraft, has API endpoints, why not Overwatch? ThanksLogifire5 Feb 24
Feb 21 avatarUrl in Profile API Metadata is not working. "avatarUrl" in "Profile API Metadata" returns incorrect data for profile avatar. Avatars in "https://starcraft2.com/en-us/profile///profileid" is not working to. Avatar looking like black square or jast a random picture. How to fix it or get correct information about profile's avatar using profile id?Anton0 Feb 21
Feb 20 D3 - 500 Server Internal Error Hello people, Just wondering if anybody was looking into fixing the global issue which has to do with D3 profile information. From what I have experience, at least in EU there is a global issue affecting both the Community API and Blizzard's own website when displaying profile / hero information. This is saddening to see no visible reaction about this. It's been 2 days. OscarChocopipe3 Feb 20
Feb 19 C# Api Access I try to get an access token and I following this guide https://develop.battle.net/documentation/guides/getting-started: Here is my code: using (var httpClient = new HttpClient()) { using (var request = new HttpRequestMessage(new HttpMethod("POST"), "https://eu.battle.net/oauth/token")) { var base64authorization = Convert.ToBase64String(Encoding.ASCII.GetBytes("{client_id}:{client_secret}")); request.Headers.TryAddWithoutValidation("Authorization", $"Basic {base64authorization}"); request.Content = new StringContent("grant_type=client_credentials", Encoding.UTF8, "application/x-www-form-urlencoded"); var response = System.Threading.Tasks.Task.Run(()=>httpClient.SendAsync(request)).Result; test = response.RequestMessage.Headers.Authorization.Parameter; } using (var request = new HttpRequestMessage(new HttpMethod("GET"), "https://eu.api.blizzard.com/data/wow/token/?namespace=dynamic-eu")) { request.Headers.TryAddWithoutValidation("Authorization", "Bearer "+ test ); var response = System.Threading.Tasks.Task.Run(() => httpClient.SendAsync(request)).Result; } } The first part to get an Authoriyation Parameter works. But if I try the request I got an 401 Unauthorized error.Innoszorn0 Feb 19
Feb 18 De-authorize API? Is it possible to de-authorize a user API connection? Currently the user authenticates to battle.net and if that user decides to no longer participate I would like to save them the step of having to go into their connected apps and removing that authentication and just do it for them. Just sort of cleaning up after myself if they don't want to be part of what I created.Mutfico2 Feb 18
Feb 17 Understanding Character Audit API Call I apologize if this was already addressed but I was wondering if someone could help explain how to handle the Character Audit API. What are the significance of the numbers both on the left and right within the "slots", "unenchantedItems", "missingExtraSockets", etc.. objects. For example it says "2:2". What does each number mean?Grepster1 Feb 17
Feb 16 401 bad client credentials im trying to link my twitch with my blizzard account and im getting this error message.Puddingkup1 Feb 16
Feb 16 401 I'm actually not sure if this is the right place, sorry if its not in advance. Ive been trying to connect my twitch to my blizzard account using the twitch desktop app. The problem comes when i click sync and the twitch desktop app opens up battle(dot)net it gives me a OAuth Error 401 bad client credentials. Below is the URL idk if that helps lol. https://us.battle.net/oauth/authorize?response_type=code&client_id=rwxqwwfmdtpefymfjw4hssw4y6sa3rrc&redirect_uri=https://sync-v1.curseapp.net/oauth/battlenetcallback/callback&scope=wow.profile&state=8840c09a4a414f0c81699d60f0c32252Redemption1 Feb 16
Feb 15 Game Stats Integration Hello, does Overwatch dev team has any plans to provide something like Valve’s Game Stats Integration for CS:GO? https://developer.valvesoftware.com/wiki/Counter-Strike:_Global_Offensive_Game_State_Integration Accordingly to doc from mentioned link: ... P.S. i know that this forum mostly about WEB API, neither game engine related stuff. Thought it's better place then general discussion of overwatch forum. Furthermore i already tried to post in mentioned thread: https://us.forums.blizzard.com/en/overwatch/t/game-stats-integration/289595?u=%D0%B1%D0%B0%D1%82%D1%8F%D0%B4%D0%B6%D0%B5%D1%84%D0%B0-2717БатяДжефа0 Feb 15
Feb 15 Retrieving required mats Hello! I am new to this place and I have a question! I am making a dynamic shuffle website where you can see if all kinds of different shuffles are a profit with the auction house api. Like that, I can log in, in the morning to see what I should invest in, do the shuffle and sell it with quite good profits! However I need a solid way (prefer no scraping) to check mats needed for an item. For example Item 159888 Needs 6 leather and 4 bones (for example) how can I retrieve the quantity and item id's? If I can get that to work, i can make dynamic shuffles for alot of old and current world shuffles.Grumpymuppet0 Feb 15
Feb 15 WC3 Custom Game Lobbies List? Is it possible to get a list of Custom Game lobbies in WC3 from the API?Encoder0 Feb 15
Feb 14 No compression on new Blizzard.com API's I'm not seeing any compression on the new API's, previously I would always see the encoding headers, now they are missing. For example a call to https://us.api.battle.net/wow/leaderboard/2v2?locale=en_US&apikey= is a response of 134KB with Content-Encoding: gzip While a call to https://us.api.blizzard.com/wow/leaderboard/2v2?locale=en_US&access_token= is a response of 1.8MB with no Content-Encoding header.RIDDICK11 Feb 14
Feb 14 D3 - Parangon Mismatch between Profile and Hero Hello People, I have found incoherent data when requesting the D3 community API for my profile and for my heroes. Here is the example: My BattleTag is Chocopipe#2208 so I call the API this way (with a valid OAuth token it goes without saying): curl -H "Authorization: Bearer EUxxxxxxxLnTLBii1id6z7UQrT33A0xxxx" https://eu.api.blizzard.com/d3/profile/Chocopipe%232208/?region=eu&locale=en_GB It returns loads of things including this profile information: "battleTag": "Chocopipe#2208", "paragonLevel": 911, "paragonLevelHardcore": 603, "paragonLevelSeason": 328, "paragonLevelSeasonHardcore": 0 and this hero: { "id": 111697772, "name": "TerriBE", "class": "necromancer", "classSlug": "necromancer", "gender": 1, "level": 70, "kills": {"elites":2821}, "paragonLevel": 911, "hardcore": true, "seasonal": false, "dead": false, "last-updated":1542493711 } Clearly I have a parangon 911 in the softcore universe and a parangon 603 in the hardcore universe but the hardcore hero is said to be parangon 911 which is the softcore version. To provide you with more information, the data provided by the API for the hero which I can get using the following command: curl -H "Authorization: Bearer EUxxxxxxxLnTLBii1id6z7UQrT33A0xxxx" https://eu.api.blizzard.com/d3/profile/Chocopipe%232208/hero/111697772?region=eu&locale=en_GB Provides the expected information: "id": 111697772, "name": "TerriBE", "class": "necromancer", "gender": 1, "level": 70, "paragonLevel": 603, "kills": {"elites":2821}, "hardcore": true, "seasonal": falseChocopipe2 Feb 14
Feb 13 Groups/Communities API Referring to wow communities or Battle.net groups (names are interchangeable?). I couldn't find the API in the documentation or through searching, so I don't think it exists. I'd like to develop an app to help people find communities that interest them. Ideally, would love to be able to get a list of communities (or groups) with data like game title, group name, description, member count/list. Thanks!Arsis0 Feb 13
Feb 13 500 Downstream Error on /wow/user/characters A couple of people noticed this today on my end. /wow/user/characters is returning a 500 Downstream Error. $ curl -i https://us.api.blizzard.com/wow/user/characters?access_token=(redacted) HTTP/1.1 500 Internal Server Error Date: Wed, 13 Feb 2019 01:06:57 GMT Server: Apache-Coyote/1.1 content-type: text/plain;charset=utf-8 content-length: 16 x-trace-traceid: 158139ad-8c6f-1760-beff-fa164ddea21f x-trace-spanid: 158139ad-8c6f-19c0-beff-fa164ddea21f x-trace-parentspanid: 158139ad-8c6f-1990-beff-fa164ddea21f x-frame-options: SAMEORIGIN X-Content-Type-Options: nosniff connection: keep-alive Downstream ErrorSery1 Feb 13
Feb 12 Warcraft 3 Reforgef Warcraft 3 will has api too?Redfox0 Feb 12
Feb 12 BUG: Client Credential Access Token Expire Currently, when getting the access token via the new OAuth client credential flow, the expires_in time is set to: 86399 seconds; which is 24 hours. However, over the past days, I noticed that the access token does not expire in 24 hours, but rather 48 hours. I kept randomly requesting the client access code throughout those 2 days, and it was the same code until it finally hit 48 hours later or so. Only then, did it return a new access token. Also, it would be great if you would update the expires_in, if you keep giving the same token back if it is not expired; when using the client credential flow. Because, right now it is always 86399 for expires_inRelisa2 Feb 12
Feb 12 Knowing If A Chars Gear is Gemmed/Enchanted So I can pull the items list from the character but how do I know if the item has a socket that isn't gemmed or can take an enchant but does not have one? When I look at the data it only tells me if one is present but not if it is capable. I could hard code it because I know what can be enchanted for BfA but that doesn't work for gems and it would break on the next expansion.Mutfico1 Feb 12
Feb 11 Switching from file_get_contents to cURL Hello, I recently started working with the Blizzard API again and tried to implement the changes, but I'm kinda stuck. The old way was like this: $data = file_get_contents('https://eu.api.blizzard.com/wow/character/blackrock/xyron?fields=feed&locale=en_GB&apikey=' . $apiKey); I figured out how to get a token which is needed, but getting it running with cURL won't work. I'm currently trying this: $url = 'https://eu.api.blizzard.com/wow/character/blackrock/xyron'; $headers = array( 'access_token: ' . $token, 'locale: en_GB', 'fields: feed' ); $ch = curl_init($url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); $response = curl_exec($ch); $result = json_decode($response); The token itself works, I tested it with file_get_contents and access_token instead of apikey. But something's wrong, it doesn't work and don't get any errors. Can anyone help? Thanks in advance!spiRit1 Feb 11
Feb 10 How to activate your account? Hey all, Not sure if I'm missing something super simple or not, but I'm trying to do a query against the API, and everything looks right, but no matter what I throw at it, I get a 403 Account Inactive reply. Do I need to do something to activate my account? Does it take time to activate? The URL I am querying: https://us.api.battle.net/wow/character/MyServer/MyCharacter?fields=achievements&locale=en_US&apikey=MyAPIKeyxxxxxxxxBrigzzy3 Feb 10
Feb 9 Auction Data URL not working - my ISP or blocked? Auction data suddenly stopped working on my home connection. For example: http://auction-api-us.worldofwarcraft.com/auction-data/de55febb04096123926bca84d7b31f1c/auctions.json is not loading at all. All other API endpoints work fine, but the above auction URLs are returning empty responses. I've tried changing my IP address at home, nothing is working. The URL does work through my VPN, or my remote servers, which leads me to believe it's either an ISP issue or I was somehow blocked. I'm not hitting rate limits or anything, as I keep my data pulls minimal, only pulling whenever the timestamp through the auction API has been updated. I've tried doing a traceroute to "auction-api-us.worldofwarcraft.com", which completes, so this is a bit confusing.Puscifer7 Feb 9
Feb 9 I don't understand anything I am required to have an application or website to use the API? Or can I test the API directly on https://develop.battle.net? I really don't understand how to use this API. I used an API from a well-known MOBA, it was very simple. But now...... How can I get this damn OAuth???????mechanical132 Feb 9
Feb 8 SC2 Profile API Bad Request Error I've just come back to the SC2 API after a few months and I'm getting my bearings with the new API. I tried to use the profile request in the Profile API section and every account ID I try returns the same 400 error with the response text as: "The following required parameters were missing or invalid: regionId" When it is clearly not. Anyone else experiencing this error? I'm happy to use the legacy API for now but would obviously like to begin moving over to the new one.ZephyrBlu2 Feb 8
Feb 7 401 (Unauthorized) Hi, I believe this is a very stupid question and I'm sorry in advance. I'm developing an app that uses the Zone API. However, the API stops working periodically (about once a day) and returns the 401 (Unauthorized) error. Is this because of my access token expiring? Thanks a lot.Laysan3 Feb 7
Feb 7 WoW Item tooltip endpoint and query parameters Hello, I am using this base URL to return xml of an item http://us.battle.net/wow/en/item/161600/tooltip? I recently found on a random post how to increase that base item by adding the bonusLists value so that the query string is now http://us.battle.net/wow/en/item/161600/tooltip?bl=5289,1562,5128 I'm trying to find documentation on some more of the parameters available for this URL, such as bonusLists = "bl=" azeritePowers = ? gems = ? enchants = ? If there is a better way to return the tool tip could you please guide me in the right place -Thank youNovels5 Feb 7
Feb 5 EU AH data not working As of this afternoon (around 2019-02-05 15:30 UTC ) it appears that the EU AH data API is no longer working: it gives "500 (Internal Server Error)" errors for the 4 realms I check (EU-Arathor, EU-Nordrassil, EU-Draenor and EU-Stormrage) Looking at https://does.theapi.work/ , it appears I am not the only one observing this problem - and it affects in fact all European realms.Yoco0 Feb 5
Feb 3 CN API still getting 403 Still old problems 403 for months, tried register an new key but not resolved . Anyone knows how to access CN api data please?Jason13 Feb 3
Feb 3 Forbidden in GET oauth/userinfo keep getting the 403 Forbidden when trying to retrieve user data sending a GET method via PHP with headers set URL : https://eu.battle.net/oauth/userinfo HEADERS : Authorization: Bearer <access_token> I been using the system using the "access_token" parameter, but I had removed since it says the "method" is no longer supported/changedMortalys4 Feb 3
Feb 2 WoW hidden criteria list? Hey, i wanted to ask if there is a list im too blind to see where the hidden criterias are listed. I mean these that keep track of your honorable kills, artifact might etc etc Thanks in advice :)Chakratos3 Feb 2
Feb 2 Achievement progress query Sorry if the answer to this is obvious, but I searched and didn't find it, and that surprises me. I know how to query a player's completed achievement list, but how do I query the progression on incomplete ones? Say, I wanted to see how many mounts they had towards their "Mountain o' Mounts" achievement (it's not the same as the mount total in their statistics as the latter includes class mounts the player can't use). Thanks for your help!Wain2 Feb 2