Daily GreyNoise IP reputation sweep in Google Sheets
Every morning, check your tracked IP addresses against GreyNoise and write the latest verdict straight back into your spreadsheet automatically.
Build this as a code workflow. Every day at 6am, run a scheduled sweep that reads a list of IP addresses from a Google Sheets tracking sheet, checks them all against GreyNoise in one bulk lookup, and writes the results back into the same rows.
Start with Google Sheets Get Values to read the IP column from a fixed A1 range on the tracking tab (for example firewall blocklist candidates or recently seen source IPs). Treat the first row as a header and collect the IP addresses from the rows below, remembering which spreadsheet row each IP came from so the results land next to the right IP.
Send every IP address in a single GreyNoise Multi IP Lookup request. Multi IP Lookup accepts up to 10,000 IPs per call and returns the same intelligence shape as the single IP Lookup for each one: internet_scanner_intelligence, business_service_intelligence, and a combined classification.
For each IP, build a row of status columns from the response. Include the classification (benign, malicious, suspicious, or unknown); whether the IP is internet background noise, as yes or no from internet_scanner_intelligence.found; the RIOT business-service name if the IP belongs to one, taken from business_service_intelligence (otherwise record 'none'); the last-seen date from the scanner intelligence; and the timestamp of this check, which is the current run time. When GreyNoise has no record of an IP, meaning it is absent from both the scanner and business-service datasets, write 'no data' in the classification column instead of leaving the row blank.
Write everything back with Google Sheets Update Values, overwriting the status columns for every IP on every run so the sheet always reflects GreyNoise's latest verdict. Update the same fixed set of columns each time (classification, internet background noise, business service, last seen, checked at) over the same range. Do not append new rows or shift the existing IP list.
Note on limits: GreyNoise's free Community tier is limited to roughly 50 lookups per week, so sheets with more than a few dozen IPs need a paid GreyNoise plan to cover the daily sweep.
Additional information
What does this prompt do?
- Reads a list of IP addresses you keep in a Google Sheet, such as firewall blocklist candidates or recently seen source IPs.
- Checks every IP against GreyNoise in one bulk lookup to see how it is classified and whether it is harmless internet background noise.
- Writes the results back into the same rows, filling columns for classification, background-noise status, known business-service name, last-seen date, and the time of the check.
- Runs on its own every morning and overwrites the status columns so the sheet always shows GreyNoise's latest verdict, marking any unknown IPs as 'no data' instead of leaving gaps.
What do I need to use this?
- A Google account with the tracking spreadsheet that holds your IP addresses.
- A GreyNoise account and API key (GreyNoise issues keys only to accounts registered with a business email address).
- A column of IP addresses in the sheet, with room alongside it for the status columns the workflow fills in.
- A paid GreyNoise plan if your list is large, since the free Community tier allows only about 50 lookups per week.
How can I customize it?
- Change the timing or frequency, for example running hourly during an active incident instead of once a day at 6am.
- Point it at a different spreadsheet, tab, or cell range, or grow the list of IPs it watches.
- Adjust which result columns get written or the order they appear in.
Frequently asked questions
What is internet background noise?
Will this work on the free GreyNoise plan?
What happens to IPs GreyNoise has never seen?
Does it overwrite my spreadsheet every run?
What is a RIOT business service?
Related templates
Keep your IP watchlist current without the manual checks.
Let GreyNoise grade every IP in your sheet each morning so your team always sees the latest verdict.