> ## 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.



## OpenAPI

````yaml /cloud/rest/openapi.json post /budgets
openapi: 3.1.0
info:
  title: Veryfront REST API reference
  version: 1.0.0
  description: |-
    ## Explore the API

    | Domain | Use it to |
    | --- | --- |
    | [Projects](#tag/projects) | Manage projects and files. |
    | [Agents](#tag/agents) | Manage agent primitives. |
    | [Orchestration](#tag/execution) | Manage conversations and runs. |
    | [Evaluations](#tag/evaluations) | Manage evaluations and results. |
    | [AI Gateway](#tag/ai-gateway) | Access models and inference. |
    | [MCP](#tag/mcp) | Discover tools and authorization. |
    | [Integrations](#tag/integrations) | Manage connections and integrations. |
    | [Knowledge](#tag/knowledge) | Manage documents and search. |
    | [Deployments](#tag/deployments) | Manage releases and deployments. |
    | [Runtime](#tag/runtime) | Manage environments and infrastructure. |
    | [Observability](#tag/observability) | Monitor activity and performance. |
    | [Identity & Access](#tag/identity-access) | Manage identity and access. |
    | [Billing & Usage](#tag/billing-usage) | Manage billing and usage. |
    | [Other](#tag/platform) | Inspect health and API metadata. |

    [OpenAPI specification (JSON)](/openapi.json)
  contact:
    name: Veryfront API Support
    url: https://veryfront.com/docs
    email: support@veryfront.com
  x-api-id: 5f1f0b8a-6b0e-4c1a-9b35-0f3a1e6d84c7
  x-audience: external-public
servers:
  - url: https://api.veryfront.com
security:
  - bearerAuth: []
  - apiKeyAuth: []
tags:
  - name: projects
    description: Manage projects and files.
  - name: agents
    description: Manage agent primitives.
  - name: execution
    description: Manage conversations and runs.
  - name: evaluations
    description: Manage evaluations and results.
  - name: ai-gateway
    description: Access models and inference.
  - name: mcp
    description: Discover tools and authorization.
  - name: integrations
    description: Manage connections and integrations.
  - name: knowledge
    description: Manage documents and search.
  - name: deployments
    description: Manage releases and deployments.
  - name: runtime
    description: Manage environments and infrastructure.
  - name: observability
    description: Monitor activity and performance.
  - name: identity-access
    description: Manage identity and access.
  - name: billing-usage
    description: Manage billing and usage.
  - name: platform
    description: Inspect health and API metadata.
  - name: projects/Projects
  - name: projects/Projects/Favorites
  - name: projects/Projects/Account Projects
  - name: projects/Projects/Projects
  - name: projects/Projects/Project Labels
  - name: projects/Projects/Project templates
  - name: projects/Files
  - name: projects/Files/Files
  - name: projects/Files/File Chunks
  - name: projects/Files/Branch File Versions
  - name: projects/Files/Branch Files
  - name: projects/Files/Environment Files
  - name: projects/Files/File Versions
  - name: projects/Files/Branch File Drafts
  - name: projects/Files/Release Files
  - name: projects/Files/Sandbox Files
  - name: projects/Files/File Search
  - name: projects/Branches
  - name: projects/Branches/Branches
  - name: projects/Branches/Branch Policies
  - name: projects/Branches/Branch Approvals
  - name: projects/Branches/Branch Status Checks
  - name: projects/Branches/Project Commits
  - name: projects/Branches/Branch Merges
  - name: projects/Uploads
  - name: projects/Uploads/Upload Folders
  - name: projects/Uploads/Upload Grants
  - name: projects/Uploads/Project Uploads
  - name: projects/Uploads/Upload Visibility
  - name: agents/Agents
  - name: agents/Agents/Agents
  - name: agents/Agents/Agent Labels
  - name: agents/Agents/Agent templates
  - name: agents/Agents/Agent Tool References
  - name: agents/Agents/Agent Avatars
  - name: agents/Agents/Agent Capabilities
  - name: agents/Agents/Agent Installation
  - name: agents/Prompts
  - name: agents/Prompts/Project prompts
  - name: agents/Tools
  - name: agents/Tools/Project tools
  - name: agents/Skills
  - name: agents/Skills/Project skills
  - name: agents/Resources
  - name: agents/Resources/Project resources
  - name: agents/Tasks
  - name: agents/Tasks/Tasks
  - name: agents/Workflows
  - name: agents/Workflows/Workflows
  - name: execution/Conversations
  - name: execution/Conversations/Conversations
  - name: execution/Conversations/Conversation messages
  - name: execution/Conversations/Conversation participants
  - name: execution/Conversations/Conversation read state
  - name: execution/Triggers
  - name: execution/Triggers/Project schedules
  - name: execution/Triggers/Webhooks
  - name: execution/Triggers/Webhook events
  - name: execution/Runs
  - name: execution/Runs/Run Input Requests
  - name: execution/Runs/Runs
  - name: execution/Runs/Runtime
  - name: execution/Runs/Child Runs
  - name: execution/Runs/Conversation Runs
  - name: execution/Runs/Project Runs
  - name: execution/Runs/Webhook Runs
  - name: execution/Runs/Run Events
  - name: execution/Runs/Run Actions
  - name: execution/Runs/Run Artifacts
  - name: execution/Executors
  - name: execution/Executors/Connected agents
  - name: execution/Executors/Agent workers
  - name: evaluations/Evaluations
  - name: evaluations/Evaluations/Evaluations
  - name: evaluations/Evaluations/Evaluation Runs
  - name: ai-gateway/Models
  - name: ai-gateway/Models/Model discovery
  - name: ai-gateway/Models/Inference Models
  - name: ai-gateway/Models/Project inference policy
  - name: ai-gateway/Models/Account inference policy
  - name: ai-gateway/Inference
  - name: ai-gateway/Inference/OpenAI Chat Completions
  - name: ai-gateway/Inference/Embeddings
  - name: ai-gateway/Inference/OpenAI Responses
  - name: ai-gateway/Inference/Proxy metadata
  - name: ai-gateway/Inference/Anthropic Messages
  - name: ai-gateway/Inference/Provider gateway
  - name: ai-gateway/Inference/Gemini inference
  - name: ai-gateway/Inference/Image generation
  - name: mcp/Tools
  - name: mcp/Tools/MCP discovery
  - name: mcp/Authorization
  - name: mcp/Authorization/Protected resource discovery
  - name: integrations/Integrations
  - name: integrations/Integrations/Integration tools
  - name: integrations/Integrations/Integration catalog
  - name: integrations/Integrations/Project integrations
  - name: integrations/Connections
  - name: integrations/Connections/Connections
  - name: integrations/Channels
  - name: integrations/Channels/Channels
  - name: integrations/Channels/Setup lookups
  - name: integrations/External storage
  - name: integrations/External storage/External Files
  - name: knowledge/Documents
  - name: knowledge/Documents/Project knowledge
  - name: knowledge/Documents/Retrieval documents
  - name: knowledge/Search
  - name: knowledge/Search/Search
  - name: knowledge/Embeddings
  - name: knowledge/Embeddings/Project embeddings
  - name: deployments/Releases
  - name: deployments/Releases/Releases
  - name: deployments/Releases/Release Versions
  - name: deployments/Releases/Release Source Manifests
  - name: deployments/Deployments
  - name: deployments/Deployments/Project deployments
  - name: deployments/Artifacts
  - name: deployments/Artifacts/Dependencies
  - name: deployments/Artifacts/Release Asset Manifests
  - name: deployments/Artifacts/Style artifacts
  - name: runtime/Environments
  - name: runtime/Environments/Environments
  - name: runtime/Environments/Environment Domains
  - name: runtime/Environments/Environment variables
  - name: runtime/Environments/Project Domains
  - name: runtime/Environments/Environment Variable Keys
  - name: runtime/Servers
  - name: runtime/Servers/Environment Servers
  - name: runtime/Servers/Project servers
  - name: runtime/Sandboxes
  - name: runtime/Sandboxes/Sandbox Lifecycle
  - name: runtime/Sandboxes/Sandbox Commands
  - name: runtime/Sandboxes/Sandbox Environment
  - name: runtime/Sandboxes/Sandbox Health
  - name: runtime/Sandboxes/Sandbox Terminal
  - name: runtime/Cache
  - name: runtime/Cache/Project Cache
  - name: runtime/Cache/User Cache
  - name: observability/Logs
  - name: observability/Logs/Log entries
  - name: observability/Traces
  - name: observability/Traces/Trace spans
  - name: observability/Traces/Project traces
  - name: observability/Traces/Trace Search
  - name: observability/Metrics
  - name: observability/Metrics/Metric series
  - name: observability/Alerts
  - name: observability/Alerts/Project alerts
  - name: observability/Error types
  - name: observability/Error types/Error types
  - name: identity-access/Users
  - name: identity-access/Users/Account users
  - name: identity-access/Users/Project users
  - name: identity-access/Users/Current user
  - name: identity-access/Accounts
  - name: identity-access/Accounts/Accounts
  - name: identity-access/Invitations
  - name: identity-access/Invitations/Invitations
  - name: identity-access/Permissions
  - name: identity-access/Permissions/Feature gates
  - name: identity-access/Permissions/Project Ownership
  - name: identity-access/API keys
  - name: identity-access/API keys/API keys
  - name: identity-access/Authentication
  - name: identity-access/Authentication/Sign-in
  - name: identity-access/Authentication/Tokens
  - name: identity-access/Authorization
  - name: identity-access/Authorization/Authorized apps
  - name: identity-access/Authorization/General OAuth
  - name: identity-access/Authorization/Consent
  - name: billing-usage/Subscriptions
  - name: billing-usage/Subscriptions/Subscriptions
  - name: billing-usage/Subscriptions/Seats
  - name: billing-usage/Billing
  - name: billing-usage/Billing/Invoices
  - name: billing-usage/Billing/Payments
  - name: billing-usage/Billing/Payment Methods
  - name: billing-usage/Billing/Billing Details
  - name: billing-usage/Billing/Account billing
  - name: billing-usage/Credits
  - name: billing-usage/Credits/Credits
  - name: billing-usage/Budgets
  - name: billing-usage/Budgets/Budgets
  - name: billing-usage/Usage
  - name: billing-usage/Usage/API key usage
  - name: billing-usage/Usage/Account usage
  - name: billing-usage/Usage/Project usage
  - name: billing-usage/Analytics
  - name: billing-usage/Analytics/Conversation Analytics
  - name: billing-usage/Analytics/Run Analytics
  - name: platform/Other
  - name: platform/Other/API metadata
paths:
  /budgets:
    post:
      tags:
        - billing-usage/Budgets/Budgets
      summary: Create budget
      description: >-
        Create a monthly AI spending limit for a project, a member on a project,
        an API key, or a combination of these.
      operationId: createBudget
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateBudgetInput'
      responses:
        '201':
          description: Budget created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Budget'
        '400':
          description: Bad request
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
        '403':
          description: >-
            API keys and runtime credentials are refused. A member cap cannot
            target the caller. A new member cap cannot target the project owner.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
        '404':
          description: Not found
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
        '409':
          description: Conflict
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
        '500':
          description: Server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
components:
  schemas:
    CreateBudgetInput:
      type: object
      properties:
        scope:
          $ref: '#/components/schemas/BudgetScopeInput'
        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. Supply exactly one of the credit or
            the deprecated USD limit. At most 8589934591.999999 credits, with at
            most six decimal places. A value of 0 blocks all spending within the
            scope. Provide exactly one of monthly_limit_credits or
            monthly_limit_usd.
          example: 500
        monthly_limit_usd:
          type: number
          minimum: 0
          maximum: 858993459.1999999
          description: >-
            Deprecated. Use `monthly_limit_credits`. Monthly limit in USD,
            converted to credits at the published credit price. At most
            858993459.1999999 USD, the most that converts within the credit
            maximum. A value of 0 blocks all spending within the scope. Provide
            exactly one of monthly_limit_credits or monthly_limit_usd.
          example: 50
          deprecated: true
          x-deprecation:
            register_id: CR-budget-monthly-limit-usd-input
            deprecated_at: '2026-09-29'
            replacement: >-
              monthly_limit_credits on REST request bodies and the MCP
              create_budget and update_budget inputs, or monthlyLimitCredits on
              GraphQL inputs, stored exactly as written.
            rollout_state: announced
            old_semantics: >-
              A monthly limit in USD, converted to credits at the published
              credit price and stored as credits. It is accepted in place of
              monthly_limit_credits, never together with it, and keeps that
              meaning while this entry is open. The monthly_limit_usd member of
              budget responses is not covered by this entry.
            documentation: >-
              https://github.com/veryfront/veryfront-api/blob/main/docs/reference/api-surface-inventory.md
      required:
        - scope
    Budget:
      type: object
      properties:
        id:
          type: string
          format: uuid
        scope:
          $ref: '#/components/schemas/BudgetScope'
        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:
          allOf:
            - $ref: '#/components/schemas/SubjectBudgetStatus'
            - type: object
        created_at:
          type: string
        updated_at:
          type: string
      required:
        - id
        - scope
        - monthly_limit_usd
        - monthly_limit_credits
        - status
        - created_at
        - updated_at
    Problem:
      type: object
      properties:
        cause:
          type: string
          enum:
            - schedule_concurrency_forbidden
            - schedule_fire_in_progress
            - schedule_run_limit_reached
          description: Schedule admission refusal.
        idempotency:
          type: object
          properties:
            state:
              type: string
              enum:
                - in_progress
                - payload_mismatch
                - outcome_unknown
            operation:
              type: string
              minLength: 1
            retryable:
              type: boolean
            retry_after_seconds:
              type:
                - integer
                - 'null'
              minimum: 0
            expires_at:
              type:
                - string
                - 'null'
            recovery:
              type: object
              properties:
                available:
                  type: boolean
                description:
                  type: string
                resource_url:
                  type: string
              required:
                - available
                - description
          required:
            - state
            - operation
            - retryable
            - retry_after_seconds
            - expires_at
          description: Replay status, retry timing, and recovery lookup.
        type:
          type: string
          description: URI reference identifying the problem type
          example: https://api.veryfront.com/errors/validation-failed
        title:
          type: string
          description: Short human-readable summary of the problem
          example: Validation Failed
        status:
          type: integer
          minimum: 100
          maximum: 599
          description: HTTP status code
          example: 400
        code:
          type: string
          description: Stable machine-readable error code
          example: RUN_INVALID_INPUT
        detail:
          type: string
          description: Human-readable explanation specific to this occurrence
          example: The 'email' field must be a valid email address
        instance:
          type: string
          description: URI reference identifying the specific occurrence
          example: /projects/my-project/members
        slug:
          type: string
          description: Stable identifier for the problem type
          example: validation-failed
        category:
          type: string
          enum:
            - AUTH
            - RESOURCE
            - VALIDATION
            - DATABASE
            - SUBSCRIPTION
            - INTEGRATION
            - INTERNAL
          description: API error category
          example: VALIDATION
        suggestion:
          type: string
          description: Suggested action to resolve the problem
          example: >-
            Check the request body and query parameters against the API
            documentation.
        errors:
          type: array
          items:
            type: object
            properties:
              field:
                type: string
                description: Field path that caused the error
                example: email
              message:
                type: string
                description: Error message for this field
                example: Invalid email format
              code:
                type: string
                description: Error code for this field
                example: INVALID_FORMAT
            required:
              - field
              - message
          description: Detailed field-level errors for validation failures
      required:
        - type
        - title
        - status
    BudgetScopeInput:
      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.
      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.
    BudgetScope:
      type: object
      properties:
        kind:
          type: string
          enum:
            - api_key
            - member
            - project
          description: >-
            Budget scope name. API key takes precedence, followed by project
            member, then project. Matches `scope` in a `402`
            `ai-budget-exceeded` response.
        project_id:
          type:
            - string
            - 'null'
          format: uuid
        user_id:
          type:
            - string
            - 'null'
          format: uuid
        api_key_id:
          type:
            - string
            - 'null'
          format: uuid
      required:
        - kind
        - project_id
        - user_id
        - api_key_id
    SubjectBudgetStatus:
      type:
        - object
        - 'null'
      properties:
        used:
          type: number
          description: Credits the subject has spent since the budget month began
        remaining:
          type: number
          description: Credits remaining before the budget rejects further requests.
        resets_at:
          type: string
          description: 'Budget reset time: midnight UTC on the first day of the next month.'
      required:
        - used
        - remaining
        - resets_at
      description: >-
        Usage against the budget for the current month, or null if the subject
        has no budget.
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT or API Key
      description: >-
        Use a JWT bearer token or a Veryfront API key in the `Authorization`
        header.
    apiKeyAuth:
      type: apiKey
      in: header
      name: X-API-Key
      description: Alternative API key header for `vf_<prefix>_<secret>` tokens.

````

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