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

# Estimate Cost

> Estimate the cost of running the content creation pipeline. Calculates per-step and per-video costs based on current pricing. Supports comparing multiple workflow profiles (e.g., premium vs. budget) and projecting batch costs. This endpoint is informational only — it does not trigger any pipeline execution or spend credits.



## OpenAPI

````yaml api-reference/openapi/content.json GET /api/content/estimate
openapi: 3.1.0
info:
  title: Recoup API - Content
  description: >-
    API documentation for the Recoup platform - an AI agent platform for the
    music industry
  license:
    name: MIT
  version: 1.0.0
servers:
  - url: https://api.recoupable.dev
security: []
paths:
  /api/content/estimate:
    get:
      description: >-
        Estimate the cost of running the content creation pipeline. Calculates
        per-step and per-video costs based on current pricing. Supports
        comparing multiple workflow profiles (e.g., premium vs. budget) and
        projecting batch costs. This endpoint is informational only — it does
        not trigger any pipeline execution or spend credits.
      parameters:
        - name: lipsync
          in: query
          description: >-
            Which workflow to estimate. `false` for image-to-video, `true` for
            audio-to-video. If omitted, estimates the default image-to-video
            workflow.
          required: false
          schema:
            type: boolean
            example: false
        - name: batch
          in: query
          description: >-
            Number of videos to project costs for. Use this to answer questions
            like "how much would 30 videos cost?"
          required: false
          schema:
            type: integer
            minimum: 1
            default: 1
            example: 1
        - name: compare
          in: query
          description: >-
            When `true`, returns estimates for all available workflow profiles
            (premium, budget, mid) for side-by-side comparison.
          required: false
          schema:
            type: boolean
            default: false
            example: false
      responses:
        '200':
          description: Cost estimate calculated successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContentEstimateResponse'
        '401':
          description: Unauthorized — invalid or missing API key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContentErrorResponse'
      security:
        - apiKeyAuth: []
        - bearerAuth: []
components:
  schemas:
    ContentEstimateResponse:
      type: object
      required:
        - workflows
      description: >-
        Cost estimates based on current pricing. When `compare` is `false`, the
        `workflows` array contains a single entry. When `true`, it contains all
        available profiles.
      properties:
        workflows:
          type: array
          description: One or more workflow cost breakdowns
          items:
            $ref: '#/components/schemas/ContentWorkflowEstimate'
        comparison:
          $ref: '#/components/schemas/ContentEstimateComparison'
          description: >-
            Side-by-side summary. Only present when `compare` is `true` and
            multiple workflows are returned.
        batch:
          type: object
          description: Batch cost projection. Only present when `batch` > 1.
          properties:
            count:
              type: integer
              description: Number of videos in the batch
              example: 30
            cheapestTotal:
              type: number
              format: float
              description: Total cost for the batch using the cheapest workflow
              example: 5.4
            mostExpensiveTotal:
              type: number
              format: float
              description: Total cost for the batch using the most expensive workflow
              example: 28.5
    ContentErrorResponse:
      type: object
      required:
        - error
      properties:
        error:
          type: string
          description: Error message describing what went wrong
          example: Unauthorized
    ContentWorkflowEstimate:
      type: object
      required:
        - name
        - perVideo
        - steps
      description: Cost breakdown for a single workflow profile.
      properties:
        name:
          type: string
          description: Workflow profile name
          example: Current (image-to-video)
        perVideo:
          type: number
          format: float
          description: Total estimated cost per video in USD
          example: 0.82
        steps:
          type: array
          description: Per-step cost breakdown showing where the money goes
          items:
            $ref: '#/components/schemas/ContentStepEstimate'
        costBreakdown:
          type: object
          description: Summary of the biggest cost driver
          properties:
            mostExpensiveStep:
              type: string
              description: Name of the step that costs the most
              example: Generate Video
            mostExpensivePercent:
              type: integer
              description: Percentage of total cost from the most expensive step
              example: 68
    ContentEstimateComparison:
      type: object
      required:
        - cheapest
        - cheapestPerVideo
        - mostExpensive
        - mostExpensivePerVideo
        - savingsPercent
      description: Summary comparing the cheapest and most expensive workflow options.
      properties:
        cheapest:
          type: string
          description: Name of the cheapest workflow profile
          example: Budget (no upscale, LTX video)
        cheapestPerVideo:
          type: number
          format: float
          description: Cost per video for the cheapest workflow
          example: 0.18
        mostExpensive:
          type: string
          description: Name of the most expensive workflow profile
          example: Current (audio-to-video)
        mostExpensivePerVideo:
          type: number
          format: float
          description: Cost per video for the most expensive workflow
          example: 0.95
        savingsPercent:
          type: integer
          description: Percentage savings between the cheapest and most expensive workflows
          example: 81
    ContentStepEstimate:
      type: object
      required:
        - name
        - model
        - cost
        - note
      description: Cost details for a single pipeline step.
      properties:
        name:
          type: string
          description: Pipeline step name
          example: Generate Image
        model:
          type: string
          description: The AI model or service used for this step
          example: fal-ai/nano-banana-pro/edit
        cost:
          type: number
          format: float
          description: Estimated cost for this step in USD
          example: 0.04
        unit:
          type: string
          description: >-
            Billing unit type (e.g., `images`, `seconds`, `megapixels`). Not
            present for free steps.
          example: images
        unitPrice:
          type: number
          format: float
          description: Price per billing unit in USD. Not present for free steps.
          example: 0.04
        note:
          type: string
          description: Human-readable calculation detail
          example: 1 call
  securitySchemes:
    apiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: Your Recoup API key. [Learn more](/quickstart#api-keys).
    bearerAuth:
      type: http
      scheme: bearer

````