There is currently an API for matching, but it isn't used. (Matching happens via AJAX calls returning new page content.) There are also calls to search org identities and CO people by identifier, but they use a different mechanism and currently rely on a hack in StandardController::index. In addition, various API calls are effectively searches (eg: view all by CO ID) but aren't implemented as such.
Clean this all up and unify it as appropriate. Possibly adopt a more sophisticated search language for the API.