ArenaNet, developer of the popular online role-playing game Guild Wars 2, is working on the implementation of OAuth2 and plans to release new authenticated Guild Wars 2 APIs in 2014. ArenaNet also plans on adding a Leaderboards API that will give developers programmatic access to the same leaderboards data that ArenaNet used to create its Guild Wars 2 leaderboards site.



The Guild Wars 2 Leaderboards site uses leaderboards data that will be made available via API in the near future.

The initial release of the Guild Wars 2 API was on May 14, 2013. That was followed by several sets of updates and new APIs that were released throughout the summer of 2013. There are several types of API endpoints available. These include (but are not limited to):

Dynamic Events - Can be used to return the current status of events for a specific world as well as localized lists of event names, map names and world names. Can also be used to return a list of static details about available events.

- Can be used to return the current status of events for a specific world as well as localized lists of event names, map names and world names. Can also be used to return a list of static details about available events. Guilds - Can be used to return specific details for a guild such as guild name, ID, tag and the guild's emblem.

- Can be used to return specific details for a guild such as guild name, ID, tag and the guild's emblem. Items - Can be used to return a list of items that players discovered in the game, and can also be used to return details about a single item, return a list of discovered recipes and detailed recipe information.

- Can be used to return a list of items that players discovered in the game, and can also be used to return details about a single item, return a list of discovered recipes and detailed recipe information. Map information - Can be used to return information about continents and continent details. Can also be used to return a list of maps in the game as well as the details of a map floor, which is used to populate a world map.

- Can be used to return information about continents and continent details. Can also be used to return a list of maps in the game as well as the details of a map floor, which is used to populate a world map. World vs. world - Can be used to return a list of the world vs. world matches that are currently running, including the worlds that are participating. Can also be used to return a list of world vs. world objective names and details about a specific match, including the total score.

Stefan Larimore, a server programmer at ArenaNet and an active gamer (he currently plays Guild Wars 2, Minecraft and League of Legends), provided some details about the upcoming new Guild Wars 2 APIs. Larimore tells ProgrammableWeb that the OAuth2 implementation itself is basically complete. However, ArenaNet is currently developing APIs that take advantage of OAuth2. The first set of new authenticated APIs will use Guild Wars 2 Character and Account information.

"I hope to have an initial release by end of the first quarter of 2014, but there are still some unknowns about performance and scalability which might push this back a bit," says Larimore.

ArenaNet also plans on adding a Leaderboards API which will provide programmatic access to the same leaderboards data that was used to create the official Guild Wars 2 Leaderboards site.

"These new APIs, along with all previous v1 APIs, will be released under a new v2 root, which is a bit cleaner and more consistent than our v1 APIs, and offers some bulk access capabilities," Larimore says.

The Guild Wars 2 API has been enthusiastically received by the community and the API is being actively used by a small group of community members to create Guild Wars 2 apps and to build API wrappers. API wrappers have been created for a variety of languages including C#, Java, JavaScript, Objective-C, PHP, Python and Ruby. There are many great third-party apps using the Guild Wars 2 API. Two examples are GW2Spidy Trading Post Graphs and the GW2Hero Live Event Viewer.

GW2Hero Live Event Viewer

The GW2Hero Live Event Viewer displays real-time Guild Wars 2 event listings on a world map. In addition to the Guild Wars 2 API, GW2Hero uses jQuery and Leaflet. The Live Event Viewer displays group events and skill challenges. Users can choose specific worlds to view (North America and European Union).

GW2Spidy

GW2Spidy is an online Guild Wars 2 trading post that provides graphs for the gem exchange rate as well as game items such as armor, food, weapons and crafting items. GW2Spidy provides graphs for each item that show sell listings volume, buy listings volume and raw data. The charts can be set to show sell and buy volumes for one day, three days, one week, one month and all time. Also displayed are item details such as defense, power, precision, critical damage, sell price, buy price, supply, demand and when item was last updated. GW2Spidy also has a public API available that developers can use to incorporate GW2Spidy trading post data into third-party websites and applications.

Developers building apps based on the Guild Wars 2 API can post technical questions, post about issues and bugs and make feature requests in the Guild Wars 2 API Development Forum. Most interaction with the community occurs on the API subforum, where players will often answer questions and offer advice, Larimore says. He occasionally interacts with the players on the forum, replying to unanswered questions or giving some perspective on their feedback.

"We have been very impressed by technical competence and courtesy displayed by the API community. It has been a pleasure working with them," says Larimore.

For more information about the Guild Wars 2 API, visit the official documentation.

See also ProgrammableWeb’s roundup post of Five Great Gaming APIs For Developers To Play With.

By Janet Wagner. Janet is a data journalist and full stack developer based in Toledo, Ohio. Her focus revolves around APIs, open data, data visualization and data-driven journalism. Follow her on Twitter, Google+, and LinkedIn.