Check your website backlinks in n8n or in plain Python?
A 25-node canvas for a three-step job is a common regret. A script nobody else can edit is the other one. Use the tree.
Linkzoid editorial team ·
Decision tree, top to bottom
Will someone non-technical edit the flow or read its runs? Pick n8n or Make.
Does the job fit in under 60 lines and live in a repo anyway? Pick Python.
Do you need a Slack post and a sheet row but no diffing? Pick n8n with one HTTP Request node.
Do you diff dozens of domains, keep history, or unit-test parsing? Pick Python with SQLite.
Is the team already paying for n8n cloud executions? Count them: a 40-domain loop can eat a plan.
None of the above fits? Start with curl in a shell script and see what hurts.
The n8n setup in four lines
One HTTP Request node, method GET, URL https://linkzoid.pro/api.php. Add query parameters action, q, key. Anyone who wants to check your website backlinks this way can copy it in five minutes.
Store the key in credentials, not in the node. Add an IF node on ok, and send the false branch to an error workflow that pings you.
Split the rows array with an Item Lists or Split Out node, then write to Google Sheets or Postgres. Watch execution counts, because every item can bill as a step on some plans.
That is the whole job. It breaks when pagination arrives: loops in n8n work but read badly beyond about ten nodes.
Troubleshooting table
Symptom
n8n cause
Python cause
Only 10 rows arrive
No per parameter set on the node
Same, check the query string
Run succeeds, sheet empty
Rows not split into items
Wrote the dict instead of rows
402 after a week
Workflow loops on a trigger
Cron fires twice
Key leaks into logs
Pasted into URL field
Printed the full URL
Month-over-month gaps
Execution retention deleted old runs
Never stored history
Cost per run
On our side the cost is the same either way: 2 credits for a refdomains page. The builder is where costs differ.
A self-hosted n8n is free to run. Cloud plans count executions. A plain script on cron costs nothing.
Whichever you choose, keep a dated copy of each run outside the tool. Weekly snapshots in Actions are one tidy place for it, and the suite comparison explains why your own history is worth having.
What usually breaks first
In n8n it is pagination and item counts. In Python it is the thing nobody tested: an empty rows, a timeout, a field that is named differently than you assumed.
Neither tool is wrong. Pick by who maintains the thing in six months. If that is you, alone, code is easier to grep. If it is a marketing team that already lives in the canvas, a small flow they can see beats a repo they fear.
Mixed setups work, too. Let Python write the CSV on a schedule and let n8n read the file and post to Slack. Each tool does the part it handles best, and neither flow grows past ten steps.
Short answers for builders
Does Make or Zapier work with this API?
Yes. Anything that can send an HTTPS GET with query parameters works, including Make, Zapier, Pipedream and Apps Script. Use the generic HTTP module, put the key in a stored connection, and read the JSON rows array in the next step.
Can an AI agent call it instead?
Technically yes, since it is a plain HTTP API. For a fixed monthly job a script is cheaper and more predictable, and an agent adds a model bill and a chance of a wrong parameter. Use an agent only for ad hoc questions.
What is the cheapest way to start?
A shell script with curl and the free overview action, run from cron. No key, no cost, and you learn the response shape. Move to Python when the first awkward JSON parsing shows up.