Domain rating tool setup for a sheet and a cron job
A workflow nobody has to remember beats one everybody means to do. Six steps get you from a blank sheet to a monthly job that logs its own cost.
ASEOTools editorial team ·
Six steps, about an hour
01
Sign in and copy the key
Use the Google sign-in at /auth/google.php. The dashboard at /account.php holds your key, which starts with sk_ and arrives with $100 in credit.
02
Make one free test call
Run the overview action with no key against your own domain. If you get JSON with ok set to true, the network path works.
03
Build the domain list
One column in a sheet, one domain per row, no https and no paths. Up to 2,000 rows go in a single bulk_dr request.
04
Call bulk_dr from the sheet or a script
Send the list as a comma-joined GET value or as a POST body. Store the reply in a second tab with a date column.
05
Schedule it monthly
Run the job a few days after the first of the month, once the monthly index refresh has landed. A cron line is enough. Check the first month's output by hand against three domains you know well.
06
Log credits and alert on low balance
Every authenticated reply carries _credits with the cost and the remaining balance. Write both to a log row and email yourself below a threshold you choose.
The pieces, ready to paste
Swap in your own key and file names.
bash
# crontab: 06:00 on the 4th of each month
0 6 4 * * /usr/bin/curl -s -X POST \
-H "Authorization: Bearer sk_live_..." \
-d "domains=$(paste -sd, domains.txt)" \
"https://aseotools.com/api.php?action=bulk_dr" >> dr_log.jsonl
Keep the key out of the sheet
Put the key in Apps Script properties, an environment variable or your automation tool's credential store. Anyone with edit access to a sheet can read a key typed into a cell, and a leaked key spends your credit.
Where this setup fails
Silence is the usual failure. A cron job that errors out looks the same as one that worked.
Check the HTTP code. A 401 means the key is missing or wrong, and a 402 means the credit ran out, so alert on either one and fix it before the next month's report is due.
Remember also that pagination is capped at 50,000 rows deep, and that bulk_dr takes up to 2,000 domains per call. Longer lists need chunking, which is one extra loop and costs one credit per chunk.
Test by hand first. Run the cron line in a terminal, read the log file, and check that the balance dropped by exactly the cost you expected. Then see how the numbers compare to a suite plan and decide how often to run it.
Version your domain list. Keep the file in a repository or a shared drive with history, so that when a number changes in March you can see whether the list changed too. Add a note column for domains you added on purpose, such as a new competitor or a client who signed in the month. Treat the list as data with an owner, because the cheapest bug is the one you spot in a diff.
Cost of the whole routine, with example sizes
Hypothetical list sizes, published action prices.
List size
Calls per month
Credits
Dollars
200 domains
1
1
$0.0001
5,000 domains
3
3
$0.0003
5,000 domains plus 20 full backlink pulls
23
43
$0.0043
Setup questions
Does a Google Sheet work as the client?
Yes. The API is plain REST with open CORS and JSON replies, so Apps Script or an IMPORTDATA-style call can reach it. Keep the key in script properties rather than in a cell that collaborators can read.
Can I use this with n8n or Make?
Yes, through a normal HTTP request node. Pass the key as an Authorization Bearer header, parse the JSON reply, and write the _credits field to your log so you can see spend per run.