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

# Launch Creation

> Start a creation run (202 — renders happen off-request).

Returns the queued run immediately; the client polls the library for its
variants. Every guardrail (flow support, source validity, daily quota,
per-run cost ceiling) runs BEFORE anything is persisted, so a rejected
launch leaves no ghost row behind.



## OpenAPI

````yaml /openapi.json post /api/v1/brands/{brand_id}/creative/creations
openapi: 3.1.0
info:
  title: AITasker
  version: 0.1.0
servers: []
security: []
paths:
  /api/v1/brands/{brand_id}/creative/creations:
    post:
      tags:
        - Brand Creative
        - Brand Creative
      summary: Launch Creation
      description: |-
        Start a creation run (202 — renders happen off-request).

        Returns the queued run immediately; the client polls the library for its
        variants. Every guardrail (flow support, source validity, daily quota,
        per-run cost ceiling) runs BEFORE anything is persisted, so a rejected
        launch leaves no ghost row behind.
      operationId: launch_creation_api_v1_brands__brand_id__creative_creations_post
      parameters:
        - name: brand_id
          in: path
          required: true
          schema:
            type: string
            format: uuid
            title: Brand Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreationLaunchRequest'
      responses:
        '202':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreationSummary'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
        - HTTPBearer: []
components:
  schemas:
    CreationLaunchRequest:
      properties:
        flow:
          type: string
          title: Flow
          default: image_ad
        product_id:
          anyOf:
            - type: string
              format: uuid
            - type: 'null'
          title: Product Id
        product_url:
          anyOf:
            - type: string
              maxLength: 2048
            - type: 'null'
          title: Product Url
        source_creative_id:
          anyOf:
            - type: string
              format: uuid
            - type: 'null'
          title: Source Creative Id
        source_variant_index:
          type: integer
          minimum: 0
          title: Source Variant Index
          default: 0
        source_upload_id:
          anyOf:
            - type: string
              format: uuid
            - type: 'null'
          title: Source Upload Id
        source_ad_id:
          anyOf:
            - type: string
              format: uuid
            - type: 'null'
          title: Source Ad Id
        board_ad_ids:
          anyOf:
            - items:
                type: string
                format: uuid
              type: array
              maxItems: 200
            - type: 'null'
          title: Board Ad Ids
        group_advertiser_ids:
          anyOf:
            - items:
                type: string
                format: uuid
              type: array
              maxItems: 60
            - type: 'null'
          title: Group Advertiser Ids
        gap_theme:
          anyOf:
            - type: string
              maxLength: 60
            - type: 'null'
          title: Gap Theme
        source_post_id:
          anyOf:
            - type: string
              format: uuid
            - type: 'null'
          title: Source Post Id
        source_label:
          anyOf:
            - type: string
              maxLength: 120
            - type: 'null'
          title: Source Label
        set_size:
          anyOf:
            - type: integer
              maximum: 24
              minimum: 1
            - type: 'null'
          title: Set Size
        aspect_ratio:
          type: string
          title: Aspect Ratio
          default: '1:1'
        platform:
          anyOf:
            - type: string
              maxLength: 40
            - type: 'null'
          title: Platform
        hook:
          anyOf:
            - type: string
              maxLength: 300
            - type: 'null'
          title: Hook
        instructions:
          anyOf:
            - type: string
              maxLength: 1000
            - type: 'null'
          title: Instructions
      type: object
      title: CreationLaunchRequest
      description: >-
        Start a Create run.


        The launch route validates `flow` against the orchestrator's

        `IMPLEMENTED_FLOWS`, so a flow whose runner hasn't shipped is rejected
        at

        the boundary rather than enqueued into a lane that would fail it.


        Sources come in two shapes and the flow decides which it needs:


        * **Product-sourced** (`image_ad`, `video_ad`, `slideshow_ad`,
          `photoshoot`) — a saved product carries catalogue data; a URL carries
          only what the user typed, so `instructions` matters more there.
        * **Asset-sourced** (`iterate`, `reframe`, `restage` — B7's edit flows)
        —
          an image the user already has: one variant of a prior creation, or an
          upload. The launcher resolves it to a storage key and ownership-checks
          it; there is no product lookup, because an edit works from the picture.

        Sending a product to an edit flow (or an asset to a product flow) is a

        400 with copy naming what that flow actually needs — NOT a silent

        fallback, since the two produce completely different output.
    CreationSummary:
      properties:
        id:
          type: string
          format: uuid
          title: Id
        flow:
          type: string
          title: Flow
        status:
          type: string
          title: Status
        source_type:
          type: string
          title: Source Type
        source_label:
          anyOf:
            - type: string
            - type: 'null'
          title: Source Label
        aspect_ratio:
          anyOf:
            - type: string
            - type: 'null'
          title: Aspect Ratio
        platform:
          anyOf:
            - type: string
            - type: 'null'
          title: Platform
        asset_count:
          type: integer
          title: Asset Count
          default: 0
        preview_url:
          anyOf:
            - type: string
            - type: 'null'
          title: Preview Url
        archived_at:
          anyOf:
            - type: string
              format: date-time
            - type: 'null'
          title: Archived At
        created_at:
          type: string
          format: date-time
          title: Created At
        completed_at:
          anyOf:
            - type: string
              format: date-time
            - type: 'null'
          title: Completed At
      type: object
      required:
        - id
        - flow
        - status
        - source_type
        - created_at
      title: CreationSummary
      description: A card in the My Creations grid.
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
        input:
          title: Input
        ctx:
          type: object
          title: Context
      type: object
      required:
        - loc
        - msg
        - type
      title: ValidationError
  securitySchemes:
    HTTPBearer:
      type: http
      scheme: bearer

````