ScreenshotNeo

BlogHow-to

How to Capture a Website Screenshot with Urlbox on a Schedule

Schedule recurring website screenshots with Urlbox and Zapier, choose a cadence and storage destination, and plan for failures, retention, and cost.

By the ScreenshotNeo team4 October 20268 min read

Direct answer: Use Zapier’s Schedule trigger to start a recurring workflow, Urlbox to render the target webpage, and a connected storage service such as Google Drive to save each result. Choose a cadence that fits your monitoring goal, test the capture and saved file, then enable the schedule. Scheduling decides when a run starts; Urlbox handles how the page is rendered.

This guide follows Urlbox’s published Zapier workflow, which demonstrates hourly screenshots of BBC.com saved to Google Drive. The same general setup supports daily, weekly, monthly, yearly, or specific-time schedules. See the Urlbox scheduling guide for its walkthrough.

1. Define the capture before building the automation

Write down the exact URL, cadence, time zone, storage destination, and retention requirement. Those choices affect both the workflow and its cost.

  • URL: Use the public page you want to monitor. Urlbox’s API documentation says a URL must be publicly accessible.
  • Cadence: Hourly is useful for frequently changing pages; daily or weekly is often enough for slower changes. Consider whether the scheduler’s time zone and daylight-saving behavior matter.
  • Destination: Google Drive is used in Urlbox’s example. Dropbox and Amazon S3 are also named as possible destinations through connected storage.
  • Retention: Decide whether a temporary render link is sufficient or whether each image must be copied to durable storage.
  • Scope: Estimate URLs per run and runs per month. For one URL, hourly scheduling is about 720 captures in a 30-day month; multiply by URL count for a rough workload estimate.

2. Schedule screenshots with Zapier

  1. Create or confirm accounts for Urlbox and Zapier.
  2. Create a Zap and select Zapier’s Schedule trigger.
  3. Choose the recurrence: hourly, daily, weekly, monthly, yearly, or a specific time, depending on the available trigger options and your plan.
  4. Configure the Urlbox action to request a screenshot of your target URL. Select the capture settings appropriate to the page and output.
  5. Add a storage action, such as Google Drive, and select the destination folder and filename behavior. Use a timestamp in filenames if you need a chronological archive and want to avoid overwriting prior captures.
  6. Run a manual test. Confirm that the screenshot shows the expected page state and that the file appears in the correct folder.
  7. Turn on the Zap and check the first scheduled run and its task history.

The precise integration fields can change. Follow the current Urlbox and Zapier integration screens rather than relying on field names from an older walkthrough. Keep the scheduled trigger, render action, and storage action distinct when diagnosing problems: a trigger can run even if rendering fails, and rendering can succeed even if the storage step fails.

3. Choose screenshot options for the page

Urlbox’s screenshot documentation describes viewport sizing, full-page captures, and full-page stitch and native modes. Configure only what the monitoring question requires:

  • Viewport: Fix the viewport dimensions to make screenshots comparable over time. A different viewport can change responsive layouts and content.
  • Full page: Use this when changes below the fold matter. For a dashboard or a fixed header region, a viewport capture may be more useful.
  • Full-page mode: The docs describe stitch mode for accuracy and native mode for speed. Choose based on whether complete page coverage or faster rendering matters more for the page.
  • Wait behavior: Dynamic pages may need additional time before capture. Avoid choosing a very short delay for pages that load their main content asynchronously.
  • Output and naming: Pick the image format and filename strategy supported by the integration. Include a date or timestamp when you need to preserve a series.

See Urlbox’s screenshot documentation for the supported capture behavior and API reference for request options. Do not assume every option is enabled on every plan; check current plan access.

4. Build an API-driven schedule when Zapier is not the right fit

For many URLs, application-specific scheduling, or custom retry and archival logic, run the Urlbox request from a scheduler you control. The scheduler might be a system cron job, a hosted scheduled task, or your application’s job queue. The general sequence is:

  1. At each scheduled time, submit the render request using Urlbox’s documented API and authentication format.
  2. For asynchronous rendering, provide a webhook_url and accept the completion notification. Verify the webhook signature with the project’s webhook secret before trusting the notification.
  3. On successful completion, copy the render to your own storage bucket or download it to durable storage.
  4. Record the scheduled time, requested URL, result status, and stored object location so a missed or failed run can be identified.
  5. Retry transient failures with a bounded retry policy and avoid launching overlapping jobs for the same URL unless parallel captures are intentional.

Urlbox documents asynchronous renders and webhook completion in its webhook documentation. Its API reference says render URLs expire after 30 days. The storage guide also says renders are hosted for 30 days by default. Download each result or configure bucket storage if you need a longer-lived archive.

5. Estimate cadence, volume, and cost

Calculate approximate monthly volume as URLs × runs per day × days per month. For example, one URL captured hourly for a 30-day month is approximately 720 scheduled requests. This is a workload estimate, not a promise that every request will be a successful render. Add headroom for manual tests, retries, and any extra URLs.

Urlbox’s current pricing page lists plan-specific monthly render allowances and request-per-minute limits, and says prices exclude VAT at the prevailing rate. Limits and prices can change; check the Urlbox pricing page before choosing a plan. The scheduling tutorial, updated March 21, 2025, mentions a $19/month starting price and 2,000 successful screenshots; treat those as dated figures, not a current quote.

Zapier may have separate plan limits for task volume and schedule frequency. Include those limits in the total workflow cost. For high-frequency monitoring, compare the number of runs, render allowance, integration task usage, and storage charges before enabling the schedule.

6. Reliability and archive design

  • Keep a durable copy: A render link that expires after 30 days is unsuitable as the sole long-term archive. Copy files to your storage destination when each run completes.
  • Make runs identifiable: Include a timestamp, URL key, or other stable identifier in each filename or storage record. Account for time zones consistently.
  • Handle failures separately: Record trigger, render, and storage outcomes independently. Configure notifications for failed runs if missing captures would matter.
  • Use bounded retries: Retry temporary network or service failures, but cap retries to avoid a backlog or unexpected request volume.
  • Prevent accidental overwrite: Confirm whether the destination action creates a new file or replaces an existing one.
  • Respect access limits: A public URL is the supported case described by the cited API documentation. Do not assume a restricted or authenticated page can be captured.
  • Compare like with like: Keep viewport, full-page mode, and relevant render settings stable so layout changes are not caused by your own configuration changes.

7. Troubleshooting

Symptom Likely cause What to check or change
No run at the expected time The Zap is off, the schedule is misconfigured, or the selected time zone differs from your expectation. Check that the Zap is enabled, review the Schedule trigger settings and task history, and verify the time zone and recurrence.
The trigger ran but there is no screenshot The Urlbox action failed or received an invalid/inaccessible URL. Inspect the action’s run details, confirm the URL is correct and publicly accessible, and check the Urlbox response or integration error.
The screenshot is blank or missing content The page may load content after the capture, or the requested view does not include it. Review the page’s loading behavior, wait configuration, viewport, and full-page setting. Retest with the same settings before resuming the schedule.
The screenshot is cut off A viewport capture was used where a full-page capture was needed, or the chosen full-page behavior does not suit the page. Enable full-page capture and compare the documented stitch and native modes for the page.
The saved file is missing although rendering completed The storage action failed, the connected account expired, or the destination path is wrong. Check the storage step’s run details, reconnect the account if needed, and verify folder permissions and destination selection.
Older links no longer work Urlbox render links are temporary and expire after 30 days. Download results or configure bucket storage for the archive rather than retaining only the render URL.
Runs are delayed or limited The workflow may have reached a Zapier task/schedule limit or Urlbox plan allowance or rate limit. Review current plan limits, actual run volume, and request-per-minute constraints; reduce cadence or adjust the plan if appropriate.

8. Or skip the browser setup

ScreenshotNeo is a website screenshot API and MCP server. A single GET request can return a screenshot or PDF, and its API parameters support common capture controls. See the ScreenshotNeo API documentation.

curl -G "https://api.screenshotneo.com/v1/shot" \
  -d access_key=YOUR_API_KEY \
  --data-urlencode url=https://stripe.com \
  -o shot.webp
import requests

r = requests.get(
    "https://api.screenshotneo.com/v1/shot",
    params={"access_key": "YOUR_API_KEY", "url": "https://stripe.com"},
    timeout=90,
)
r.raise_for_status()
with open("shot.webp", "wb") as image:
    image.write(r.content)
const q = new URLSearchParams({
  access_key: 'YOUR_API_KEY',
  url: 'https://stripe.com'
});
const res = await fetch(`https://api.screenshotneo.com/v1/shot?${q}`);
if (!res.ok) throw new Error(`Screenshot request failed: ${res.status}`);
const image = await res.arrayBuffer();
await import('node:fs/promises').then(fs => fs.writeFile('shot.webp', Buffer.from(image)));

Schedule this request with your own scheduler and save each response to your archive. Cookie banners, popups, and chat widgets are removed before the shot; bot checks, blank pages, and failed loads are never billed; an MCP server lets AI agents take screenshots; and 1,000 screenshots a month are free with no card, with paid plans starting at $5 for 3,000. Sign up for free and get 1,000 screenshots a month with no card.

FAQ

Can I capture more than one page on a schedule?

Yes. Add one render per URL or use an API-driven job that iterates through your URL list. Recalculate monthly volume from URLs multiplied by scheduled runs.

Can I schedule a capture for a specific time?

Urlbox’s published guide describes specific-time scheduling as well as recurring intervals. Confirm the trigger choices and time-zone behavior in your current Zapier account.

Can I use the result as a permanent archive?

Not by keeping only the default render link. Urlbox documents a 30-day expiration; download the image or configure storage for longer retention.

Does the no-code example prove every target site will work?

No. The guide demonstrates a particular workflow and example page. Validate your own target, capture settings, access requirements, and storage behavior before relying on the schedule.