Design overview TCP-based, all communication between the client and the server is done using one TCP connection. This connection stays alive until it is explicitely closed by either the client or the server.

Does this imply that the connection to Vndb should remain opened for as long as possible, or should it be closed as soon as it's finished being used? Or does it not matter and it's up to developer preference?

A little bit of both. There are a few sections of the API that may need some work. Also, even though I know you said that the API and the site share very little code, I figured right after a site redesign like what is planned would be a good time as any to rework the API.

Would it be possible to add the revision number and/or the timestamp of the last modification as a field/filter? I cache results from api queries, but as it currently stands there is no way to check if the information I have cached is out of date. Currently I just set a limit on my end, but this can easily result in out of data data and unnecessary updates on my end. I'm not sure how many people actually use the api so it might not be an issue, but I imagine adding something like this could reduce server load by reducing the amount of data transferred.

I've looked through the code/database schema and it doesn't seem like it would be too difficult to implement this, though it does present some issues (like how exactly a filter for the revision number would work.) If you have a better way to solve this problem or if there's a way with the current api that I'm just missing that would be fine too.