The reason you are stuck at around 20 results is that Google only sends data in small “pages.” To get the next set of results, n8n needs a special digital key called a “token” from Google. Currently, your setup is failing to get that key and failing to use it correctly, so n8n thinks it has reached the end of the list after the first page.
First, you have to explicitly ask Google to send that key. In your settings, there is a “Field Mask” header where you list the information you want (like the phone number and address). Because you didn’t include “nextPageToken” in that list, Google is simply leaving the key out of the response, leaving n8n with no way to ask for page two.
Second, there is a small typo in your pagination settings. You wrote “pagetoken” in all lowercase, but Google is very strict and requires a capital “T” (“pageToken”). Because of this typo, Google ignores the request for more data. Once you fix the header and the capital letter, you’ll start seeing more results, though you may also need to increase your “max requests” limit if you want more than 60 total results.
Here is the corrected JSON. You can copy this and paste it directly into your n8n workflow canvas.
Note: I increased maxRequests to 10 (instead of 3) so you can retrieve up to 200 results. You can adjust this number based on how many restaurants you need
First, you are seeing the same data repeatedly because you have too many nodes. The HTTP Request node in n8n has a built-in pagination feature that handles the “next page” tokens automatically. By chaining three identical nodes together, you are essentially telling n8n to start the entire search from page one three different times. You only need one single HTTP Request node to get all your results.
Second, you cannot ask Google’s API to only show businesses without websites; the API simply doesn’t have a “null” or “empty” filter. To achieve this, you have to download all the results first and then use an n8n “Filter” node. This node will look at the list and throw away any business that has a website, leaving you with only the ones that don’t.
Finally, there is a serious security risk: you accidentally shared your secret Google API key in your message. Because this key is now public, anyone can use it and charge costs to your account. You need to go into your Google Cloud Console immediately, delete that specific key, and create a new one to keep your account safe.
Please try this:
Crucial: I have replaced your leaked API key with a placeholder YOUR_NEW_API_KEY. You must replace this with the new key you generate in the Google Cloud Console.
Thank you so much! I deleted the API and make a whole new one! I will try the workflow also and tweak around a lil bit! Thank you for your time and dedication!
I get 60 results now… That is going in the right direction :-)!
I have one entry with WebsiteUri undefined and want to Filter that out! I attached a screenshot, how I tried it! But sth Im doing wrong! Maybe you could help me out with this one last time? How do I get more results? Thank you
The reason your filter isn’t working is that you are telling n8n to look for the actual word “undefined” written as text. In the world of data, “undefined” isn’t a word—it’s a state meaning the information is completely missing. Because the website field is empty rather than containing the text “undefined,” the filter ignores it. To fix this, change the operator from “contains” to “Is Empty.” This tells n8n to keep anything where the website field is missing, null, or blank.
Regarding your results, Google sends data in “pages” of 20 businesses at a time. Your screenshot shows you have 19 or 20 places in one result, which is the maximum Google allows per page. Your pagination settings are actually correct, but Google has a hard limit on how many total results they will show for a single search (usually around 60 total). If you’ve hit that limit, the nextPageToken will simply disappear, and the search will stop.
To get more results beyond that limit, you cannot simply change a setting; you have to “trick” the API by being more specific. Instead of searching for “Restaurant München,” try searching for specific neighborhoods (e.g., “Restaurant Maxvorstadt München” or “Restaurant Schwabing München”). By breaking your one big search into several smaller, location-based searches, you can bypass the 60-result limit and gather hundreds of businesses.
Here is the improved workflow
Reminder: Replace YOUR_NEW_API_KEY with your new key.
1)Remove the fx expression.
2)Click the field and select websiteUri from the dropdown menu (the variable selector) instead of typing it in the expression box.
3)Keep the operator as Is Empty.
Hello and welcome! Two problems here. First, JSON is case-sensitive, pagetoken and pageToken are completely different things. Google only recognizes pageToken (capital T), so it ignores the token being sent and just returns the first page every time.
Second, Google’s Places API needs about 2 seconds before a page token becomes valid, 500ms is too fast, and the token gets rejected silently.