Google Maps Autocomplete - Maps search suggestions as structured rows
Type the first few letters of anything into Google Maps and it proposes ten completions. They are drawn from what people actually search for on Maps, which makes them a direct read on how customers ask for a category - the shorthand, the near-synonyms, the local phrasings that no internal taxonomy contains. This service turns that dropdown into a table: one row per suggestion, four columns, exported as CSV, JSON or Excel, for as many seed queries as you want to submit. The published reference accepts the query parameter as an array and batches up to a thousand seeds in a single request.
The export has two properties that pull in opposite directions, and understanding both is the whole job. Its size is perfectly predictable: every seed returns exactly ten suggestions - that held on every block we measured, with no short blocks and no long ones - so rows equals seeds times ten, known before you spend anything. Its contents are not predictable at all. We ran one seed six times and received six different lists, with only four of its ten suggestions common to the first two runs; another seed shared just two of ten between runs. Maps autocomplete is a live surface, not a lookup table, and one pull is an anecdote rather than an answer.
That instability is workable once you stop fighting it. Sample each seed several times and rank the completions by how often they recur: a phrase that appears in every sample is genuinely stable demand phrasing, and a phrase that appears once is not worth acting on. Frequency across runs is the real measurement here, which also means the cost model is different from most scrapers - sampling ten seeds five times each is a better use of the same spend than pulling fifty seeds once. Two of our runs came back empty, so a scheduled job should retry rather than assume every request returns.
Two smaller things to get right. The position column is a rank within one seed's dropdown, not a row number: it runs 1 to 10 and restarts for the next query, so a fifty-seed file contains the number 1 fifty times and grouping by query has to precede any sorting. And the coordinates column is an input echoed back - the @lat,lng,zoom fragment from a Maps URL, identical on every row of a run - not the location of the suggested place. Across our hundred rows it carried only two distinct values, one of them empty and the other the exact default the reference documents, so our data shows the column exists and repeats what you sent, and shows nothing about how a deliberately chosen coordinate changes results. Note too that a suggestion is a phrase and not a listing: there is no place id, address or rating here. Collect the phrasings, then hand them to the Maps scraper. Start free: your first 500 rows cost nothing and need no credit card.