2026-10-06: Scheduled monitors keep running after a stopped run
Improvements
The example input now checks the python.org link to the Python docs. The page at example.com no longer carries any link, so the old example ended with a SOURCE_FAILED row instead of a baseline.
Fixes
A run that timed out, was aborted or ran out of memory no longer blocks the monitor. Previously every later run with the same monitorKey failed with "Monitor is locked" until the lock was deleted by hand; the next run now takes over a lock whose owner stopped, within three minutes.
Large watchlists no longer end with nothing saved when the run timeout comes first. Checks stop in time to deliver rows, save state and charge; placements that were not reached come back as NOT_CHECKED / TIME_LIMIT rows, are not charged, and keep their previous state. RUN_SUMMARY reports TIME_LIMIT_REACHED.
Reaching your maxTotalChargeUsd now ends the run as succeeded instead of failed. The checked placements stay delivered and saved, and RUN_SUMMARY still says BILLING_LIMIT_REACHED.
A repeated placement id no longer fails the whole run. The first placement with that id is checked; later ones get an INVALID_INPUT / DUPLICATE_ID row and are not charged.
When a run fails unexpectedly, RUN_SUMMARY is now saved, so a shared run shows what happened.
An invalid input message names the field and the reason without repeating the values you sent.
2026-09-26: More reliable requests and spending checks
Fixes
Spending checks and billing receipts use the effective event prices supplied for your run, including discounts and zero-priced events.
Compressed HTTP responses are limited while they are decoded, so a small compressed download cannot expand past the response limit in memory.
Retry-After is treated as the server's minimum wait. If it exceeds the retry budget, the request ends with an explicit failure instead of retrying early.
Runs without a spending ceiling no longer fail while calculating the number of affordable results.
2026-09-22: Recheck known backlinks
Changes
0.1
Give the Actor pages that should link to your site. Each placement comes back with whether the link is still there, became nofollow, picked up sponsored or ugc, changed anchor text, moved behind a redirect, or landed on a noindex page.
A successfully checked backlink costs $0.003, plus the platform start event. Set maxTotalChargeUsd before a large watchlist. One check at 1024 MB needs at least $0.008.
This is the first published version, so there is no previous input to migrate.