Pagination n8n help

Hello, I can’t take it anymore – is there a kind soul out there who could explain pagination in n8n for Baserow? Thank you so much.

Maybe @frederikdc or @joffcom can help with this question? :slightly_smiling_face:

@David8012 : what exactly would you like to know about the pagination?

There are 2 options:

  1. Using the Baserow Get Many node and switching the Return all button on. This avoids the pagination issue and returns all records over all pages

  1. Use an HTTP node an make a call directly to the Baserow API. This is a bit more complex. The call returns an object that will always have 4 properties
    count: the total amount of records
    next: the url to the next set of results. This is null is there is no next set of results
    previous: the url to the previous set of results. This is always null on the first page
    results: an array with the actual results.

If you want to implement this in n8n, you need to create a loop.

  • Step 1: Make an API call without page
  • Step 2: store the results in a global variable
  • Step 3: check if the next property has a value
  • Step 3.1: if yes, make a new API call with the url of the next property (and go back to Step 1)
  • Step 3.2: if no: we are ready, the results are in the global variable

Hello, thank you very much for your response.

At the moment, I’ve successfully built a manual loop using a node that retrieves the page number after each GET request, which then passes through an IF node to return to the HTTP request. However, I would also like to use the built-in pagination option of the HTTP Request node in n8n, but I haven’t had any success with it so far.

Regarding your version using the Baserow “Get Many” node, I’m having trouble connecting with credentials. Can you confirm whether I should log in using my email address and the password I set when I first signed up on the Baserow URL?

Now, the main issue I’m facing is that my workflow doesn’t wait for the completion of all loop iterations before continuing. As a result, the process ends with missing data — for example, 1 item is often missing at the end.

I’ve tried different approaches, but nothing seems to work. The data arrives in batches into my Merge node — even if it’s almost instantaneous — which prevents me from having complete results. What I observe on the loop branch is a split treatment, like 10 / 25 / 43 items over a fraction of a second, instead of getting all 43 at once, even though my condition says to continue only when next = null.

I tried approaches that I thought were foolproof — using a condition to proceed only when next is null, using a second merge, even a Wait node — but the structure still behaves incorrectly.

Thank you for your interest in my question and for reaching out to others to try and help answer it :pray:.