Today we’re reviewing an interesting piece of software engineering – Pokemon GO API written completely in Java. API stands for application programming interface and it’s a interaction layer that enables applications to send commands and get results to and from other applications or services, usually servers in current day and age.

The project is called PokeGOAPI-Java, it’s hosted on GitHub and it’s a early stage API showing how some of the game functions can be automated or replicated by calling the API directly, instead of playing the game.

Although there were Pokemon GO APIs in the wild before, namely Pokemon GO Rocket API, the PokeGOAPI is significant as it targets Java programming language and enables seamless development of Pokemon GO companion apps.

We’re not sure on how this API was built, but it’s common that API developers scrape lots and lots of data packets sent from their phone and model the API by observing network traffic. Usually, they  investigate to see what the communication from the client to server looks like, then implemented an API that mimics that communication.

Here’s a list of features currently supported by the API:

  • Get Player Profile
  • Get and Manage Inventory
  • Search Forts/Attractions
  • Get Fort Details
  • Get Map Object
  • Transfer Pokemon
  • Encounter and Catch Pokemon
  • Collect daily/defender bonus
  • Evolve Pokemon

As you can see, it doesn’t feature any GPS spoofing or any related malicious endpoints, making it a viable option to use for building companion apps for Pokemon GO.

It’s currently unclear if using or building apps that communicate with Niantic servers directly via API is “bannable” or against ToS.

Currently there are 15 contributors working on the PokeGOAPI and the entire project progress can be tracked here.