What is API, what does it have to do with Halo and why should you care?
This was one of the subjects discussed on last night’s Halo Council podcast and something that personally affects my site as well as many, many others.
Yesterday, Halo Waypoint started blocking some 3rd party websites from scraping stats. Frankie explained on Neogaf that it was likely an automated response of the site looking for bots and spammers and it was soon rectified due to their quick investigation. However, this once again brings to the fore the need for public API from Waypoint.
I have personally been frustrated attempting to navigate my H4 stats on Waypoint, due to what I feel is a bogged down site that seems to have sacrificed function, readability, ease of use and available pertinent information for aesthetics. Because of this frustration and the issues we have had getting the data for BTB.net leaderboards, I have recently been talking to some of the guys at Halotracker and Firestream (the founder of HaloCharts and pretty much the godfather of 3rd party Halo stat sites) about this whole API situation and what it means for the community as a whole.
What is API?
API is Application Programming Interface. It’s an interface that developers publish to allow users to gather data from their program or server. The Stream Center we have here on Halo Council is due to Twitch.TV having a public API. Integrated twitter feeds are another great example. API is very common for sites or developers to create.
What does this have to do with Halo and what are sites able to do with API?
Many Halo fan and stat sites rely on API to function properly and efficiently. Websites such as Halotracker.com and Halocharts.com are able to provide such things as overall player and playlist leaderboards, weapon breakdowns and distances, heat maps, in depth stats and percentages, player comparisons, goal systems, clan tools, game night computers, file share gathering and searching, party recommendations, friend pairing for those looking to party up, extreme challenges, map tools, game histories with and against other players – just to name some.
Because Bungie provided API, Halocharts was able to provide players with a calculated 1-50 rank in every Reach playlist based on stats and trueskill. Halotracker provides leaderboards by trueskill in every Reach playlist. This gave many players something they felt was lacking in that title.
HaloChallenges.com uses API to issue community challenges and for users to issue Halo related challenges to their friends to complete in game. For instance, I could send my friend, E Machine, a challenge to get 250 banshee kills this week. He would get site points and medals and bragging rights of course for completing it. Friends can issue ridiculous, funny, hardcore or other insane challenges to each other for lulz or to improve with a particular weapon or vehicle.
My website, BigTeamBattle.net, uses Waypoint data for our league games. After teams play their weekly match, they simply enter in the game ID from Waypoint and our website then verifies the game, collects all the stats, creates the BTB leaderboards and so forth. Because we do it this way, it removes the problem Gamebattles faces of players falsely claiming victories. It also provides players with individual and team stat leaderboards in addition to just W-L records. All this data is also extremely useful in selecting such things as League MVP, Top Objective Player, Top League Slayer, etc and removes the manpower that would be required to manually verify every game.
There are many community, clan or playlist specific websites, such as Grifballhub.com, OutcastReborn.com, MasterTheory.net, BlackWaterops.net and others that use API for similar things such as having clan leaderboards, info, challenges and stats for their specific gametype they enjoy and focus on. Forgehub.com could use API to pull map and file share information.
API is not just about stats. It’s what Halo fansites rely on to provide their members with any Halo information they would like and a way to find friends to play with. Many MLG players have probably never heard of some of these websites and I’ve only listed a handful of them. In fact, most of the players on these sites would be considered “casuals” by much of the community. This isn’t just about hyper competitive players wanting crazy stat information and super detailed heatmaps. This isn’t for a niche group. It involves many, many players and websites and their growth potential.
So what’s the problem with API for H4?
Well up until all stats migrated over to Halo Waypoint from Bungie.net, there was a public API available through Bungie for Halo games. There has been as long as Bungie was responsible for Halo stats. (Shoutout to Achronos!)
Now that all stat collection has migrated over to Halo Waypoint, there is no longer a public API available. It is widely held that 343i has a private API, they are just not making it public as Bungie has done in the past.
Is API necessary to get the information from Waypoint?
There is a way to pull some data via “scraping”, a much more complicated method that requires in depth programming knowledge, is very laborious and buggy. Not only that – the information you can gather is still limited. If there is ever a code change made to Waypoint, the programmers have to go back, find the error, track through and figure out what was changed and recode their own sites to accomodate it.
What does this mean for Halo sites?
Well what it means for many of them is that they simply can’t provide what they were before – either because they don’t have a skilled enough programmer to scrape; it requires too much time and effort to gather the info that way; or that can’t get what they need via scraping. Because of this, they either will shut down or drastically reduce the things players enjoy about their sites. There are some that are already shutting down.
It also limits what COULD be. If there was a public API, programmers and app developers could take their ideas and run with them. They could more easily program Halo apps for your phone. Want a simple app where you can enter two gamertags and compare game history or stats? That would be nice. It would unlikely be written without public API. Lack of public API limits creativity, community involvement and the ability of Halo fans to use their skills and passion for the game to create even more Halo resources and content for players to enjoy.
Why hasn’t 343i made a public API?
They haven’t stated a reason, however there are a few possibilities. One thought is that they were on an aggressive timetable to release H4. It could also cost more money for them to scale up for the load to accomodate the API. However, they can issue tokens and track use and abuse. Many sites or programmers are also more than happy to pay an annual fee for the API to cover the upscale. These are all very common things when dealing with API.
Because there is likely already a private API – it would probably not take too much to convert it public. This could also cover some of the future mechanics of H5 and H6 and create a codebase to build on.
343i has shown they are open to hearing constructive community feedback. The more people that start talking about this and understanding its importance – the more likely they will address it. Please check out this online petition requesting public API from 343i and speak to any contacts you may have in the community regarding this issue.
I urge 343i to please open the API up publicly. If you have plans to do so in the future, please do it sooner rather than later or give us a status on it. We fear delay of several months or more could cripple these communities and cause loss of interest. Please allow the talented programmers and creative minds of the community to build up Halo 4 resources by giving them what they need to do so. It will only grow the game and fanbase – creating a win/win for everyone.