The geolocation datasets are publicly available from MaxMind and the cost of performing and delivering a lookup result is trivial in terms of CPU and bandwidth - even less so if the result is cached. So how exactly is charging for these services profitable if one can simply set up their own private geolocation server for minimal cost?
There are more datasets than just MaxMinds.<p>MaxMinds better datasets also cost money, so the options are "pay someone to run a server for you" vs "pay someone to give you data and run your own service using that data".