Skip to content
PATCH/api/v1/api-keys/{keyId}/budget

Set or remove an API key's monthly budget cap

Sets the per-key monthly USD budget cap. Pass monthlyBudgetUsd as a number to set the cap, or null to remove it (unlimited). Admin role required. monthlyBudgetUsd is required (the key must be present in the body, even if null).

Authentication

Send Authorization: Bearer YOUR_API_KEY on every request. Generate API keys at /dashboard/api-keys.

Request body required

Example

{
  "monthlyBudgetUsd": 0
}
Schema
{
  "application/json": {
    "schema": {
      "type": "object",
      "required": [
        "monthlyBudgetUsd"
      ],
      "properties": {
        "monthlyBudgetUsd": {
          "type": "number",
          "minimum": 0,
          "maximum": 1000000,
          "nullable": true,
          "description": "Number sets the cap (0..1,000,000); null removes it. 400 MISSING_BUDGET if the key is absent."
        }
      }
    }
  }
}

Response

200 example

{
  "success": true
}

All status codes

200Budget updated.
400(no description)
401(no description)
403Forbidden — admin role required.
404(no description)
429(no description)

Code samples

cURL

curl -X PATCH \
  https://evalguard.ai/api/v1/api-keys/{keyId}/budget \
  -H "Authorization: Bearer $EVALGUARD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "monthlyBudgetUsd": 0 }'

TypeScript

import { EvalGuard } from "@evalguard/sdk";

const client = new EvalGuard({ apiKey: process.env.EVALGUARD_API_KEY });

const response = await client.request({
  method: "PATCH",
  path: "/api/v1/api-keys/{keyId}/budget",
  body: {
    "monthlyBudgetUsd": 0
  },
});
console.log(response);

Python

from evalguard import EvalGuard
import os

client = EvalGuard(api_key=os.environ["EVALGUARD_API_KEY"])

response = client.request(
    method="PATCH",
    path="/api/v1/api-keys/{keyId}/budget",
    body={
    "monthlyBudgetUsd": 0
},
)
print(response)

Go

package main

import (
	"context"
	"fmt"
	"net/http"
	"os"
	"strings"
)

func main() {
	body := strings.NewReader(`{"monthlyBudgetUsd":0}`)
	req, _ := http.NewRequestWithContext(context.Background(), "PATCH", "https://evalguard.ai/api/v1/api-keys/{keyId}/budget", body)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("EVALGUARD_API_KEY"))
	req.Header.Set("Content-Type", "application/json")
	resp, err := http.DefaultClient.Do(req)
	if err != nil { panic(err) }
	defer resp.Body.Close()
	fmt.Println(resp.Status)
}

Errors

400401403404429

Other API Keys endpoints