As far as I can tell, the geocoding APIs from stuff like MapBox or Pelias aren't intended for this use case (more like finding a specific hardware store).
I don't think it would be difficult to implement in Pelias either considering that it already has the necessary data and can search for results closest to a given point or within an area.
Self plug: I wrote a Node library a few years ago to use this data offline. It builds a SQLite database, which is small enough to be suitable for embedding into applications. [1]
Yep that's OpenStreetMap! You could use Pelias for geocoding, OSM for the data. Why not offer for users to add the business to OSM if it doesn't exist?
I think Foursquare also has a directory, I'm not sure what their costs are though (and closed of course).
If I look at university nodes that have a website in France I find 241 unique values which represents less than 10% of the total amount.
In Wikidata, I can currently get 563 results for institutes of higher education in France with website information: https://query.wikidata.org/#SELECT%20DISTINCT%20%3Fschool%20...
EDIT: Applied the fix by yorwba to get more results.
Modifying your query, I get 563 results: https://query.wikidata.org/#SELECT%20DISTINCT%20%3Fschool%20...
Conclusion: it depends on how you count.
Query:
SELECT (count(DISTINCT ?school) AS ?count)
WHERE
{
# find instances of subclasses of university Q3918 (use Q38723 for higher education institution)
?school wdt:P31/wdt:P279* wd:Q3918 .
# in France
?school wdt:P17 wd:Q142 .
}This makes OSM data a non-starter in most serious business use cases.
Yeah, freeriders are a problem for OSMF raster map tile servers, but there is now no excuse not to use any of the above two solutions (self hosting or 3rd party APIs).
But the point is that you can use the same data they use to make your own tile server if you like. And if you update the OSM data we will all benefit