ScrapeField
A busy business with no website is one of the easiest sales a web agency makes. Google Maps knows which ones they are: a listing shows a website when the business gave one. This guide searches a trade in a town and keeps the listings that show none, busiest first.
The search
GET /v1/google-maps/places takes a query such as “plumbers in Leeds” and returns up to 20 listings a page. Each has a website, which is null when the listing shows none, a formatted_phone_number, a user_ratings_total and a business_status. A page costs 3 credits. Pass meta.next_cursor back as cursor for the next one.
const headers = { Authorization: `Bearer ${process.env.SCRAPEFIELD_KEY}` };
const leads = [];
let cursor = null;
for (let page = 0; page < 3; page++) { // up to 60 listings
const params = new URLSearchParams({ query: 'plumbers in Leeds' });
if (cursor) params.set('cursor', cursor);
const res = await fetch(`https://api.scrapefield.com/v1/google-maps/places?${params}`, { headers });
const body = await res.json();
if (!res.ok) { console.error(body.error.code); break; } // a failed call is not charged
for (const p of body.data) {
if (p.website !== null || p.business_status !== 'OPERATIONAL') continue;
leads.push(p);
}
cursor = body.meta.next_cursor;
if (!cursor) break;
}
leads.sort((a, b) => (b.user_ratings_total ?? 0) - (a.user_ratings_total ?? 0));
for (const p of leads) {
console.log([p.name, p.formatted_phone_number ?? 'no phone', p.user_ratings_total ?? 0, p.claimed === false ? 'unclaimed' : '', p.url].join('\t'));
}Busiest first
The number of ratings is the best sign of a busy business that the listing gives. A plumber with 140 ratings and no website has customers and no page to send them to. One with two ratings may not be trading much. claimed says whether the owner has claimed the listing; one that is false offers “Own this business?” on Maps, which is a second thing to offer them.
Check before you call
“No website on the listing” is not always “no website”. Some businesses have one and never added it, and some use a social page instead. Search the name before you call, and open with the listing: “your Google listing has no website” is true either way.
What it costs
Three pages of one search are 9 credits. A town and twenty trades, three pages each, is 180 credits, about $0.14 on the smallest pack. A search is cached for a day. For the same search over many towns, send one call per town, several side by side, up to your limit of calls at once. To cover a whole city, see Google Maps leads for a whole city.