04Places · Compare
RankFabrik vs OpenWeb Ninja — who pays for the duplicates?
OpenWeb Ninja's own how-to guide for covering an area tells you to tile a bounding box and sweep it with a nested loop of tiles × keywords, then deduplicate the results yourself. Its API bills per business object returned. Put those two facts together and the incentive runs the wrong way: more overlapping tiles means more billed rows, whether or not they end up unique.
Sourced 14 September 2026 from OpenWeb Ninja's own pages: Plans & Pricing at
openwebninja.com/api/local-business-data, and the sweep guide at
openwebninja.com/blog/scrape-all-google-maps-businesses-in-an-area.
Their guide, in their own words
The recommended method uses /area-search-by-bounding-box on the Local
Business Data API: for every tile, for every keyword, page through results and
deduplicate by business_id. Their own key takeaway names the trade-off
outright:
"Overlapping tiles are the point, duplicates are the cost."
That's accurate about the mechanism. It's also a cost that lands entirely on the person calling the API — because billing happens per business object the call returns, before any deduplication step runs.
Illustrative example — the arithmetic, with round numbers
Not a live calculator, not a measured benchmark — just the mechanism, worked through with assumed, clearly-labelled numbers so the effect is concrete.
| Assumption | Value |
|---|---|
| Tiles swept over the target area | 25 |
| Business objects returned per tile (assumed, with overlap) | 40 |
| Business objects billed before dedup | 25 × 40 = 1,000 |
Assumed duplicate rate after dedup by business_id | 35% |
| Unique businesses left after your own dedup step | 650 |
| OpenWeb Ninja (Pay As You Go) | RankFabrik | |
|---|---|---|
| Billed on | 1,000 business objects returned (dedup is your problem, after billing) | 650 places — dedup on the place identifier happens before billing |
| Rate | $0.004 / business | $1.00 / 1,000 places |
| Total for this sweep | 1,000 × $0.004 = $4.00 | 650 places × $1.00/1,000 ≈ $0.65 |
| Effective cost per unique business | $4.00 ÷ 650 ≈ $0.0062 | $0.65 ÷ 650 = $0.0010 (flat rate, unchanged by dedup) |
Change the tile count, the per-tile average, or the overlap rate and the totals move — the point standing regardless is structural: a per-object bill charged before dedup pays the provider for every overlap their own guide tells you to create.
Side by side
| OpenWeb Ninja | RankFabrik | |
|---|---|---|
| Billing unit | Business object returned — duplicates included, dedup is a separate step you run after | Place returned — deduplicated on the place identifier before billing |
| Plans | Free $0/mo (500/mo), Pro $25/mo (20k), Ultra $75/mo (100k), Mega $150/mo (300k), or Pay As You Go at $0.004/business | $1.00/1,000 places, $2.00/1,000 with contact email — pay-per-event, no plan to pick |
| Local Business Data API latency (as listed) | ≈ 1394ms | Not published as a headline number — measured per request |
| Listed rating (as shown on its own listing) | 3.5 / 5 | Not applicable — no third-party marketplace rating to cite |
| Fill rate before you pay | Not stated on its plans page | Yes — completeness on every response |
The RankFabrik version
/balayer already does the tiling and the sweeping, and dedup happens on the
place identifier server-side, before anything is billed — the exact step OpenWeb Ninja's
guide tells you to run yourself, after paying for every row.
place — map record
place-contact — record + email read from the site
Pay per place returned — you are charged only for events the actor actually returns, never for an empty run. Metered and billed by Apify; no separate RankFabrik account to open.
Questions
Is there a tool that can scrape addresses from Google Maps?
Yes. RankFabrik's `/rechercher` endpoint returns up to 20 places around a point or a search term, address included every time — it's the one field with 100% fill rate on a real sweep. `/balayer` does the same over a whole area, split into cells and deduplicated on the place identifier before anything is billed.
What are the limitations of the Google places API?
Search and details are billed as separate SKUs, so a finished record with phone and website needs two calls, not one. Nothing tells you how complete a batch will be before you pay for it. And Google's terms restrict caching and long-term storage of most Places content, so what you can keep afterward is limited too.