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

# Create a shared-cost split rule

> Split the spend of one tag value across other values of the same key: evenly, by fixed percents that add up to 100, or in proportion to each target's own spend that day (evenly when none of them has any). effectiveFrom is the first day of the month the rule starts. A pool cannot also be a target, and a value that is a pool or a target of another split of the key cannot take part in this one.



## OpenAPI

````yaml /api-reference/costgraph/openapi.json post /api/v1/tenant/cost/split-rules
openapi: 3.0.0
info:
  description: Read and manage your CostGraph organization, spend, alerts, and settings.
  title: CostGraph API
  contact: {}
  version: '1.0'
servers:
  - url: https://api.costgraph.ai
security: []
tags:
  - name: ai
    x-group: AI
  - name: ai-serving
    x-group: AI serving
  - name: anomalies
    x-group: Anomalies
  - name: auth
    x-group: Auth
  - name: billing
    x-group: Billing
  - name: billing-export
    x-group: Billing export
  - name: budgets
    x-group: Budgets
  - name: ci
    x-group: CI
  - name: compute-recommendations
    x-group: Compute recommendations
  - name: config
    x-group: Config
  - name: context-graph
    x-group: Context graph
  - name: cost
    x-group: Cost
  - name: gpus
    x-group: GPUs
  - name: graphai
    x-group: Graph AI
  - name: integrations
    x-group: Integrations
  - name: invitations
    x-group: Invitations
  - name: kubernetes-clusters
    x-group: Kubernetes clusters
  - name: marketplace
    x-group: Marketplace
  - name: network-requests
    x-group: Network requests
  - name: notifications
    x-group: Notifications
  - name: oauth
    x-group: OAuth
  - name: oauth-clients
    x-group: OAuth clients
  - name: opencost
    x-group: OpenCost
  - name: organization
    x-group: Audit log
  - name: organizations
    x-group: Organizations
  - name: placement-alternatives
    x-group: Placement alternatives
  - name: reports
    x-group: Reports
  - name: service-map
    x-group: Service map
  - name: settings
    x-group: Settings
  - name: sso
    x-group: Single sign-on
  - name: tenants
    x-group: Tenants
  - name: ticketing
    x-group: Ticketing
  - name: user
    x-group: Users
  - name: virtual-machines
    x-group: Virtual machines
  - name: virtual-tags
    x-group: Virtual tags
  - name: workflows
    x-group: Workflows
paths:
  /api/v1/tenant/cost/split-rules:
    post:
      tags:
        - cost
      summary: Create a shared-cost split rule
      description: >-
        Split the spend of one tag value across other values of the same key:
        evenly, by fixed percents that add up to 100, or in proportion to each
        target's own spend that day (evenly when none of them has any).
        effectiveFrom is the first day of the month the rule starts. A pool
        cannot also be a target, and a value that is a pool or a target of
        another split of the key cannot take part in this one.
      parameters:
        - description: Tenant ID
          name: X-CostGraph-Tenant-ID
          in: header
          required: true
          schema:
            type: string
      requestBody:
        $ref: '#/components/requestBodies/costsplit.RuleInput'
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/responses.SuccessResponse'
                  - type: object
                    properties:
                      data:
                        $ref: '#/components/schemas/costsplit.Rule'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/responses.ErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/responses.ErrorResponse'
      security:
        - BearerAuth: []
components:
  requestBodies:
    costsplit.RuleInput:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/costsplit.RuleInput'
      description: Split rule
      required: true
  schemas:
    responses.SuccessResponse:
      type: object
      required:
        - message
        - status
      properties:
        data: {}
        message:
          type: string
          example: some message
        status:
          type: string
          example: success
    costsplit.Rule:
      type: object
      properties:
        createdAt:
          type: string
        effectiveFrom:
          type: string
        id:
          type: string
        includeUnallocated:
          type: boolean
        method:
          type: string
        sourceValue:
          type: string
        tagKey:
          type: string
        targets:
          type: array
          items:
            $ref: '#/components/schemas/costsplit.Target'
        updatedAt:
          type: string
    responses.ErrorResponse:
      type: object
      required:
        - message
        - status
      properties:
        message:
          type: string
          example: some message
        status:
          type: string
          example: error
    costsplit.RuleInput:
      type: object
      required:
        - effectiveFrom
        - method
        - sourceValue
        - tagKey
        - targets
      properties:
        effectiveFrom:
          type: string
        includeUnallocated:
          type: boolean
        method:
          type: string
          enum:
            - even
            - fixed
            - proportional
        sourceValue:
          type: string
          maxLength: 500
        tagKey:
          type: string
          maxLength: 200
        targets:
          type: array
          maxItems: 200
          minItems: 1
          items:
            $ref: '#/components/schemas/costsplit.Target'
    costsplit.Target:
      type: object
      required:
        - value
      properties:
        percent:
          type: string
          example: '33.33'
        value:
          type: string
  securitySchemes:
    BearerAuth:
      description: Enter "Bearer {token}"
      type: apiKey
      name: Authorization
      in: header

````

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