One possibility is to use CKFetchRecordZoneChangesOperation to fetch the change token. One of the callbacks has a 'moreComing' property which you may use, or store and compare server change tokens.