On this page

Project budgets and alerts

A monthly budget per resource for each project, alerts by e-mail, webhook or Telegram at the percentages you choose, and an optional hard stop.

Plan quotas and the spend cap apply to your whole account. A budget is for one project: how much egress, function invocations, realtime messages, monthly active users, file storage and database size it may use per month. Use it to hear early about a traffic spike or a runaway loop, and to stop one project without touching the others.

#Set a budget

Open the project's Usage page (project owners and admins). Next to each resource you see this month's use; enter a budget for the ones you care about and leave the others empty. Choose the percentages that alert you (50%, 80% and 100% by default; up to six, also above 100%) and where alerts go.

ResourceCountedStop at 100%
EgressData sent by the APIs, Storage and Realtime this month, in GBThe API, Storage, Functions and Realtime answer 402 with code: "budget_exceeded". Auth and Studio keep working.
Edge Function invocationsCalls this monthFunctions answer 429.
Realtime messagesMessages this monthNew realtime connections answer 402; open ones stay.
Monthly active usersUsers who signed in this monthNew sign-ups are refused; existing users keep signing in.
File storageCurrent size, in GBAlert only
Database sizeCurrent size, in GBAlert only

Usage is checked every 5 minutes, so a stop can come a few minutes after the budget is reached. A stopped resource starts again at the start of the next month (UTC), as soon as you raise or remove its budget, or when you untick its stop. Changing a resource's budget alerts again from its lowest threshold.

#Alerts

ChannelWhat you get
E-mailTo the project owner, with this month's use, the budget and whether anything was stopped.
WebhookA budget.alert event to every project webhook that chose it, signed and retried like other events. Use it to page your team or scale down a job.
TelegramA message from your own bot to a chat you choose: create a bot with @BotFather, add it to the chat, and enter the bot token and the chat id. The token is stored encrypted.

Each threshold alerts once per month and resource; when several are crossed at once you get only the highest. Send a test alert checks every channel.

JSON
{
  "type": "budget.alert",
  "record": { "resource": "egress_gb", "threshold": 100, "used": 10.2, "budget": 10, "percent": 102, "stopped": true, "period": "2026-10", "test": false }
}