B2B Revenue Autopilot Kit

Field notes · 18 October 2026 · 8 min read

Why a Places search returns 60 businesses and never more

You ask Google for 200 dentists in a city. You get 20. You loop the pagination, feel clever, and land on exactly 60 — then the token disappears and the results stop. That is not a bug in your loop: 60 is the documented ceiling of Text Search (New). Here is how the pagination actually works, what each extra page costs, and the four mistakes that quietly leave you stuck on page one.

The number nobody reads in the docs

The Text Search (New) reference says it plainly: a search returns a maximum of 60 results across all pages, and Google adds that the limit is subject to change. Twenty per page, three pages. There is no parameter that buys you the fourth page — pageSize only moves the page size, never the ceiling.

That single sentence destroys a lot of business plans built on “scrape every plumber in the country in one run”. It also explains a support question we get regularly: “the workflow found 60 leads and stopped — is it broken?” No. It did exactly what the API allows.

The three fields that do all the work

FieldWhere it goesWhat it really does
pageSizerequest body1 to 20 results per page. Absent or 0 → 20. Above 20 → still 20.
nextPageTokenresponse bodyPresent only when there are more results. Absent on the last page — that is your stop signal.
pageTokenrequest body (next call)The nextPageToken you received, echoed back to fetch the following page.

Two details get lost in most tutorials. First, maxResultCount is deprecated: it was replaced by pageSize, and if you send both, pageSize wins and the old field is ignored. Second, nextPageToken must be in your field mask. It belongs to the IDs-only (Essentials) tier, so including it costs nothing extra — but if you forget it, the response has no token, your loop thinks page one was the last page, and you silently collect 20 results instead of 60. That failure looks like “the query is bad”, which is why people debug the wrong thing for an hour.

How our workflow pages — the configuration, verbatim

The workflow in the kit does not use a Code node loop. It uses the HTTP Request node's own pagination, which is easier to audit and survives node updates better:

SettingValueWhy
Pagination modeupdateAParameterInEachRequestThe token lives in the JSON body, not in the URL: this mode edits the body between requests.
ParameterpageToken = {{ $response.body.nextPageToken }}Takes the token from the previous response — never from your own counter.
Stop condition{{ !$response.body.nextPageToken }}Stops when the API says there is nothing left, not after a fixed number.
Max requests3A hard cap so a misbehaving token can never turn into a runaway bill.
Interval2000 msTwo seconds between pages: cheap insurance against rate-limit rejections.

Both conditions matter, and they do different jobs. The stop condition is the correct reason to stop; the request cap is the safe reason to stop. Keep both and you never pay for a page the API did not intend to give you.

What each page costs, with the arithmetic visible

Billing in Places API (New) is per request, at the highest SKU present in that request's field mask. A paginated call is not one request with three pages: it is three requests, each carrying its own mask, so the bill multiplies with the pages in a way that is easy to forget.

RunRequestsBusinessesCost at the Enterprise SKU (USD 35 / 1,000)
1 page120USD 0.035
2 pages240USD 0.070
3 pages (the kit's cap)360USD 0.105
1,000 businesses501,000USD 1.75

Notice the shape of the last row: a thousand leads is fifty requests, not one. If you are inside the monthly free allowance for that SKU, the same thousand leads cost zero — which is why “how many requests per run” and “how many runs per month” are the two numbers that decide your bill, and why a cap of three pages is a pricing decision as much as an engineering one.

So how do you get more than 60?

Not with a bigger page. Split the question:

  1. By area. Run the same niche once per district or town instead of once for the whole region. The ceiling is per search, so ten districts are ten ceilings.
  2. By niche wording. dental clinic, dentist and orthodontist are three different searches that overlap — which is fine, because the next point removes the overlap.
  3. With deduplication by placeId. This is the part that makes the strategy safe: dedupe before you spend money on AI, and a business that appeared in yesterday's run does not cost twice.

Our own workflow learned the honest version of this: its dedupe node remembers up to 5,000 placeIds across executions, so a second run over the same query legitimately returns zero new rows. That is not a bug either — it is the feature doing its job, and it is reset with Clear Deduplication History when you actually want to see the same businesses again.

Four mistakes that stop you at page one

MistakeWhat you seeFix
pageSize: 5020 results, no error20 is the maximum per page; use pagination, not a bigger page.
No nextPageToken in the mask20 results, no token, loop endsAdd it to the field mask — it is IDs-only, so it does not raise the SKU.
No request capA bill you did not planCap the pages (3 in the kit) and keep the token-based stop condition.
No interval429s halfway through1-2 s between pages; retry with backoff, never in a tight loop.

What this means if you are buying a template

Ask the seller two questions: “how many pages, and what stops the loop?” A template that paginates without a cap is a template that can spend your budget without asking. One that stops only at a fixed count will happily pay for an empty page. The answer you want mentions both a token-based stop condition and a hard cap.

Ours is published in full — the field mask, the SKU table, the page cap and the measured token cost per lead — in the cost document that ships inside the kit. If you would rather check the arithmetic before buying than after, that document is the long version of this article.

The kit these articles come from

Two n8n workflows, an MCP server, six documents in English and Spanish, a validator and a self-test. USD 49 one time, on the n8n instance you already have.

See pricing