Weekly
Get a weekly Apify usage and failures report
Every Monday you see this month's usage so far and the runs that failed last week.
- Runs
- Weekly
- Apps
- Apify
- AI
- Not needed
- Access
- API token
Send this to your assistant
Create a ClickRuntime automation: every Monday at 9am, email me my Apify usage for this month so far and a list of actor runs that failed in the past 7 days.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
Apify bills by compute units, proxy traffic and storage, and the charges accumulate in the background. A freelancer who runs a dozen actors for several clients only learns the real cost when the monthly invoice arrives, and by then one misconfigured actor has retried itself through a large share of the plan's prepaid credit. The failed runs that caused it were never reviewed.
Every week, ClickRuntime reads your current monthly usage from Apify, lists runs filtered by failed status over the period, and sends one email. It shows how much of the month's usage has been consumed so far and which runs failed, so you see spend and its likely causes side by side.
Agencies that resell scraping work find it most useful for staying inside what they quoted to clients.
What you get out of it
Overspend gets caught mid-month
A weekly read of month-to-date usage lets you notice at the end of week one that you are on pace to double your credit. You can pause an actor before the plan runs out.
Failed runs are tied to cost
Retries and crashed runs still consume compute. Listing them next to usage shows whether wasted runs explain a bad week, so you fix the actor rather than just buying more credit.
Quotes to clients stay honest
If you priced a scraping project at a flat fee, regular spend numbers show whether your margin is intact. Underpriced work gets renegotiated while there is still time to do it.
Plan upgrades happen on purpose
A trend of climbing usage tells you when a larger plan is justified, and a flat one tells you it is not. You decide with a record in hand rather than after hitting a limit.
Reviews of the month take minutes
At month end you already have four weekly emails to scan. Finding the week where costs jumped takes a moment, which beats rebuilding the story from the billing page. The record is already in your inbox.
How it works
What happens, step by step
Every Monday, ClickRuntime checks your Apify spend so far this month.
It also collects the scraper runs that failed in the last 7 days.
You get one email with this month's spend and a list of failed runs, each with its time and a link.
Before it runs live
- Connect Apify
What you get
Build your own
Need it to work differently?
Your own rules
Conditions, thresholds, filters and exceptions, written the way you'd explain them to a colleague.
Any number of apps
One automation can read from one app and update several others. Over 248 apps are ready, and anything with an API works too.
AI where it helps
Summaries, classification, extraction and drafts use ClickRuntime's built-in AI, with no extra key.
On a schedule or on each event
Runs as often as every 5 minutes, or the moment an app sends an event, and keeps track of what it already handled.
Changes you can ask for
- Run it at a different time, more or less often, or only on weekdays
- Add an AI step, for example to summarize, sort or draft a reply
- Add another app, for example also send it to Slack
- Combine it with other Apify steps into one automation
Under the hood
The code that runs this automation
from datetime import datetime, timedelta, timezone
from clickruntime import on_trigger, credentials, http, notify
@on_trigger
def run(event):
headers = {"Authorization": f"Bearer {credentials.secret('APIFY_TOKEN')}"}
usage = http.get("https://api.apify.com/v2/users/me/usage/monthly", headers=headers).json()["data"]
total = usage.get("totalUsageCreditsUsdAfterVolumeDiscount", 0)
since = datetime.now(timezone.utc) - timedelta(days=7)
runs = http.get("https://api.apify.com/v2/actor-runs", headers=headers,
params={"status": "FAILED", "desc": 1, "limit": 100}).json()["data"]["items"]
failed = [r for r in runs if r["startedAt"] >= since.isoformat()[:19]]
lines = [f"- {r['startedAt'][:16]} actor {r['actId']}: "
f"https://console.apify.com/actors/{r['actId']}/runs/{r['id']}" for r in failed]
body = f"Usage this month so far: ${total:,.2f}\n\nFailed runs in the past 7 days ({len(failed)}):\n"
notify.email_me("Apify weekly usage", body + ("\n".join(lines) or "None"))
return {"usd": total, "failed": len(failed)}FAQ
Common questions
What does monthly usage include?
Which runs count as failed in the list?
Can the report cover a team account with several users?
What permissions does it need?
Does it need AI?
How many runs does it use?
Can I change how it works?
Related
You might also like
Get a Slack alert when a scraper fails
When any actor run fails or times out, you get its name and a link to the run in Slack.
See how it worksGet the results when a scrape finishes
Each successful run sends you how many items it collected and a link to the dataset.
See how it worksKnow the moment your website goes down
Your team hears in Slack when the site stops responding or slows down, and again when it's back.
See how it worksKeep exploring
Set up “Get a weekly Apify usage and failures report” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.
