**AI Google Sheets Monitoring**
Pricing
from $30.00 / 1,000 results
**AI Google Sheets Monitoring**
Scrape recipes from Allrecipes with ingredients and directions. This easy-to-use actor gets you an Allrecipes dataset in different formats according to your needs.
Pricing
from $30.00 / 1,000 results
Rating
0.0
(0)
Developer
Tin
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Google Sheets URL Monitor
What does Google Sheets URL Monitor do?
Google Sheets URL Monitor turns a plain Google Sheet into a no-code web monitoring dashboard. It reads the URLs listed in your sheet's URL column, visits each page in a real browser, extracts the values you care about (prices, titles, star counts — anything you can point a CSS selector at), and writes the fresh values straight back into the sheet, stamping an UPDATED column with the time of the last check.
Because it runs on the Apify platform, you get scheduling, API access, proxy rotation, monitoring, and integrations (Slack, email, webhooks) out of the box.
Why use Google Sheets URL Monitor?
- Track prices of products on e-commerce sites (eBay, Amazon, any shop) directly in a spreadsheet.
- Watch competitors — headlines, product names, availability.
- Monitor GitHub repos — stars, watchers, releases.
- No code, no database — the spreadsheet is both the configuration and the output. Add a row, get data.
- Schedule it — run hourly or daily with Apify Schedules and always have fresh numbers in your sheet.
How does the spreadsheet work?
The sheet itself defines what gets scraped:
| Column header | Meaning |
|---|---|
URL | The page to visit (one per row). |
Any CSS selector, e.g. .x-price-primary > span | The text of the first matching element on that row's page is written into this cell. |
A plain field name, e.g. Price | Extracted from the page text by AI (requires an OpenAI API key). No selector needed. |
UPDATED | Receives the date and time of the last successful check (UTC). |
A header counts as a CSS selector when it contains selector syntax (., #, [], >, +, ~, :) or consists only of HTML tag names (h1, td strong). Anything else — Price, Product Name, Stars — is treated as an AI-extracted field.
The AI prompt can even create new columns: if your aiPrompt asks for extra fields (e.g. "add a DiscountPercentage column"), the Actor appends them as new columns at the end of the sheet and fills them — on later runs they behave like regular AI columns.
Selectors that don't match a page (e.g. an eBay price selector on a GitHub row) simply leave the cell empty — so one sheet can mix many different sites.
How to use Google Sheets URL Monitor
- Create a Google Sheet with a
URLcolumn, one or more CSS selector columns, and optionally anUPDATEDcolumn. - Create a Google Cloud service account, enable the Google Sheets API, and download its JSON key.
- Share the spreadsheet with the service account's
client_emailas an Editor. - Paste the spreadsheet URL and the JSON key into the Actor input and click Start.
- Watch the values and timestamps appear in your sheet. Add an Apify Schedule to keep them fresh automatically.
Tip: No service account yet? Just share the sheet as "Anyone with the link can view" and run the Actor without a key — it runs in read-only mode, storing extracted values in the dataset so you can verify your selectors before enabling write-back.
Input
| Field | Description |
|---|---|
spreadsheetUrl | Full URL of the Google Sheet to monitor (required). Row 1 must contain a URL column; every other header is a CSS selector or an AI-extracted field name. |
googleServiceAccountKey | Contents of the Google service account JSON key file (secret). The sheet must be shared with the service account's email as an Editor. Falls back to the GOOGLE_SERVICE_ACCOUNT_KEY environment variable; without either, the Actor runs in read-only mode (results go to the dataset only). |
aiPrompt | Optional instructions guiding the AI columns: value formats, language, disambiguation rules (e.g. "Price is the current selling price only"), and even new columns to add (e.g. "add a DiscountPercentage column when the page shows a discount"). |
Further advanced options (OpenAI model, concurrency, retries, delays, proxy) are available on the Actor's Input tab.
Output
Every processed row is also stored in the dataset. You can download the dataset in various formats such as JSON, HTML, CSV, or Excel.
{"url": "https://www.ebay.com/itm/335522548886","rowNumber": 3,"data": {".x-item-title__mainTitle": "Size 9 - Nike Air Jordan Pro Strong Playoff",".x-price-primary > span": "US $109.19",".article-heading": null},"error": null,"updatedAt": "2026-07-18T09:12:45.000Z"}
| Field | Description |
|---|---|
url | The monitored page. |
rowNumber | 1-based row number in the sheet. |
data | Extracted text per CSS selector (null when the selector didn't match). |
error | Error message if the page failed to load, otherwise null. |
updatedAt | ISO timestamp of the check. |
How much does it cost to monitor URLs from a Google Sheet?
Each row opens one page in a headless Chrome browser. A run over a few dozen rows typically consumes only a fraction of a compute unit, which fits comfortably within Apify's free tier. Costs scale linearly with the number of rows and how often you schedule the Actor.
Tips and advanced options
- Bot-protected sites (eBay, Amazon): enable residential proxies in the Actor input to avoid blocks.
- Slow, JavaScript-heavy pages: increase the selector timeout in the Actor input.
- Broken selector? A previously working cell coming back empty usually means the site changed its markup — update the column header.
- Failed pages are logged and left untouched in the sheet, so a temporary outage never wipes your data.
FAQ, disclaimers, and support
Scraping publicly available data is generally legal, but you are responsible for complying with the target websites' Terms of Service and applicable laws. Do not use this Actor to collect personal data.
Found a bug or need a feature? Open an issue on the Actor's Issues tab. For custom monitoring solutions, feel free to reach out.