Laravel.io
module.exports.searchCities = function(cityName){
    return new Promise(function(resolve, reject){
        var apiURL = URL + '?GetCityName&CityName=' + encodeURIComponent(cityName);

        http.get(apiURL, function(res){
            var body = '';

            res.on('data', function(chunk){
                body += chunk;
            });

            res.on('end', function(){

                parseString(body, function(err, result){
                    if (err) return reject(err);

                    resolve(result.root.City.map(module.exports.normalize));
                });

            });
        }).on('error', function(err){
            return reject(err);
        });
    });
};

Please note that all pasted data is publicly available.