Apify Cron Jobs: Schedule Scrapers to Run Automatically
Manual scraping is for one-time research. Automated scraping is for ongoing intelligence. If you need to monitor competitor prices daily, track brand mentions hourly, or generate fresh leads weekly, you need scheduled scraping — and Apify's cron system makes this possible without any external tools.
This guide covers how to set up cron jobs in Apify, configure schedules via the UI and API, handle failures gracefully, optimize costs, and build fully automated scraping pipelines that run on autopilot.
Quick answer: how to schedule an Apify scraper?
Go to Apify Console > Schedules > Create new schedule. Select the Actor, configure the input, set the cron expression (e.g., "0 8 * * *" for daily at 8 AM), and save. The scraper runs automatically on schedule. Results are stored in datasets and can trigger webhooks for downstream automation.
Apify
4.7Verified partnerWeb scraping and automation platform — Free / $49/mo Starter
Cron expressions explained
Apify uses standard cron expressions. Here is the format and common patterns:
- Format: minute hour day-of-month month day-of-week (5 fields)
- Every day at 8 AM: 0 8 * * *
- Every 6 hours: 0 */6 * * *
- Every hour: 0 * * * *
- Every Monday at 9 AM: 0 9 * * 1
- Every weekday at 8 AM: 0 8 * * 1-5
- First of every month at midnight: 0 0 1 * *
- Every 15 minutes: */15 * * * *
- Twice daily (8 AM and 8 PM): 0 8,20 * * *
Use crontab.guru for generating and testing cron expressions. It provides a visual interface and explains what each expression means in plain English. Test your cron expression before adding it to Apify.
Setting up a schedule via Apify Console
Here is the step-by-step process:
- Go to Apify Console > Schedules > Create new — Go to Apify Console > Schedules > Create new
- Name your schedule (e.g., "Daily Competitor Price Monitor") — Name your schedule (e.g., "Daily Competitor Price Monitor")
- Select the Actor to run (e.g., Google Shopping Scraper) — Select the Actor to run (e.g., Google Shopping Scraper)
- Configure the Actor input (search terms, URLs, max results) — Configure the Actor input (search terms, URLs, max results)
- Set the cron expression (e.g., 0 8 * * * for daily at 8 AM) — Set the cron expression (e.g., 0 8 * * * for daily at 8 AM)
- Set timezone (choose your local timezone for consistency) — Set timezone (choose your local timezone for consistency)
- Enable webhooks if you want notifications (see our webhooks guide) — Enable webhooks if you want notifications (see our webhooks guide)
- Click "Create schedule" — the scraper will run automatically on schedule — Click "Create schedule" — the scraper will run automatically on schedule
Setting up a schedule via API
For programmatic control, use the Apify API:
- POST https://api.apify.com/v2/schedules?token={token}
- Body: {"name": "Daily Price Monitor", "actId": "{actorId}", "cronExpression": "0 8 * * *", "timezone": "America/New_York", "runInput": {"searchQueries": ["marketing tools"], "maxResults": 50}}
- Response includes the schedule ID for management
- Update: PUT https://api.apify.com/v2/schedules/{scheduleId}?token={token}
- Delete: DELETE https://api.apify.com/v2/schedules/{scheduleId}?token={token}
- List all schedules: GET https://api.apify.com/v2/schedules?token={token}
Best scheduling patterns for marketing use cases
Different use cases require different schedules:
- Competitor price monitoring: Daily at 8 AM. Catches overnight price changes. Use Google Shopping Scraper.
- Brand mention tracking: Every 6 hours. Catches mentions throughout the day. Use Twitter/X Scraper + Reddit Scraper.
- Lead generation: Weekly (Monday 8 AM). Fresh leads for the week. Use Google Maps Scraper.
- Review monitoring: Daily at 6 AM. Respond to new reviews early. Use Google Maps Scraper (reviews).
- Trend monitoring: Every 2 hours. Catch trending topics early. Use TikTok Scraper + Twitter Trends.
- SEO rank tracking: Daily at midnight. Track rankings consistently. Use Google Search Scraper.
- Stock availability: Every 30 minutes. Time-sensitive for high-demand products. Use Amazon Product Scraper.
Handling schedule failures
Scheduled runs can fail. Here is how to handle failures gracefully:
- Webhook on failure: Set up a webhook for ACTOR.RUN.FAILED to get Slack/email alerts when a scheduled run fails.
- Auto-retry: Apify automatically retries failed runs once. For critical scrapers, set up a manual retry via webhook.
- Max retries: Limit retries to 2-3 to avoid wasting compute units on persistently failing scrapers.
- Failure log: Check Apify Console > Runs for error logs. Common failures: target site down, anti-bot detection, input errors.
- Fallback Actor: If a site-specific Actor fails, have a generic scraper (Cheerio/Puppeteer) as a backup with simpler extraction.
- Monitoring dashboard: Use Apify's run history to track success rate over time. Below 90% success rate needs attention.
If a scheduled scraper fails 3+ times in a row, pause the schedule and investigate. Common causes: the target website changed its structure, anti-bot detection was upgraded, or your input parameters are outdated. Do not let failing schedules waste your compute units.
Cost optimization for scheduled scraping
Scheduled runs consume compute units. Here is how to optimize costs:
- Right-size max results: Do not scrape 1,000 results when you need 100. Set max results to your actual need.
- Off-peak scheduling: Schedule runs during off-peak hours (early morning) when target sites are less likely to rate-limit.
- Incremental scraping: Only scrape new data since the last run. Use date filters to avoid re-scraping old content.
- Consolidate Actors: If you scrape 5 sites, use 5 Actors in one schedule instead of 5 separate schedules. This reduces overhead.
- Monitor usage: Check Apify Console > Billing monthly. Identify expensive schedules and optimize or downgrade them.
- Free tier: Apify free tier includes $5/month of usage. That covers 1-2 daily small runs. Upgrade to $49/month for regular scraping.
Apify
4.7Verified partnerWeb scraping and automation platform — Free / $49/mo Starter
Combining schedules with webhooks for full automation
Schedules + webhooks = fully automated data pipeline:
- Schedule triggers scraper at 8 AM daily
- Scraper runs and collects competitor pricing data
- Webhook fires on SUCCEEDED with dataset ID
- Webhook handler compares new prices with previous run
- If price dropped 5%+, send Slack alert
- Append all data to Google Sheet for historical tracking
- Weekly summary email with all changes
- Result: Zero manual intervention. Full automation from scrape to alert.
Apify cron jobs turn manual scraping into automated intelligence. Set up daily schedules for price monitoring, hourly for brand mentions, and weekly for lead generation. Use standard cron expressions (crontab.guru helps), handle failures with webhooks, and optimize costs by right-sizing max results and using incremental scraping.
Combine schedules with webhooks for full automation: schedule triggers scraper, webhook processes results, alerts fire on important changes. Apify at $49/month includes enough compute units for 5-10 daily scheduled runs. Start with one schedule, verify it works, then scale up.
FAQ
How do I schedule an Apify scraper?
Go to Apify Console > Schedules > Create new. Select the Actor, configure input, set the cron expression (e.g., "0 8 * * *" for daily at 8 AM), set timezone, and save. The scraper runs automatically on schedule.
What cron expression should I use?
Daily at 8 AM: "0 8 * * *". Every 6 hours: "0 */6 * * *". Every hour: "0 * * * *". Weekly Monday 9 AM: "0 9 * * 1". Use crontab.guru to generate and test cron expressions before adding them to Apify.
How do I handle scheduled scraper failures?
Set up a webhook for ACTOR.RUN.FAILED to get Slack/email alerts. Apify auto-retries once. For persistent failures (3+ in a row), pause the schedule and investigate: check error logs, verify input parameters, and confirm the target site has not changed.
How much does scheduled scraping cost on Apify?
Costs depend on the Actor pricing model and run frequency. The free tier ($5/month) covers 1-2 small daily runs. The $49/month plan supports 5-10 daily scheduled runs. Optimize by right-sizing max results, using incremental scraping, and consolidating Actors.
Can I automate the entire scraping pipeline?
Yes. Combine schedules with webhooks: schedule triggers the scraper, webhook fires on completion, webhook handler processes results and sends alerts. This creates a fully automated pipeline from scrape to notification with zero manual intervention.
Tools mentioned in this article
Affiliate links — we may earn a commission at no cost to you.
Apify
4.7Verified partnerWeb scraping and automation platform — Free / $49/mo Starter