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

# Recalculate log costs

> Starts an asynchronous background job that recalculates log costs in batches.
The returned payload is a job status object that can be polled via the status endpoint.

Recalculation updates the cost fields on matching log records only. It does not
retroactively debit, credit, or otherwise adjust governance budget usage. Governance
budgets retain the usage recorded when each request was originally processed.




## OpenAPI

````yaml /openapi/openapi.json post /api/logs/recalculate-cost
openapi: 3.1.0
info:
  title: Bifrost API
  description: >
    Bifrost HTTP Transport API for AI model inference and gateway management.


    This API provides a unified interface for interacting with multiple AI
    providers

    including OpenAI, Anthropic, Bedrock, Gemini, and more through a single API,

    along with comprehensive management APIs for configuring and monitoring the
    gateway.


    ## API Structure


    ### Unified Inference API (`/v1/*`)

    The primary API using Bifrost's unified format. Model parameters use the
    format

    `provider/model` (e.g., `openai/gpt-4`, `anthropic/claude-3-opus`).


    ### Async Inference API (`/v1/async/*`)

    Submit inference requests for asynchronous execution. Returns a job ID
    immediately

    and allows polling for results. Supports all inference types except batches,
    files,

    and containers.


    ### Provider Integration APIs

    Native provider-format APIs for drop-in compatibility:

    - `/openai/*` - OpenAI-compatible API

    - `/anthropic/*` - Anthropic-compatible API

    - `/genai/*` - Google GenAI (Gemini) compatible API

    - `/bedrock/*` - AWS Bedrock compatible API

    - `/cohere/*` - Cohere compatible API


    ### Framework Integration APIs

    Multi-provider proxy endpoints for AI frameworks:

    - `/litellm/*` - LiteLLM proxy with all provider formats

    - `/langchain/*` - LangChain compatible endpoints

    - `/pydanticai/*` - PydanticAI compatible endpoints


    ### Management APIs (`/api/*`)

    APIs for managing and monitoring the Bifrost gateway:

    - `/api/config` - Configuration management

    - `/api/providers` - Provider and API key management

    - `/api/plugins` - Plugin management

    - `/api/governance/*` - Virtual keys, teams, customers, budgets, rate
    limits, routing rules, and pricing overrides

    - `/api/logs` - Log search and analytics

    - `/api/mcp/*` - MCP (Model Context Protocol) client management

    - `/api/session/*` - Authentication and session management

    - `/api/cache/*` - Cache management

    - `/health` - Health check endpoint


    ## Fallbacks

    Requests can include fallback models that will be tried if the primary model
    fails.
  version: 1.0.0
  contact:
    name: Contact Us
    url: https://getmaxim.ai/bifrost
  license:
    name: Apache 2.0
    url: https://opensource.org/licenses/Apache-2.0
servers:
  - url: '{baseUrl}'
    description: Your Bifrost instance
    variables:
      baseUrl:
        default: http://localhost:8080
        description: Base URL of your Bifrost instance (e.g. https://bifrost.mycompany.com)
security:
  - BearerAuth: []
  - BasicAuth: []
  - ApiKeyAuth: []
tags:
  - name: Models
    description: Model listing and information
  - name: Chat Completions
    description: Chat-based text generation
  - name: Text Completions
    description: Text completion generation
  - name: Responses
    description: OpenAI Responses API compatible endpoints
  - name: OCR
    description: Optical character recognition for documents and images
  - name: Rerank
    description: Document reranking by relevance to a query
  - name: Embeddings
    description: Text embedding generation
  - name: Images
    description: Image generations, editing, and variations
  - name: Videos
    description: Video generation and management
  - name: Audio
    description: Speech synthesis and transcription
  - name: Count Tokens
    description: Token counting utilities
  - name: Batch
    description: Batch processing operations
  - name: Files
    description: File management operations
  - name: Containers
    description: Container management operations
  - name: Async Jobs
    description: Asynchronous job submission and retrieval endpoints
  - name: Realtime
    description: Realtime WebSocket and WebRTC endpoints
  - name: OpenAI Integration
    description: OpenAI-compatible API endpoints (/openai/*)
  - name: Azure Integration
    description: Azure OpenAI integration endpoints
  - name: Anthropic Integration
    description: Anthropic-compatible API endpoints (/anthropic/*)
  - name: GenAI Integration
    description: Google GenAI (Gemini) compatible API endpoints (/genai/*)
  - name: Bedrock Integration
    description: AWS Bedrock compatible API endpoints (/bedrock/*)
  - name: Cohere Integration
    description: Cohere compatible API endpoints (/cohere/*)
  - name: LiteLLM Integration
    description: LiteLLM proxy endpoints with multi-provider support (/litellm/*)
  - name: LangChain Integration
    description: LangChain compatible endpoints with multi-provider support (/langchain/*)
  - name: PydanticAI Integration
    description: >-
      PydanticAI compatible endpoints with multi-provider support
      (/pydanticai/*)
  - name: Health
    description: Health check endpoints
  - name: Configuration
    description: Configuration management endpoints
  - name: Session
    description: Session and authentication endpoints
  - name: Providers
    description: Provider management endpoints
  - name: Plugins
    description: Plugin management endpoints
  - name: MCP
    description: Model Context Protocol endpoints
  - name: Governance
    description: Virtual keys, teams, and customers management
  - name: Routing
    description: Routing rules and complexity analyzer configuration
  - name: Logging
    description: Log search and management endpoints
  - name: Cache
    description: Cache management endpoints
  - name: Vault
    description: Vault secret management endpoints
  - name: Skills
    description: Skills Repository management, marketplace, and download endpoints
  - name: Audit Logs
    description: >-
      CADF-compliant audit log search, export, and signature verification
      endpoints
  - name: Webhooks
    description: Webhook endpoint management and signed async-job delivery history
  - name: Notifications
    description: >-
      Role-targeted dashboard notifications, delivered over the dashboard
      WebSocket
paths:
  /api/logs/recalculate-cost:
    post:
      tags:
        - Logging
      summary: Recalculate log costs
      description: >
        Starts an asynchronous background job that recalculates log costs in
        batches.

        The returned payload is a job status object that can be polled via the
        status endpoint.


        Recalculation updates the cost fields on matching log records only. It
        does not

        retroactively debit, credit, or otherwise adjust governance budget
        usage. Governance

        budgets retain the usage recorded when each request was originally
        processed.
      operationId: recalculateLogCosts
      requestBody:
        required: false
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RecalculateCostRequest'
      responses:
        '202':
          description: Cost recalculation job accepted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RecalculateCostResponse'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BifrostError'
        '409':
          description: A recalculation job is already running
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RecalculateCostResponse'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BifrostError'
        '503':
          description: Background job runner is not available
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ManagementErrorResponse'
      security:
        - ManagementBearerAuth: []
        - BasicAuth: []
components:
  schemas:
    RecalculateCostRequest:
      type: object
      description: Recalculate cost request
      properties:
        filters:
          allOf:
            - type: object
              description: Log search filters
              properties:
                project_ids:
                  type: array
                  items:
                    type: string
                  description: >-
                    Governance projects to narrow to. A request is scoped to at
                    most one project, so this filter selects rows rather than
                    intersecting sets.
                providers:
                  type: array
                  items:
                    type: string
                models:
                  type: array
                  items:
                    type: string
                status:
                  type: array
                  items:
                    type: string
                objects:
                  type: array
                  items:
                    type: string
                selected_key_ids:
                  type: array
                  items:
                    type: string
                virtual_key_ids:
                  type: array
                  items:
                    type: string
                routing_rule_ids:
                  type: array
                  items:
                    type: string
                routing_engine_used:
                  type: array
                  items:
                    type: string
                  description: >-
                    Filter by routing engine (routing-rule, governance, or
                    loadbalancing)
                start_time:
                  type: string
                  format: date-time
                end_time:
                  type: string
                  format: date-time
                min_latency:
                  type: number
                max_latency:
                  type: number
                min_tokens:
                  type: integer
                max_tokens:
                  type: integer
                min_cost:
                  type: number
                max_cost:
                  type: number
                missing_cost_only:
                  type: boolean
                content_search:
                  type: string
            - type: object
              properties:
                period:
                  type: string
                  enum:
                    - 1h
                    - 6h
                    - 24h
                    - 7d
                    - 30d
                  description: >-
                    Relative time window resolved when the job is created. When
                    recognized, it takes precedence over start_time and
                    end_time.
    RecalculateCostResponse:
      type: object
      description: Recalculate cost job status
      properties:
        id:
          type: string
          description: Background job ID
        status:
          type: string
          description: Current job status
          enum:
            - pending
            - running
            - completed
            - failed
            - cancelled
            - idle
        total:
          type: integer
          format: int64
          description: Total matching logs queued for recalculation
        processed:
          type: integer
          format: int64
          description: Logs processed so far
        updated:
          type: integer
          format: int64
          description: Logs updated with new costs
        skipped:
          type: integer
          format: int64
          description: Logs skipped during processing
        unpriceable:
          type: integer
          format: int64
          description: >-
            Subset of skipped logs whose pricing inputs could not be recovered,
            so their existing cost was left unchanged.
        message:
          type: string
          description: Optional progress message
        last_error:
          type: string
          description: Last error encountered by the job
        started_at:
          type: string
          format: date-time
          description: Job start time
        updated_at:
          type: string
          format: date-time
          description: Last status update time
    BifrostError:
      type: object
      description: Error response from Bifrost
      properties:
        event_id:
          type: string
        type:
          type: string
        is_bifrost_error:
          type: boolean
        status_code:
          type: integer
        error:
          $ref: '#/components/schemas/ErrorField'
        extra_fields:
          $ref: '#/components/schemas/BifrostErrorExtraFields'
    ManagementErrorResponse:
      $ref: '#/components/schemas/BifrostError'
      type: object
      description: Error response
    ErrorField:
      type: object
      properties:
        type:
          type: string
        code:
          type: string
        message:
          type: string
        param:
          type: string
        event_id:
          type: string
    BifrostErrorExtraFields:
      type: object
      properties:
        provider:
          $ref: '#/components/schemas/ModelProvider'
        model_requested:
          type: string
        request_type:
          type: string
    ModelProvider:
      type: string
      description: AI model provider identifier
      enum:
        - anthropic
        - azure
        - bedrock
        - bedrock_mantle
        - cerebras
        - cohere
        - deepseek
        - gemini
        - groq
        - mistral
        - ollama
        - opencode-go
        - opencode-zen
        - openai
        - parasail
        - perplexity
        - sgl
        - vertex
        - openrouter
        - elevenlabs
        - huggingface
        - nebius
        - xai
        - replicate
        - vllm
        - runway
        - runware
        - fireworks
        - sarvam
        - wafer
        - databricks
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      description: >
        Bearer token authentication. Use your provider API key or Bifrost
        authentication token.

        Virtual keys (prefixed with `sk-bf-`) can also be passed here.
    BasicAuth:
      type: http
      scheme: basic
      description: >
        Basic authentication using the Bifrost admin username and password

        (`auth_config.admin_username` / `auth_config.admin_password`).

        Accepted on management APIs (`/api/*`, `/metrics`, `/ws`) only - the
        inference

        middleware never validates Basic credentials.
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: |
        API key authentication via the `x-api-key` header.
        Virtual keys (prefixed with `sk-bf-`) can also be passed here.
    ManagementBearerAuth:
      type: http
      scheme: bearer
      description: >
        Management API authentication for `/api/*` endpoints. Use the
        `Authorization` header

        with `Bearer <token>`, where `<token>` is one of:


        - a Bifrost management API key,

        - a dashboard session token issued by `POST /api/session/login`,

        - base64 of `<admin-username>:<admin-password>` (legacy equivalent of
        `BasicAuth`).


        Virtual keys (`sk-bf-*`) and the `x-api-key` header are not accepted on
        management APIs -

        the sole exception is `GET /api/governance/virtual-keys/quota`, which is
        virtual-key-only.

````