Wouldn't it be nice if you could access geek data in a programmatic way? It would be handy if your game tracking tool could look up game IDs based on name, or get a machine readable version of some game statistics without having to do all that screen scraping, right?
Well, now you can. It's starting off with a limited set of features, but I wanted to get feedback and requests before I spend time building parts that are going to be less used. So, to start off here's what you can get via the new XML API:
- Search for games by name
- Get basic information on a game
- Get statistics on a game (rank, etc)
- Get comments on a game (listed by username)
There are currently two XML API URLs of relevance:
http://boardgamegeek.com/xmlapi/search
http://boardgamegeek.com/xmlapi/game/[gameid]
Both take some parameters as URL encoded components of the query string.
/xmlapi/search takes a single required parameter "search" which is what to search for and an optional parameter "exact", which should be set to 1 to get exact search. Search is always case insensitive.
For example:
http://www.boardgamegeek.com/xmlapi/search?search=euphrat
http://www.boardgamegeek.com/xmlapi/search?search=ra&exact=1
/xmlapi/game/[gameid] has no required parameters other than the gameid which is part of the URL. It has two optional parameters, "stats" which adds a statistics element to the game xml, and "comments" which adds a comments element listing all comments on the game. For example:
http://boardgamegeek.com/xmlapi/game/3727
http://boardgamegeek.com/xmlapi/game/3727?comments=1
http://boardgamegeek.com/xmlapi/game/3727?stats=1
http://boardgamegeek.com/xmlapi/game/3727?comments=1&stats=1
So, what additional information should be exposed. I'm interested in suggestions and feedback, but I will add a few qualifiers:
- I'm more interested in suggestions involving game data than forums/geeklists.
- I'm more interested in specific real use cases than theoretical "it would be neat if..." cases. That is, someone who says: "I have a free game play tracking tool and I will use the /xmlapi/search interface to sync with bggids, but I could really use..." is more likely to get done than someone who says "It'd be neat to have a list of image URLs for a game".
- Don't abuse the system. This isn't license to slam the servers. Self regulate your hit rate. There are no limits in place now, but they'll get added if it becomes a problem.
- Stuff that will be low impact on the servers and likely to be useful even when only hit occasionally will be more likely to be implemented than stuff that it likely to get reloaded constantly by programs.
- Because of various database constraints, some things are simply easier than others. Because of time constraints, these will get implemented first. Don't take it personally if the thing you want doesn't get implemented.
So, what would be useful to add?
What are you going to do with the initial stuff I've given you?









































