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

> ## Agent Instructions
> This site documents two API families. Choose the family before generating integration code and keep its request fields, billing, statuses, responses, and webhooks together.
> SwitchX API: POST /v1/switchx/generations; use /quickstart and /authentication. Completed generation files are under output.
> Enterprise API: POST /v1/products/{product}/jobs and GET /v1/product-jobs/{job_id}; use /enterprise/quickstart and /products. Check /enterprise for current access requirements. Completed product files are under outputs.
> For product jobs, fetch model-specific input_schema from GET /v1/products/{product}/models. OpenAPI defines the common job response; product guides show illustrative completed outputs. Do not treat output examples as exhaustive schemas.
> SwitchX 2.0 Finish uses the separate switchx_finish product and model_id switchx-2.0. Follow /products/switchx-finish: pass inputs.parent_job_id (a completed Standard switchx product generation's public dap_ ID owned by the same key owner, organization, and team) and inputs.target_resolution (1080 or 2160), without uploading media. Fast results, Finish results, and legacy SwitchX API generations cannot be parents. Estimate the transition, then submit and poll the new child ID; result files are under outputs.
> For product APIs, authenticate with an Organization API Key in x-api-key and keep the same organization and X-Beeble-Team-Id context for uploads, estimates, submissions, and reads. Use Beeble Cloud credits; product routes do not support USD.
> Follow /enterprise/llms-txt for the product API workflow: discover products and models, upload media, estimate credits, submit with an idempotency_key, and poll or receive webhooks. On an uncertain submission, retry the same body and key; do not create a replacement job.
> Product-job success is status=success; stop polling on failed, cancelled, or credit_required. Use the chosen product guide for completed response examples and download fields. Refer to /enterprise/errors, /enterprise/rate-limits, /guides/billing, and /guides/jobs for failures, limits, and refunds.

# Estimate a product job without creating or charging it

> Quote credits without charging. Set max_credits on submission to cap spend.

For switchx_finish, use model_id=switchx-2.0 and inputs containing
parent_job_id (a public dap_ SwitchX job ID) and target_resolution (1080 or
2160). The service quotes the completed Standard parent's transition.



## OpenAPI

````yaml https://api.beeble.ai/developer-api-docs/openapi.json post /v1/products/{product}/estimate
openapi: 3.1.0
info:
  title: Beeble Developer API
  description: API for SwitchX video-to-video compositing and media uploads.
  version: 1.0.0
servers:
  - url: https://api.beeble.ai
    description: Production
security:
  - apiKeyAuth: []
paths:
  /v1/products/{product}/estimate:
    post:
      tags:
        - products
      summary: Estimate a product job without creating or charging it
      description: >-
        Quote credits without charging. Set max_credits on submission to cap
        spend.


        For switchx_finish, use model_id=switchx-2.0 and inputs containing

        parent_job_id (a public dap_ SwitchX job ID) and target_resolution (1080
        or

        2160). The service quotes the completed Standard parent's transition.
      operationId: estimate_product_job_v1_products__product__estimate_post
      parameters:
        - name: product
          in: path
          required: true
          schema:
            type: string
            title: Product
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProductEstimateRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProductEstimateResponse'
components:
  schemas:
    ProductEstimateRequest:
      properties:
        model_id:
          type: string
          maxLength: 256
          minLength: 1
          title: Model Id
        inputs:
          additionalProperties: true
          type: object
          title: Inputs
        billing_unit:
          type: string
          enum:
            - usd
            - credits
          title: Billing Unit
          description: These product endpoints bill organization credits.
          default: credits
      additionalProperties: false
      type: object
      required:
        - model_id
      title: ProductEstimateRequest
    ProductEstimateResponse:
      properties:
        product:
          type: string
          title: Product
        model_id:
          type: string
          title: Model Id
        organization_id:
          type: string
          title: Organization Id
        billing_unit:
          type: string
          const: credits
          title: Billing Unit
          default: credits
        estimated_credits:
          type: integer
          title: Estimated Credits
        source_metadata:
          anyOf:
            - $ref: '#/components/schemas/ProductSourceMetadata'
            - type: 'null'
      type: object
      required:
        - product
        - model_id
        - organization_id
        - estimated_credits
      title: ProductEstimateResponse
    ProductSourceMetadata:
      properties:
        generation_type:
          type: string
          enum:
            - image
            - video
          title: Generation Type
        width:
          type: integer
          title: Width
        height:
          type: integer
          title: Height
        frame_count:
          type: integer
          title: Frame Count
        frame_count_exact:
          type: boolean
          title: Frame Count Exact
        fps:
          anyOf:
            - type: number
            - type: 'null'
          title: Fps
        duration:
          anyOf:
            - type: number
            - type: 'null'
          title: Duration
      type: object
      required:
        - generation_type
        - width
        - height
        - frame_count
        - frame_count_exact
      title: ProductSourceMetadata
  securitySchemes:
    apiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: Your [Developer API key](/api/authentication).

````