> ## Documentation Index
> Fetch the complete documentation index at: https://veryfront.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Create budget

> Create a monthly AI spending limit for a project, a member on a project, an API key, or a combination of these.

`veryfront__create_budget`

## Access

No external-service connection is required. Use a Veryfront credential with access to the requested resources.

**Call type:** Can change resources.

## Arguments

| Field | Type | Required | Description and constraints |
| - | - | - | - |
| `scope` | `object` | Yes | A budget caps monthly AI spending for a project, person, API key, or combination of these fields. A request must match every field in the budget scope. If several budgets apply, the most specific exhausted budget rejects the request before account credit and provider spending checks. Only one budget is allowed per scope (409); change an existing limit with an update. The scope cannot change later; create a separate budget for a different scope. API keys and runtime credentials are refused. A member cap cannot target the caller. A new member cap cannot target the project owner. |
| `monthly_limit_credits` | `number` | Yes | Monthly AI spending limit in credits. Usage already recorded this month counts toward the limit. At most 8589934591.999999 credits, with at most six decimal places. A value of 0 blocks all spending within the scope. Minimum: `0`. Maximum: `8589934591.999999`. |

## Example request

Send this JSON-RPC request through an initialized MCP client. Replace sample identifiers and values before calling the tool. See [MCP client setup](https://veryfront.com/docs/cloud/getting-started/connect-mcp.md).

```json title="request.json" theme={null}
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "veryfront__create_budget",
    "arguments": {
      "scope": {},
      "monthly_limit_credits": 0
    }
  }
}
```

## Result

The published output shape is summarized below. Inspect both the MCP response content and `isError` when handling a call.

| Field | Type | Required | Description and constraints |
| - | - | - | - |
| `id` | `string` | Yes | Unique identifier for the returned record. Format: `uuid`. |
| `scope` | `object` | Yes | Structured scope details returned by the tool. |
| `monthly_limit_usd` | `number` | Yes | The monthly AI spend limit, in USD |
| `monthly_limit_credits` | `number` | Yes | The same limit in credits, the unit spend is counted in |
| `status` | `object` | Yes | Lifecycle status for the returned record. |
| `created_at` | `string` | Yes | Creation timestamp in ISO 8601 format. |
| `updated_at` | `string` | Yes | Last update timestamp in ISO 8601 format. |

## Full schemas

```json title="input-schema.json" theme={null}
{
  "type": "object",
  "properties": {
    "scope": {
      "type": "object",
      "properties": {
        "project_reference": {
          "type": "string",
          "minLength": 1,
          "description": "The project whose spend this budget caps. Required whenever `user_id` is set."
        },
        "user_id": {
          "type": "string",
          "format": "uuid",
          "description": "The person whose spend on that project this budget caps. A new member cap cannot target the caller or the project owner."
        },
        "api_key_id": {
          "type": "string",
          "format": "uuid",
          "description": "The API key whose spend this budget caps, wherever the key is used."
        }
      },
      "additionalProperties": false,
      "description": "A budget caps monthly AI spending for a project, person, API key, or combination of these fields. A request must match every field in the budget scope. If several budgets apply, the most specific exhausted budget rejects the request before account credit and provider spending checks. Only one budget is allowed per scope (409); change an existing limit with an update. The scope cannot change later; create a separate budget for a different scope. API keys and runtime credentials are refused. A member cap cannot target the caller. A new member cap cannot target the project owner."
    },
    "monthly_limit_credits": {
      "type": "number",
      "minimum": 0,
      "maximum": 8589934591.999999,
      "description": "Monthly AI spending limit in credits. Usage already recorded this month counts toward the limit. At most 8589934591.999999 credits, with at most six decimal places. A value of 0 blocks all spending within the scope."
    }
  },
  "required": [
    "scope",
    "monthly_limit_credits"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#",
  "description": "Arguments for the create_budget tool."
}
```

```json title="output-schema.json" theme={null}
{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "format": "uuid",
      "description": "Unique identifier for the returned record."
    },
    "scope": {
      "type": "object",
      "properties": {
        "kind": {
          "type": "string",
          "enum": [
            "api_key",
            "member",
            "project"
          ],
          "description": "The kind returned by the tool."
        },
        "project_id": {
          "anyOf": [
            {
              "type": "string",
              "format": "uuid",
              "description": "Project identifier associated with this result."
            },
            {
              "type": "null",
              "description": "Project identifier associated with this result."
            }
          ],
          "description": "Project identifier associated with this result."
        },
        "user_id": {
          "anyOf": [
            {
              "type": "string",
              "format": "uuid",
              "description": "The user id returned by the tool."
            },
            {
              "type": "null",
              "description": "The user id returned by the tool."
            }
          ],
          "description": "The user id returned by the tool."
        },
        "api_key_id": {
          "anyOf": [
            {
              "type": "string",
              "format": "uuid",
              "description": "The api key id returned by the tool."
            },
            {
              "type": "null",
              "description": "The api key id returned by the tool."
            }
          ],
          "description": "The api key id returned by the tool."
        }
      },
      "required": [
        "kind",
        "project_id",
        "user_id",
        "api_key_id"
      ],
      "additionalProperties": false,
      "description": "Structured scope details returned by the tool."
    },
    "monthly_limit_usd": {
      "type": "number",
      "description": "The monthly AI spend limit, in USD"
    },
    "monthly_limit_credits": {
      "type": "number",
      "description": "The same limit in credits, the unit spend is counted in"
    },
    "status": {
      "type": "object",
      "properties": {
        "used": {
          "type": "number",
          "description": "The used returned by the tool."
        },
        "remaining": {
          "type": "number",
          "description": "The remaining returned by the tool."
        },
        "resets_at": {
          "type": "string",
          "description": "The resets at returned by the tool."
        }
      },
      "required": [
        "used",
        "remaining",
        "resets_at"
      ],
      "additionalProperties": false,
      "description": "Lifecycle status for the returned record."
    },
    "created_at": {
      "type": "string",
      "description": "Creation timestamp in ISO 8601 format."
    },
    "updated_at": {
      "type": "string",
      "description": "Last update timestamp in ISO 8601 format."
    }
  },
  "required": [
    "id",
    "scope",
    "monthly_limit_usd",
    "monthly_limit_credits",
    "status",
    "created_at",
    "updated_at"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#",
  "description": "Structured result returned by the create_budget tool."
}
```

<details>
  <summary>Try this tool</summary>

  Replace sample arguments with values for your project or connected account. Calls run only when you select Run tool.

  MCP tool call

  Call `veryfront__create_budget` against the Veryfront MCP endpoint.

  Bearer token or API key

  Arguments (JSON)

  Run this tool with these arguments.

  Run tool

  Output JSON

  <pre />
</details>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.