Update Budget
PATCH /budgets/{budget_id}
PATCH /budgets/{budget_id}Interactive request editor loads with JavaScript.
Authorization
BearerAdminToken Organization-scoped admin token. Read operations require a valid token, and write operations require a token with write permission.
In: header
Path Parameters
Budget ID.
uuidRequest Body
application/json
Update-budget body. Fields left out keep their current values;
scope and scope_ref cannot change.
Response Body
application/json
application/json
application/json
application/json
curl -X PATCH "$AISIX_CP/budgets/$BUDGET_ID" \ -H "Authorization: Bearer $AISIX_TOKEN" \ -H "Content-Type: application/json" \ -d '{}'OK
{
"budget": {
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"org_id": "a40f5d1f-d889-42e9-94ea-b9b33585fc6b",
"scope": "org",
"scope_ref": "string",
"display_name": "string",
"limit_cents": 0,
"period": "day",
"hard_stop": true,
"alert_thresholds": [
1
],
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z"
}
}Request body or parameters failed validation.
{
"error": {
"code": "string",
"message": "string"
}
}Missing or invalid bearer.
{
"error": {
"code": "UNAUTHENTICATED",
"message": "no org context"
}
}Resource not found.
{
"error": {
"code": "NOT_FOUND",
"message": "provider key not found"
}
}Complete operation details and schema variants
PATCH /budgets/{budget_id}
Update Budget
Update a budget's name, limit, period, or enforcement mode.
Fields left out keep their current values. The budget's scope
and scope_ref are fixed at creation — to cap a different
target, create a new budget.
Parameters
budget_id(path, string, required): Budget ID.
Request body
Content type: application/json
-
display_name(string, optional): New budget name. -
limit_cents(integer, optional): New spending limit in USD cents. -
period(string, optional): Calendar window the limit applies to, in UTC:dayresets at 00:00,weekon Monday 00:00,monthon the 1st at 00:00. -
hard_stop(boolean, optional): New enforcement mode. -
alert_thresholds(array, optional): New percent-of-limit alert points. Omitted keeps the current value; explicitnullresets to the default ([80]).
Responses
-
200: OK -
budget(object, required): A spending cap on one target. Amounts are integer USD cents. -
budget.id(string, required): Budget ID. -
budget.org_id(string, required): Organization that owns this budget. -
budget.scope(string, required): What a budget's spend counts.orgcaps the whole organization.environmentcaps one environment.api_keycaps one caller API key andprovider_keyone upstream credential.teamis a pool shared by every caller API key bound to the team.memberis organization-wide for one member: all caller API keys bound to that member, in any team.team_membergives every member of one team an individual allowance of the same size, counting only their spend through keys bound to both that team and that member. -
budget.scope_ref(string, required): ID of the target the budget applies to, matchingscope: an environment ID, caller API key ID, provider key ID, team ID, or member ID.team_memberbudgets reference a team ID. Fororgbudgets this holds the organization's internal ID, which differs from the organization identifier used elsewhere in this API. Fixed at creation. -
budget.display_name(string, required): Human-readable budget name. -
budget.limit_cents(integer, required): Spending limit in USD cents. -
budget.period(string, required): Calendar window the limit applies to, in UTC:dayresets at 00:00,weekon Monday 00:00,monthon the 1st at 00:00. -
budget.hard_stop(boolean, required): Whether the gateway rejects matching traffic with429 budget_exceededonce the period's spend reaches the limit. Whenfalsethe budget only reports the over-limit state. -
budget.alert_thresholds(array, optional): Percent-of-limit points at which abudget_thresholdnotification fires once per period, delivered to the organization's enabled notification channels.nullmeans the default ([80]). Values above100fire under either enforcement mode and flag overspend:hard_stoprejects new requests once the control plane observes spend at the limit, but it does not cap the cost of requests already admitted, so a hard-stopped budget can settle above100. -
budget.created_at(string, required): Time when the budget was created. -
budget.updated_at(string, required): Time when the budget was last updated. -
400: Request body or parameters failed validation. -
error(object, required): Error details. -
error.code(string, required): Machine-readable identifier. Examples:UNAUTHENTICATED,INVALID_REQUEST,MASTER_KEY_UNSET,INTERNAL. -
error.message(string, required): Human-readable explanation; safe to surface to operators. -
401: Missing or invalid bearer. Response fields (application/json): identical toPATCH /budgets/{budget_id}, response 400 above. -
404: Resource not found. Response fields (application/json): identical toPATCH /budgets/{budget_id}, response 400 above.
cURL
curl -X PATCH '$AISIX_CP/budgets/{budget_id}' -H 'Authorization: Bearer $AISIX_TOKEN'