Skip to main content

Get spend alerts

Proxium sends an alert to the channel that your team reads: Slack, Discord, Telegram or a webhook. An alert tells you about spend. It never refuses a call. To stop an app at a limit, set a limit. See Set budgets and limits.

What Proxium sends an alert about​

AlertWhenHow often
Spend levelThe spend of the project, or of one app, passes a dollar level that you set, in a day or in a monthOne time for each level, app and day or month
Limit of a keyA key reaches 50%, 80% and 100% of one of its limits. You set the limits on KeysOne time for each percentage in the window of the limit

The day and the month are UTC calendar periods. An app is the value that it sends in the x-proxium-source header.

1. Add a channel​

Open Settings › Spend alerts, and set one or more channels:

ChannelWhat to pasteWhere you get it
SlackThe incoming webhook URL, https://hooks.slack.com/services/…Create a Slack app with Incoming Webhooks for the channel. See Sending messages using incoming webhooks
DiscordThe channel webhook URL, https://discord.com/api/webhooks/…In Discord, open the channel settings › Integrations › Webhooks › New Webhook › Copy Webhook URL
TelegramThe bot token and the chatCreate a bot with @BotFather and copy its token. Add the bot to your group or channel. The chat is the numeric chat id, or @name of a public channel
WebhookAny https URL of yoursProxium sends a POST with a JSON body. See The webhook body

Select Set beside the channel. The console then shows the host of the URL, or bot set for Telegram. It never shows the URL or the token again. Proxium stores them encrypted.

warning

A URL must reach a public address. Proxium refuses a private, loopback or link-local address, because it sends the alert from inside its own network.

2. Send a test alert​

Select Send a test alert. Proxium sends one test message to each channel now. Each channel shows sent, or the reason that it failed. A failed test does not change your settings.

3. Set a spend level​

  1. In Spend levels, leave App empty for the whole project, or type the x-proxium-source value of one app.
  2. In In, select a day or a month.
  3. Type the level in Level, in dollars, for example 20.
  4. Select Add level.

The level shows in the list. Proxium checks the spend every 30 seconds. When the spend passes the level, each channel gets one message, for example:

proxium: app 'support-bot' of project 'acme' spent $21.40 today (UTC), over its alert level of $20.00

A project keeps at most 50 levels. To change a level, add it again with the new amount. A new amount sends a new alert in the same day or month. To remove a level, select Remove.

Check what went out​

Settings › Alerts that went out lists each message: when, what it was about, the channel and its host, and sent, failed or blocked. blocked means that the URL failed the address check.

The webhook body​

A webhook gets one JSON object for each alert. A spend level:

Spend level
{
"type": "proxium.spend.watch",
"project": "acme",
"app": "support-bot",
"period": "day",
"spent": 2140000,
"level": 2000000,
"unit": "millicents",
"at": "2026-10-03T14:05:00Z"
}

app is null for a level of the whole project. spent and level are in millicents: 100,000 millicents are one dollar.

A limit of a key:

Limit of a key
{
"type": "axon.budget.threshold",
"project": "acme",
"scope": "key",
"dimension": "calls",
"threshold_pct": 80,
"value": 800,
"ceiling": 1000,
"unit": "calls",
"action": "notify",
"at": "2026-10-03T14:05:00Z"
}

A test alert has "type": "proxium.alert.test", the project and the time. No body holds a prompt, an answer, a key or a key prefix.