What it is

“I want a script that checks a few websites four times a day and saves what it finds, without paying for a machine that sits idle.”

A scraper fetches a set of pages, picks out the fields you care about (prices, listings, headlines) and writes them to a file or database. Pages that build themselves with JavaScript need a headless browser, a real browser such as Chromium running without a screen, driven by a tool like Playwright. Plain pages only need a download.

The schedule is usually written as a cron expression, a short line such as "run at 6, 12, 18 and 24 o'clock" named after the Unix tool that runs jobs on a timetable. The key question is who keeps that clock. Agent 37 says it directly: "a crontab inside the container only runs while the container is running" (Agent 37).

So there are two designs: a scheduler run by the platform that starts a fresh machine for each run (cheap), or a machine that stays on all month with its own timer (simple, and billed around the clock).

What it needs from a machine

From its own documentation, each line linked to the page it comes from

Machine size

No vendor publishes one. 1 vCPU / 2 GiB / 10 GiB fits a headless browser and logs; Battleships models one browser visit at 1 vCPU / 2 GiB / 5 GiB. Plain downloads fit in 1 GiB.

battleships.dev, built by the Boat team

Does it stay on?

No, if the schedule lives outside the machine. Four ten-minute runs a day is about 20 machine-hours a month, not 730. A timer inside the machine only works if the machine stays on.

agent37.com

What must survive a restart

The results, kept outside the run: Runtime's jobs, for example, start "a fresh sandbox" every time and tell you to put data on a volume. Also cookies if a site needs a login, and a marker of what was already saved so a rerun does not duplicate rows.

withruntime.com

Browser, Docker, GPU

A browser only for pages built with JavaScript; it is the largest memory cost. Docker is optional. A database is optional on the machine but needed somewhere. No GPU.

playwright.dev

How busy it is

Busy while a run is open: about 40% CPU in Battleships' scraping workload, because a browser does real work. Idle for the rest of the day.

battleships.dev, built by the Boat team

Setting it up on each provider

Easiest first. “Without a terminal” means someone who does not type commands can get it running from the provider's website.

ProviderHowWithout a terminal?What it involves
LizardOne clickYesLizard's sandboxes have no scheduler, but its one-click n8n template gives you n8n's Schedule Trigger and a PostgreSQL database for the results. Build the scrape as a workflow.Lizard: Deploy n8n ↗
Agent 37Official guide or templatePartlyPlatform crons fire "whether the instance is awake or asleep", but they wake an agent and give it a prompt, and are not offered on the base or n8n templates. For a script, the n8n template with auto-sleep off is the other route.Agent 37: crons ↗
BlaxelOfficial guide or templateNoSandbox schedules run a command inside a sandbox on a cron, with a run history; up to 100 per sandbox. Set up from code or the API.Blaxel: schedules ↗
boxdOfficial guide or templatePartlyThe best fit among the sandboxes: a schedule in a script, and the platform "wakes a sleeping machine, on standby or hibernated, shortly before" it is due. A missed slot runs once on wake.boxd: jobs ↗
Cloudflare SandboxOfficial guide or templatePartlyThe schedule is a Workers feature, Cron Triggers: the scheduled Worker can start a sandbox for the scrape. Each run gets up to 15 minutes of CPU on the paid plan.Cloudflare: Cron Triggers ↗
ModalOfficial guide or templateNoA schedule attaches to a Modal function written in code; the function can do the scrape or start a sandbox.Modal: scheduled functions ↗
RuntimeOfficial guide or templatePartlyScheduled jobs run a command in a fresh sandbox on a cron, keep its output and exit code, and show up on a Jobs page in your account. Results go to a volume or your own storage.Runtime: scheduled jobs ↗
Vercel SandboxOfficial guide or templatePartlyVercel Cron Jobs call a function, which can start a sandbox. The free Hobby plan runs crons only once a day, which is too rare here; Pro allows once a minute.Vercel: cron job limits ↗
BoatBy handPartlyNo scheduler. A timer inside a machine left on works, but the machine is billed all month; otherwise something outside has to start a sandbox per run.Boat: always-on services ↗
DaytonaBy handNoNo scheduler found. A scheduler of your own calls Daytona's API to create a sandbox for each run.Daytona docs ↗
E2BBy handNoNo scheduler found. E2B is driven from code, so the schedule lives in your app or another service.E2B docs ↗
InstaBoxBy handNoNo scheduler found. A machine wakes on an API call or a visit to its public address, so an outside scheduler can start each run.InstaBox: concepts ↗
MorphBy handNoNo scheduler found. An outside scheduler can wake a Devbox with a web request, but its own clock stops while it is paused.Morph: wake on request ↗
SandboxerBy handNoNo scheduler found. Idle pause and auto-stop are adjustable, so an outside scheduler plus the API is the route.Sandboxer: long-running tasks ↗
SpritesBy handNoNo scheduler found. The Tasks API keeps a Sprite awake during a run, but something outside has to start it.Sprites: keeping Sprites running ↗

Read from each provider's documentation on 29 October 2026. A provider not listed as one click can still be the right home; it means someone has to follow its instructions.

Where to start

Three starting points for different people, each with its catch

If you want the machine to wake for the schedule

boxd

The platform keeps the schedule and wakes the machine shortly before each run, so it can sleep in between. Four ten-minute runs a day is about $1.50 a month.

Catch: The schedule is written as a script file, and the $30 of starting credit needs a card.

docs.boxd.sh ↗

If you want a fresh machine each run

Runtime

Scheduled jobs start a clean sandbox on a cron and keep each run's output on a Jobs page. CPU is billed only while it works: about $0.50 a month here.

Catch: Nothing on a job's own disk survives the run; save results to a volume or your own database. One US region.

withruntime.com ↗

If you do not want to write code

Lizard

The one-click n8n template gives you a visual schedule, web and browser steps, and a database for the results, inside the $19 monthly plan.

Catch: n8n stays on all month to keep its schedule, so it costs more than the run itself. It runs on Lizard's app platform, not the sandbox the calculator prices.

lizard.build ↗

Beyond these providers. Many scrapes need no sandbox at all. Cloudflare Workers Cron Triggers can fetch and parse pages for free up to 100,000 requests a day, or within the $5 monthly paid plan. Vercel Cron Jobs are included on every plan but run only once a day on Hobby. Modal schedules have no plan fee. n8n's Schedule Trigger is free self-hosted, or from €20 a month on n8n Cloud.

Compare these three head to head: features and cost side by side.

What it would cost

Four ten-minute runs a day, 120 a month (20 machine-hours), each on a fresh 1 vCPU / 2 GiB / 10 GiB machine thrown away afterwards; the results go to your own storage. The CPU is about 40% busy while a headless browser renders pages. No model. Change any number; open a row for the arithmetic.

Start from

The machine
How it runs
How busy it is

Only providers that bill for CPU actually used look at this. An agent waiting for messages is near 0%; a build or a test run is near 100%.

For providers that put an idle machine to sleep and wake it on a request: the share of its hours it has to be awake. An agent that only answers webhooks can sleep; one that holds a chat connection open cannot.

The AI model (optional)

For most agents the model costs more than the machine. Each message re-sends the agent's instructions and history, so tens of thousands of tokens is normal. Prices are the median of the providers that keep no data, from TokenWatch, read 2026-10-29.

    List prices only, excluding model tokens, egressData the machine sends out to the internet, such as downloads to a user or uploads to another service. Some providers charge per GB; most agents send very little., taxes and anything a provider does not publish. How the numbers are made.

    The features that decide it

    Each page compares every provider, with a source for every row

    1. 01

      Lifecycle: stop, pause and sleep — Providers use seven words for four behaviours. The only question that matters is what is still running when the machine comes back.

    2. 02

      Billing models — The meter decides your bill more than the hourly rate does. Four shapes are in play: flat per size, per vCPU and per GB, a plan fee that returns as credit, and measured CPU.

    3. 03

      Storage: disk, volumes and what persists — “Persistent” can mean the whole disk, one mounted folder, or fourteen days. It can also mean a separate volume that outlives the machine, which is a different product from the disk the machine boots with.

    4. 04

      Outbound network: egress, allowlists and static IP — What the agent can reach, what can be blocked, and whether the outside world sees a stable address. This is where an agent that browses meets a firewall that was designed for a web app.

    5. 05

      Ways to drive it — Dashboard, API, SDK, CLI, MCP, SSH, desktop. A provider can have all seven and still be unusable without a terminal, or have three and be genuinely click-driven.

    Sources