Use a pull replication.
If you start talking to the server directly, you’re basically trying to re-implement the replicator. Even for a special case like populating an empty database, that’s going to be difficult.
If you’re finding the replicator too slow, then let’s investigate that. What version/platform of CBL, and what device(s)? Obviously there are a lot of variables, but I can say that, given enough network bandwidth and disk speed, the iOS version can pull about 2000 docs per second. Real world performance may not match that, due to the limitations of cell networks and cheap flash storage, but any replication code you write will be subject to those same limitations.