Two limits, because they catch different things
Each workspace can carry two limits, and either one works on its own.
A monthly budget is the one to set if you want spend to match a number you have agreed with finance. It will not stop a loop, though: by the time a monthly cap trips, the money is already gone. That is what the daily ceiling is for. Setting both is the usual answer.
The monthly window follows your billing period rather than the calendar month, so the figure you see here reconciles with the invoice. If your billing period starts on the 14th, so does the monthly window. The daily window is always midnight UTC, whatever timezone you work in.
The two are independent. A daily ceiling resetting does not touch the monthly budget, and the reverse.
Setting a limit
Open Usage limits, pick a workspace, and fill in either field. Both are in euros. Leave a field empty for no limit on that window. You also choose what should happen when a limit is reached:- Notify and keep serving. We email your billing managers once and the workspace keeps running. This is the right choice for production, where going quiet unexpectedly is worse than an unexpected invoice.
- Block new requests. The workspace refuses new requests until the window resets. This is the right choice for staging and for experiments.
What counts toward a limit
Everything a request spends counts: inference, embeddings, retrieval, guard checks, the PII firewall, ingestion, memory extraction and traces. If a request cost you credits, it moves the number. Charges for stored data do not count. Keeping documents and memory in your knowledge graph carries a monthly charge, and that charge is left out of the limit on purpose. It is a charge for data already at rest rather than for anything anyone did, so counting it would let a completely idle workspace breach its limit, and blocking requests would not bring the charge down. Your plan allowance is the instrument that bounds stored data. This is why the page calls the number usage and not spend: it is what the workspace’s activity cost, not your whole invoice. Expect it to read lower than your bill.When a blocking limit is reached
Requests from that workspace are refused with HTTP 402 until the window resets. The error names which limit it was and when it lifts, so it is not a bare “payment required”:type is always usage_cap_exceeded. code is daily_usage_cap or monthly_usage_cap, so a client can tell the two apart without reading the message.
This applies to every request that spends, not only chat completions: embeddings, document ingestion, remembering a fact, and the MCP tools are all refused the same way. A document upload that was accepted before the limit was reached and processed after it shows as failed with the reason on it, rather than disappearing.