Skip to content

Reference

Pacing a backlink scanner from no-code tools

We publish no requests-per-second ceiling, so this page gives you pacing defaults of our own and the limits that sit on the tool side. Treat them as starting points.

Action by action: batch, wait, retry

Suggested defaults for scheduled jobs. These are our advice, not enforced quotas.
ActionCreditsMax per callSuggested wait between callsRetry on failure
overview, domain, stats01 domain0.5 sTwice, 2 s apart
bulk_dr12,000 domains1 sTwice; never on 402
compare120 domains1 sTwice
refdomains, backlinks, anchors, toppages21,000 rows, per up to 5000, deep paging capped at 50,0001 to 2 sTwice; never on 401 or 402
intersect22 to 10 domains2 sOnce
search, keyword31,000 rows2 sOnce

What each tool does to your loop

Platform behaviour in general terms. Check each vendor's current documentation for exact figures.
ToolWhat counts as the unitWhere to put the pauseWatch out for
n8nAn execution, plus node runs in memoryWait node inside Loop Over ItemsBig arrays held in memory on a small server
ZapierA task per successful action stepDelay After Queue or Delay ForTask counts rise with every step you add
MakeAn operation per module per bundleSleep module in the iterator pathOperations multiply through Iterators
Google Apps ScriptAn execution, with run-time and URL Fetch capsUtilities.sleep(ms)Run-time ceiling on long lists

A rule of thumb for the first week

Start slow. Speed up later.

Set a one-second pause, then run a hundred items and count how many answers came back with anything other than 200. If none did, halve the pause once and repeat. Stop there. Shaving another half second from a weekly job gains you nothing, and a flood of failed calls is hard to untangle afterwards. Patience is cheap.

Every authenticated response carries _credits, so log the remaining balance at the end of each run. A balance that drops faster than you expected is the earliest warning that a loop is running twice or that a Filter is not filtering.

Three habits that matter more than the wait

Batch first. Pause second.

Use bulk_dr whenever you only need ratings, because one call replaces up to 2,000 individual ones, as the outreach list recipe shows. Page through refdomains with per=1000 rather than many small pages, since a call is billed once whatever the row count.

Cache what you already know. The index refreshes roughly monthly, so a Sheets lookup tab keyed by domain with a date column stops you paying twice for the same answer inside a month.

Finally, write down your batch size and pause in the workflow's description field. Six months from now, the person who edits it (probably you) will not remember why the Wait node says 1.5 seconds. The n8n recipe uses that habit.

Backoff in one n8n Code node

If you prefer explicit control over the built-in retry, this node computes a wait for the next attempt.

javascript
// Input: items with an 'attempt' field (starts at 0)
return items.map(it => {
  const a = (it.json.attempt || 0) + 1;
  it.json.attempt = a;
  it.json.waitSeconds = Math.min(30, 2 ** a);   // 2, 4, 8, 16, 30
  it.json.giveUp = a > 3 || [401, 402].includes(it.json.status);
  return it;
});

What to do on the day it still goes wrong

Stop the run. Read one failure.

Take one failed item and reproduce it with curl outside your tool. Then compare the status code with the table in the error runbook. A 401 or 402 is about your key or balance. Anything else deserves a second look at the domain you sent, since a stray space, a protocol prefix or an uppercase letter is the usual culprit.

Take one failed item and reproduce it with curl outside your tool. Then compare the status code with the table in the error runbook. A 401 or 402 is about your key or balance. Anything else deserves a second look at the domain you sent, since a stray space, a protocol prefix or an uppercase letter is the usual culprit.