let officialAccountObservable : Observable<[SearchUser]> = SearchAPI.sharedAPI.suggestAccounts()
officialAccountObservable.bind(to: tableView.rx.items
I think the problem you are having right now is that when you create the observable which makes the Alamofire call, it only ever gets executed once since you have no way to make another call.
What you might want to do is something like Maxim Volgin suggested: use a subject.
A subject is a input as well as a output at the same time. In your case, the output would be the data for your tableview and you would bind it as you already do.
Then, use the pull to refresh or another suiting mechanism for reloading to make the web service call and publish the results to the subject (which then will update your tableview).
Keep in mind that subjects also populate onError and onComplete calls up to the observer so make sure you deal with possible errors in your web service call before publishing the result to the subject.
I found this site incredible helpful to get a better understanding of RxSwift: http://swiftpearls.com/
You should check it out. Especially the RxSwift for Dummies is great to get the basic understanding of how things are supposed to work.