> ## 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.

# Create a product job

> Organization credits by default. Reuse the same idempotency key on an uncertain response.

switchx_finish creates a higher-resolution child of a completed SwitchX 2.0
Standard product job. Supply model_id=switchx-2.0, inputs.parent_job_id
(the public dap_ ID), and inputs.target_resolution (1080 or 2160).
Poll the returned child through /product-jobs/{job_id}.



## OpenAPI

````yaml https://api.beeble.ai/developer-api-docs/openapi.json post /v1/products/{product}/jobs
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}/jobs:
    post:
      tags:
        - products
      summary: Create a product job
      description: >-
        Organization credits by default. Reuse the same idempotency key on an
        uncertain response.


        switchx_finish creates a higher-resolution child of a completed SwitchX
        2.0

        Standard product job. Supply model_id=switchx-2.0, inputs.parent_job_id

        (the public dap_ ID), and inputs.target_resolution (1080 or 2160).

        Poll the returned child through /product-jobs/{job_id}.
      operationId: create_product_job_v1_products__product__jobs_post
      parameters:
        - name: product
          in: path
          required: true
          schema:
            type: string
            title: Product
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProductJobRequest'
      responses:
        '202':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProductJobResponse'
components:
  schemas:
    ProductJobRequest:
      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
        idempotency_key:
          type: string
          maxLength: 256
          minLength: 1
          title: Idempotency Key
        max_credits:
          anyOf:
            - type: integer
              minimum: 0
            - type: 'null'
          title: Max Credits
        callback_url:
          anyOf:
            - type: string
              maxLength: 2048
            - type: 'null'
          title: Callback Url
      additionalProperties: false
      type: object
      required:
        - model_id
        - idempotency_key
      title: ProductJobRequest
    ProductJobResponse:
      properties:
        id:
          type: string
          title: Id
        product:
          type: string
          title: Product
        model_id:
          type: string
          title: Model Id
        organization_id:
          type: string
          title: Organization Id
        team_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Team Id
        billing_unit:
          type: string
          const: credits
          title: Billing Unit
          default: credits
        status:
          type: string
          title: Status
        progress:
          anyOf:
            - type: number
            - type: 'null'
          title: Progress
        credits_charged:
          anyOf:
            - type: integer
            - type: 'null'
          title: Credits Charged
        refunded:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Refunded
        outputs:
          additionalProperties: true
          type: object
          title: Outputs
        error:
          anyOf:
            - additionalProperties: true
              type: object
            - type: 'null'
          title: Error
        created_at:
          type: string
          format: date-time
          title: Created At
      type: object
      required:
        - id
        - product
        - model_id
        - organization_id
        - status
        - created_at
      title: ProductJobResponse
  securitySchemes:
    apiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: Your [Developer API key](/api/authentication).

````