A blackbox implementation (no access to original source code) is clearly ethical. The purpose of an API is specifically to allow interoperability with software that you don't write; the presence of a competitor (open source or not) who re-implements the server side of your API is a Good Thing for a competitive market place.