If you allow access to your API for free, you increase your visibility and expand the 'breadth of usefulness' of your platform i.e. you get new consumers without having to chase them down yourself... the customer bases of the platforms using your API become part of your customer base.I think we're seeing a maturation of the web where people are realizing we can't get a free lunch. At least not forever. Kind of like how "Peak TV" has probably peaked and we're likely to see more consolidation of streaming services in the next couple of years.
I don't know what the charge should be, but someone has to pay to keep the lights on.
But there are scenarios, like the one I mentioned previously, where the cost in infrastructure to support a certain volume of calls potentially becomes high enough to justify charging for those calls. I don't really seeing that make sense to charge your general user base though... just the high volume consumers.