For Cloudflare Workers · Independent tool

A hard budget cap for Cloudflare.

Set a monthly limit. When your estimated spend crosses it, Controlflare pauses your Workers - before the invoice does the talking. Pause and resume anything yourself from the dashboard.

30 days free, no card required, then $1 a month. Spend is an estimate from Cloudflare usage analytics and published prices - not your invoice.

One bad night, two endings.

The problem

Usage-based billing has no brakes.

Workers scale to whatever shows up. That is the point - until something shows up that you did not plan for, and the first you hear of it is the invoice.

A loop that calls itself

A Worker fetches a URL that routes back to the same Worker. Every request spawns another. Nothing errors, so nothing alerts - the request count just climbs.

Traffic you didn't invite

A scraper, a botnet, or a link in the wrong place. Your Worker answers all of it, and you pay per million answers whether or not they were worth giving.

A cron that fires too often

* * * * * when you meant 0 * * * *. Sixty times the work, quietly, for as long as it takes someone to look.

How it works

Three steps, then it watches for you.

  1. Sign in and install the cost agent

    Deploy the open-source cost agent into your own Cloudflare account - one click from the dashboard, Cloudflare's own Deploy button, or wrangler. Create a Cloudflare API token limited to the four permissions it needs and set it on that Worker yourself. It never transits Controlflare, and it is the only way to configure an account.

  2. Set your cap

    Pick a monthly dollar amount for the account. Change it, or switch enforcement off, whenever you like.

  3. We watch usage every 5 minutes

    Controlflare estimates the month's spend across Workers, D1, R2, KV and Durable Object requests from usage analytics. If it crosses your cap, your Workers are paused. Resume with one click when you are ready.

The dashboard

Pause and resume from one place.

Every Worker script in the account, its status, and one button. Pausing removes the ways traffic reaches a script and remembers what it removed, so resume puts everything back.

Pausing a script disables its workers.dev subdomain, detaches custom domains, removes routes, and clears cron triggers. Each of those is saved first, so resuming restores exactly what was there.

What you should know

Estimates, not invoices.

Controlflare is a safety net, and a safety net should be honest about where its edges are.

Spend is estimated

There is no public "current bill" endpoint, so we estimate from Cloudflare's own usage analytics for this calendar month, priced with the published Workers Paid rates. The number covers Workers requests and CPU time, D1, R2, KV and Durable Object requests. It still leaves things out - Durable Object duration above all, which is billed in wall-clock GB-seconds that no public dataset reports, plus Queues, Workers AI and Durable Object storage - so your real invoice can still be higher. If we cannot read a product at all, the dashboard says not included and names the reason; it is never counted as zero.

We never hold your Cloudflare token

Not encrypted, not briefly, not at all - there is nowhere to paste one. Your token needs four permissions and nothing else, and it lives as a secret on the open-source cost agent you deploy into your own Cloudflare account. Controlflare keeps the agent's URL and a pairing secret, signs every request with it, and reads and pauses only through the agent's own allowlist.

You stay in control

Pause or resume any script, or the whole account, whenever you like. Controlflare never resumes anything on its own - when a new month starts, you decide when to switch back on.

Some traffic gets through

Pausing removes the public entry points to a script. Calls from other Workers over service bindings, Durable Object alarms and Queue consumers are not blocked. We say so in the dashboard too.

Pricing

$1 a month, after 30 days free.

One plan, and it covers every Cloudflare account you connect. The trial needs no card - connect an account, set a cap and watch it work for 30 days before you decide.

Controlflare

$1 per month, after 30 days free
  • Connect as many Cloudflare accounts as you like
  • A monthly cap per account, checked every 5 minutes
  • Pause and resume any Worker, or all of them
  • Activity log of every check, pause and resume
Start the 30 days free

No card to start the trial. The $1 is what Controlflare costs; your Cloudflare bill stays between you and Cloudflare. Subject to the terms.

FAQ

Questions, answered plainly.

What gets paused?

Every Worker script in the connected account. For each script, Controlflare:

  • disables the workers.dev subdomain and preview URLs,
  • detaches its custom domains,
  • removes its routes in every zone on the account,
  • clears its cron triggers.

Each item is saved before it is removed, so a resume restores it. The script itself is not deleted or modified.

What doesn't get paused?

Anything that reaches a script without going through its public entry points: calls from other Workers over service bindings, Durable Object alarms, and Queue consumers keep running. Pages projects and non-Workers products are never paused either - pausing is a Workers operation. Their spend does count, though: D1, R2, KV and Durable Object requests are in the estimate, so an account can cross its cap on D1 and have its Workers paused.

Which API token permissions does it need?

The cost agent in your account needs a token with exactly these four, scoped to the account you want to protect:

  • Account · Workers Scripts · Edit - list scripts, change subdomain, domains and triggers
  • Zone · Workers Routes · Edit - remove and restore routes
  • Account · Account Analytics · Read - read your account's usage analytics for the estimate
  • Zone · Zone · Read - find the zones that carry routes

You set it as CF_API_TOKEN on the agent Worker in your own Cloudflare dashboard. It never transits Controlflare, which proves the agent works by making a real Cloudflare API call through it. It is a scoped API token with those four permissions - never your Global API Key.

I don't want to give you my API token. What are my options?

You don't, and there is no longer any way to. The only way to configure an account is the open-source cost agent: you deploy it into your own Cloudflare account and set CF_API_TOKEN on it yourself, so the token is a secret on a Worker you own. Controlflare holds the agent's URL and a pairing secret, and reaches Cloudflare only through it, so the credential that could change anything in your account never leaves it.

Can it resume automatically when the month rolls over?

Not yet. Controlflare never resumes anything on its own; you resume from the dashboard when you are ready, with one click for a single script or the whole account. Auto-resume at the start of a new billing month is on the roadmap as an opt-in.

What happens when the 30 days are up?

Your cap keeps being enforced. Controlflare does not stop protecting your bill because a payment lapsed. Usage is still checked every 5 minutes, and your Workers are still paused when estimated spend crosses your cap.

What locks is configuration. Until you subscribe you cannot add an account, change a cap or change enforcement settings; what you set up during the trial keeps running exactly as you left it.

You can always resume your own Workers, subscribed or not. Pause and resume stay available whatever the state of your subscription - nothing you own is ever stranded behind a paywall.

Subscribing is $1 a month, paid through Stripe, which adds VAT or sales tax where it applies. It renews monthly and you can cancel any time from the Plan page in the dashboard. The billing details are in the terms.

Is Controlflare affiliated with Cloudflare?

No. Controlflare is an independent tool built for people who run Workers. It is not made, endorsed or supported by Cloudflare, Inc. It reaches Cloudflare's public APIs only through the agent in your account, with a token you create and can revoke at any time. Cloudflare and Workers are trademarks of Cloudflare, Inc.