POST /subscriptions/observation/{id}/subscribe always returns true whether the user is now subscribed or not; this should probably instead return the current subscription status if this API call is still current.
GET /observations/{id}/subscriptions is confusing, if it’s still current. As far as I can tell from testing, it returns some various info about the observation queried if you’re NOT subscribed, and returns nothing if you are subscribed.
Related to #3, there may be a few other DELETE operations which return something, and some which return nothing. Unvoting an Observation is another DELETE operation which returns a value, whereas most don’t.
GET /taxa doesn’t list page as an available parameter, but the server accepts it. I think there was another call with a similar issue but I forgot to note which one.
i can’t reproduce #5. seems to work just fine for me. sometimes indexing isn’t triggered when an observation is updated. so i wonder if that could be related to whatever you’re noticing?