APIClaw budget management API

The budget management API from APIClaw — 7 operation(s) for budget management.

Operations 7

GET /management/v1/budgets List Budgets #
POST /budget/new New Budget #
POST /budget/update Update Budget #
POST /budget/info Info Budget #
GET /budget/settings Budget Settings #
GET /budget/list List Budget #
POST /budget/delete Delete Budget #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/apiclaw:apiclaw-budget-management-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

apiclaw-budget-management-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: LiteLLM budget management API
  description: 'Proxy Server to call 100+ LLMs in the OpenAI format. **Customize Swagger Docs**


    👉 ```LiteLLM Admin Panel on /ui```. Create, Edit Keys with SSO. Having issues? Try ```Fallback Login```


    💸 ```LiteLLM Model Cost Map```.


    🔎 ```LiteLLM Model Hub```. See available models on the proxy. **Docs**'
  version: 1.102.1
tags:
- name: budget management
paths:
  /management/v1/budgets:
    get:
      tags:
      - budget management
      summary: List Budgets
      description: 'The budgets defined on this proxy, paged, sortable and filterable, for the

        Budgets page.


        Readable by a proxy admin or an admin viewer; anyone else is refused 403. The

        older `/budget/list` answers with the whole table as a bare array and has no

        way to page, sort or filter it.


        `sort` takes a comma-separated list of `budget_id`, `max_budget`, `tpm_limit`,

        `rpm_limit` or `created_at`, each optionally prefixed with `-` for descending,

        and defaults to `-created_at`. `budget_id` is appended to every sort as the

        tiebreaker. `q` is a case-insensitive substring match on `budget_id`.

        `page_size` defaults to 50 and is capped at 100. Filters are

        `filter[budget_duration][in|is_null]`, `filter[max_budget][gte|lte|is_null]`

        and `filter[created_at][gte|lte]`.


        Example curl:

        ```

        curl --location --globoff ''http://0.0.0.0:4000/management/v1/budgets?sort=-max_budget&filter[budget_duration][in]=7d,30d&page_size=25'' --header ''Authorization: Bearer sk-1234''

        ```'
      operationId: list_budgets_management_v1_budgets_get
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListResponse_BudgetListItem_'
      security:
      - APIKeyHeader: []
  /budget/new:
    post:
      tags:
      - budget management
      summary: New Budget
      description: 'Create a new budget object. Can apply this to teams, orgs, end-users, keys.


        Parameters:

        - budget_duration: Optional[str] - Budget reset period ("30d", "1h", etc.)

        - budget_id: Optional[str] - The id of the budget. If not provided, a new id will be generated.

        - max_budget: Optional[float] - The max budget for the budget.

        - soft_budget: Optional[float] - The soft budget for the budget.

        - max_parallel_requests: Optional[int] - The max number of parallel requests for the budget.

        - tpm_limit: Optional[int] - The tokens per minute limit for the budget.

        - rpm_limit: Optional[int] - The requests per minute limit for the budget.

        - model_max_budget: Optional[dict] - Specify max budget for a given model. Example: {"openai/gpt-4o-mini": {"max_budget": 100.0, "budget_duration": "1d", "tpm_limit": 100000, "rpm_limit": 100000}}

        - budget_reset_at: Optional[datetime] - Datetime when the initial budget is reset. Default is now.'
      operationId: new_budget_budget_new_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BudgetNewRequest'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
      - APIKeyHeader: []
  /budget/update:
    post:
      tags:
      - budget management
      summary: Update Budget
      description: 'Update an existing budget object.


        Parameters:

        - budget_duration: Optional[str] - Budget reset period ("30d", "1h", etc.)

        - budget_id: Optional[str] - The id of the budget. If not provided, a new id will be generated.

        - max_budget: Optional[float] - The max budget for the budget.

        - soft_budget: Optional[float] - The soft budget for the budget.

        - max_parallel_requests: Optional[int] - The max number of parallel requests for the budget.

        - tpm_limit: Optional[int] - The tokens per minute limit for the budget.

        - rpm_limit: Optional[int] - The requests per minute limit for the budget.

        - model_max_budget: Optional[dict] - Specify max budget for a given model. Example: {"openai/gpt-4o-mini": {"max_budget": 100.0, "budget_duration": "1d", "tpm_limit": 100000, "rpm_limit": 100000}}

        - budget_reset_at: Optional[datetime] - Update the Datetime when the budget was last reset.'
      operationId: update_budget_budget_update_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BudgetNewRequest'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
      - APIKeyHeader: []
  /budget/info:
    post:
      tags:
      - budget management
      summary: Info Budget
      description: 'Get the budget id specific information


        Parameters:

        - budgets: List[str] - The list of budget ids to get information for'
      operationId: info_budget_budget_info_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BudgetRequest'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
      - APIKeyHeader: []
  /budget/settings:
    get:
      tags:
      - budget management
      summary: Budget Settings
      description: 'Get list of configurable params + current value for a budget item + description of each field


        Used on Admin UI.


        Query Parameters:

        - budget_id: str - The budget id to get information for'
      operationId: budget_settings_budget_settings_get
      security:
      - APIKeyHeader: []
      parameters:
      - name: budget_id
        in: query
        required: true
        schema:
          type: string
          title: Budget Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /budget/list:
    get:
      tags:
      - budget management
      summary: List Budget
      description: List all the created budgets in proxy db. Used on Admin UI.
      operationId: list_budget_budget_list_get
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
      security:
      - APIKeyHeader: []
  /budget/delete:
    post:
      tags:
      - budget management
      summary: Delete Budget
      description: 'Delete budget


        Parameters:

        - id: str - The budget id to delete'
      operationId: delete_budget_budget_delete_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BudgetDeleteRequest'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
      - APIKeyHeader: []
components:
  schemas:
    BudgetConfig:
      properties:
        max_budget:
          anyOf:
          - type: number
          - type: 'null'
          title: Max Budget
        budget_duration:
          anyOf:
          - type: string
          - type: 'null'
          title: Budget Duration
        tpm_limit:
          anyOf:
          - type: integer
          - type: 'null'
          title: Tpm Limit
        rpm_limit:
          anyOf:
          - type: integer
          - type: 'null'
          title: Rpm Limit
      type: object
      title: BudgetConfig
    BudgetRequest:
      properties:
        budgets:
          items:
            type: string
          type: array
          title: Budgets
      type: object
      required:
      - budgets
      title: BudgetRequest
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
            - type: string
            - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
        input:
          title: Input
        ctx:
          type: object
          title: Context
      type: object
      required:
      - loc
      - msg
      - type
      title: ValidationError
    BudgetListItem:
      properties:
        budget_id:
          type: string
          title: Budget Id
        max_budget:
          anyOf:
          - type: number
          - type: 'null'
          title: Max Budget
        soft_budget:
          anyOf:
          - type: number
          - type: 'null'
          title: Soft Budget
        tpm_limit:
          anyOf:
          - type: integer
          - type: 'null'
          title: Tpm Limit
        rpm_limit:
          anyOf:
          - type: integer
          - type: 'null'
          title: Rpm Limit
        budget_duration:
          anyOf:
          - type: string
          - type: 'null'
          title: Budget Duration
        budget_reset_at:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: Budget Reset At
        created_at:
          type: string
          format: date-time
          title: Created At
        updated_at:
          type: string
          format: date-time
          title: Updated At
      type: object
      required:
      - budget_id
      - created_at
      - updated_at
      title: BudgetListItem
      description: 'One budget as the Budgets page reads it, and as it comes back off the table.


        Validating the raw row through here is what makes `tpm_limit` / `rpm_limit`

        numbers: they are `BigInt?` in the schema, which the query engine hands back as

        decimal strings, and a quoted "60000" breaks arithmetic in the dashboard.'
    BudgetNewRequest:
      properties:
        budget_id:
          anyOf:
          - type: string
          - type: 'null'
          title: Budget Id
          description: The unique budget id.
        max_budget:
          anyOf:
          - type: number
          - type: 'null'
          title: Max Budget
          description: Requests will fail if this budget (in USD) is exceeded.
        soft_budget:
          anyOf:
          - type: number
          - type: 'null'
          title: Soft Budget
          description: Requests will NOT fail if this is exceeded. Will fire alerting though.
        max_parallel_requests:
          anyOf:
          - type: integer
          - type: 'null'
          title: Max Parallel Requests
          description: Max concurrent requests allowed for this budget id.
        tpm_limit:
          anyOf:
          - type: integer
          - type: 'null'
          title: Tpm Limit
          description: Max tokens per minute, allowed for this budget id.
        rpm_limit:
          anyOf:
          - type: integer
          - type: 'null'
          title: Rpm Limit
          description: Max requests per minute, allowed for this budget id.
        budget_duration:
          anyOf:
          - type: string
          - type: 'null'
          title: Budget Duration
          description: Max duration budget should be set for (e.g. '1hr', '1d', '28d')
        model_max_budget:
          anyOf:
          - additionalProperties:
              $ref: '#/components/schemas/BudgetConfig'
            type: object
          - type: 'null'
          title: Model Max Budget
          description: 'Max budget for each model (e.g. {''gpt-4o'': {''max_budget'': ''0.0000001'', ''budget_duration'': ''1d'', ''tpm_limit'': 1000, ''rpm_limit'': 1000}})'
        budget_reset_at:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: Budget Reset At
          description: Datetime when the budget is reset
      type: object
      title: BudgetNewRequest
    ListResponse_BudgetListItem_:
      properties:
        data:
          items:
            $ref: '#/components/schemas/BudgetListItem'
          type: array
          title: Data
        meta:
          $ref: '#/components/schemas/ListMeta'
        links:
          $ref: '#/components/schemas/ListLinks'
      type: object
      required:
      - data
      - meta
      - links
      title: ListResponse[BudgetListItem]
    ListMeta:
      properties:
        total_count:
          type: integer
          title: Total Count
        page:
          type: integer
          title: Page
        page_size:
          type: integer
          title: Page Size
        total_pages:
          type: integer
          title: Total Pages
      type: object
      required:
      - total_count
      - page
      - page_size
      - total_pages
      title: ListMeta
      description: 'Page-mode counterpart to `PageMeta`: an entity list pays for the COUNT(*) so the table can show a page count.'
    BudgetDeleteRequest:
      properties:
        id:
          type: string
          title: Id
      type: object
      required:
      - id
      title: BudgetDeleteRequest
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    ListLinks:
      properties:
        self:
          type: string
          title: Self
        first:
          type: string
          title: First
        prev:
          anyOf:
          - type: string
          - type: 'null'
          title: Prev
        next:
          anyOf:
          - type: string
          - type: 'null'
          title: Next
        last:
          type: string
          title: Last
      type: object
      required:
      - self
      - first
      - last
      title: ListLinks
      description: Page-mode counterpart to `PageLinks`. `first`/`last` are knowable here because the total count is.
  securitySchemes:
    APIKeyHeader:
      type: apiKey
      description: Bearer token
      in: header
      name: x-litellm-api-key