Discussion: My list of API Feature Requests

Oh hi

Without much of an introduction, my list of features I'd like to see in the API. I'm aware that they're not all equally feasible. It's just a list of ideas, some influenced by things I've seen in other games that have APIs :)

Search players by name

Obviously so we can make apps that let users search for other players without needing to acquire users from some other source first.

List of players who are currently online

We could track popular streets with this and make fancy maps! Technically we can do that now, since it is entirely possible to scrape a list of players and then determine where they all are, but it would put a lot of load on the glitch server.

See players who are currently in a given street when querying a street

Similar to the previous item. Could be useful for e.g. finding a public garden that is not being used by too many other players.

Look up items by classid

Technically we can make a database of item defs with the auction interface and it's not even too hard on the server, or we could scrape it from the encyclopedia web page, but it seems like a good idea to have this ability exposed by the API.

Access mail inbox

There are lots of things that you could do with this. One of the best examples I can think of is the ability to charge fees or register donations. For this, I only need access to my own inbox. I play EVE Online and I've seen some amazing things created by the community of that game, just based on the ability to see when someone else sends you money.

Another thing we could do is make apps that notify players about new mail.

Bonus: Let us send mail too. We could pay out prizes! Again, most applications would only need access to the developer's own mail to do this.

Bonus: Give API keys their own currant account to simplify things and be able to track currant flow.

Bonus: Let us trade credits too, creating additional incentives for glitchen to buy them, and other glitchen to make applications that can be paid with them.

Integrate external items/trophies

This is a hard one, and I'm only throwing it in to have something highly unlikely on the list too ;-) I suppose items would have to be moderated and approved and all that, but it would be totally cool if e.g. a separate game that uses the glitch API could hand out a trophy that we can show off in glitch itself.
Another two:

Include expired, purchased and cancelled auctions in auctions.list

It's currently impossible to find out, using the api, whether an auction that no longer appears in auctions.list was cancelled, purchased or expired. I can scrape this information but I would prefer if I didn't have to. An additional argument to auctions.list that would cause it to include closed auctions within a given time frame seems to make sense.

Let me, as a player, see when a given application has accessed the api on my behalf

I can see which applications I've authorized and I can de-authorize them. It'd be nice if I could also see how often an application has accessed the api in my name and what methods it has used. Currently, an application I've authorized could secretly (of course in violation of the TOS) continue using the token and accessing the api.
> Include expired, purchased and cancelled auctions in auctions.list

This one has been requested separately and +1'd quite a few times, but so far, haven't seen much response from devs on api improvements.
If they post on flashy apps, we'll just have to hurry up and make some flashy apps then. :)
Another one...

Allow API clients to relinquish privileges

It would be nice if an application that holds a token for write access could relinquish the write scope, and go back to read only, without user interaction (requesting a new read token is possible, but it is more work for the user than just de-authorizing the application altogether). I would use this to give up write access e.g. when the user hasn't actually requested anything done that requires it in 24 hours or so.

Also a modification of the previous expired auctions suggestion, maybe easier to implement:
Let us request the current status of an auction, given the ID in auctions.list

Pretty self-explanatory, pass in a list of IDs that previously showed up in auctions.list, get back a dictionary that maps each ID to a state (e.g. "open", "expired", "sold", "cancelled").

And something unrelated:
Let us request a list of streets the player has already visited

Also fairly self-explanatory... could make nice maps, or tracking tools for completist badges etc. There is a user script for this purpose but it's fairly slow as it has to request all these individual web pages...