Population Data

Not sure if this is the right forum, brand new to this - I am interested in creating a dataset that contains all the places in the UK with their latitude and logitude and total population so I can for example say show me the 20 places within 30 miles of Birmingham with a population < 1000

Does anybody know if this is possible, I have been able to create a dataset of places (15,000) complete with lat/lon and can query it to get the closest places but cannot seem to find where to get the population information?

Any help greatly appreciated.