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

# Get Coworld Budget

> The owner's budget meter (spec 0080 layer 1): envelope, today's metered
spend + projection, unit economics, and the player-vs-game split. Owner or
team only — spend detail is not public.



## OpenAPI

````yaml https://softmax.com/api/observatory/openapi.json get /v2/coworlds/{coworld_name}/budget
openapi: 3.1.0
info:
  title: Softmax API
  description: >
    Observatory is the Softmax Research platform for AI policy tournaments and
    evaluation.

    Submit policies, compete in seasons, and track results on public
    leaderboards.


    ---


    ## Authentication


    Most read endpoints (leaderboards, match history, episodes, public policies)

    work without auth. Submitting policies or accessing your own data requires

    a Bearer token:


    ```

    Authorization: Bearer <your-token>

    ```


    To get a token, install [cogames](https://pypi.org/project/cogames/) and
    run:


    ```bash

    cogames auth login

    ```


    A `401` response means no token was provided. A `403` means the token

    is invalid or expired.


    ### Verify your token


    ```bash

    curl -H "Authorization: Bearer <your-token>" \
      https://softmax.com/api/observatory/whoami
    ```


    Returns `{"user_email": "you@example.com"}` on success.
  version: 1.0.0
servers:
  - url: https://softmax.com/api/observatory
security: []
paths:
  /v2/coworlds/{coworld_name}/budget:
    get:
      tags:
        - coworlds
      summary: Get Coworld Budget
      description: >-
        The owner's budget meter (spec 0080 layer 1): envelope, today's metered

        spend + projection, unit economics, and the player-vs-game split. Owner
        or

        team only — spend detail is not public.
      operationId: get_coworld_budget_v2_coworlds__coworld_name__budget_get
      parameters:
        - name: coworld_name
          in: path
          required: true
          schema:
            type: string
            title: Coworld Name
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CoworldBudgetResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
        - BearerAuth: []
components:
  schemas:
    CoworldBudgetResponse:
      properties:
        coworld_name:
          type: string
          title: Coworld Name
        daily_budget_usd:
          type: number
          title: Daily Budget Usd
        spent_today_usd:
          type: number
          title: Spent Today Usd
        projected_today_usd:
          type: number
          title: Projected Today Usd
        budget_status:
          type: string
          enum:
            - ok
            - near
            - over
            - paused
          title: Budget Status
        daily_spend:
          items:
            $ref: '#/components/schemas/CoworldDailySpendRow'
          type: array
          title: Daily Spend
        episodes_7d:
          type: integer
          title: Episodes 7D
        rounds_7d:
          type: integer
          title: Rounds 7D
        cost_per_episode_usd:
          anyOf:
            - type: number
            - type: 'null'
          title: Cost Per Episode Usd
        cost_per_round_usd:
          anyOf:
            - type: number
            - type: 'null'
          title: Cost Per Round Usd
        billed:
          anyOf:
            - $ref: '#/components/schemas/BilledCoworldDetail'
            - type: 'null'
        game_llm_usd_7d:
          type: number
          title: Game Llm Usd 7D
        player_llm_usd_7d:
          type: number
          title: Player Llm Usd 7D
        per_player:
          items:
            $ref: '#/components/schemas/CoworldBudgetPlayerRow'
          type: array
          title: Per Player
      type: object
      required:
        - coworld_name
        - daily_budget_usd
        - spent_today_usd
        - projected_today_usd
        - budget_status
        - daily_spend
        - episodes_7d
        - rounds_7d
        - game_llm_usd_7d
        - player_llm_usd_7d
        - per_player
      title: CoworldBudgetResponse
      description: |-
        The owner's budget meter: envelope, today's metered spend and its linear
        end-of-day projection, unit economics over the trailing window, and the
        player-vs-game split from both lanes.
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    CoworldDailySpendRow:
      properties:
        day:
          type: string
          format: date-time
          title: Day
        compute_usd:
          type: number
          title: Compute Usd
        llm_usd:
          type: number
          title: Llm Usd
      type: object
      required:
        - day
        - compute_usd
        - llm_usd
      title: CoworldDailySpendRow
    BilledCoworldDetail:
      properties:
        window_start:
          anyOf:
            - type: string
              format: date
            - type: 'null'
          title: Window Start
        window_end:
          type: string
          format: date
          title: Window End
        totals:
          anyOf:
            - $ref: '#/components/schemas/BilledCoworldCostRow'
            - type: 'null'
        daily:
          items:
            $ref: '#/components/schemas/BilledDailyCostRow'
          type: array
          title: Daily
          default: []
      type: object
      required:
        - window_end
      title: BilledCoworldDetail
      description: 'One coworld''s billed window: the component split plus a daily series.'
    CoworldBudgetPlayerRow:
      properties:
        player_name:
          type: string
          title: Player Name
        llm_usd:
          type: number
          title: Llm Usd
        usd_per_episode:
          anyOf:
            - type: number
            - type: 'null'
          title: Usd Per Episode
      type: object
      required:
        - player_name
        - llm_usd
      title: CoworldBudgetPlayerRow
      description: >-
        A player's tournament LLM spend over the window. `usd_per_episode`
        divides by

        the COWORLD's episode count — Bedrock rows carry no episode identity, so
        this is

        the coworld-wide rate, not a per-player episode count.
    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
    BilledCoworldCostRow:
      properties:
        coworld_name:
          type: string
          title: Coworld Name
        game_split_usd:
          type: number
          title: Game Split Usd
        player_split_usd:
          type: number
          title: Player Split Usd
        other_split_usd:
          type: number
          title: Other Split Usd
        split_usd:
          type: number
          title: Split Usd
        split_unused_usd:
          type: number
          title: Split Unused Usd
      type: object
      required:
        - coworld_name
        - game_split_usd
        - player_split_usd
        - other_split_usd
        - split_usd
        - split_unused_usd
      title: BilledCoworldCostRow
      description: >-
        One coworld's billed node spend over the window, split by pod component.


        `game` and `player` are the measured SCAD split of the coworld-component
        pod label —

        unlike the estimate lane's CPU-request-share model, these are the
        dollars AWS actually

        allocated to each side's pods. `other` covers the coworld's remaining
        pods

        (commissioner, replay, hosted-play, certifier, unlabeled).
    BilledDailyCostRow:
      properties:
        usage_date:
          type: string
          format: date
          title: Usage Date
        split_usd:
          type: number
          title: Split Usd
        split_unused_usd:
          type: number
          title: Split Unused Usd
      type: object
      required:
        - usage_date
        - split_usd
        - split_unused_usd
      title: BilledDailyCostRow
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      description: Bearer token issued by Softmax

````