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

# Get Viral Ad Clone Project

> Returns public project status, the reviewable script when available, all video tasks created from this project, and billing totals. Internal steps, inputs, artifacts, and extras are not returned.



## OpenAPI

````yaml GET /v1/video/viral-ads-clone/{project_id}
openapi: 3.1.0
info:
  title: Loova API
  description: Loova API lets developers generate AI images and videos programmatically.
  version: 1.0.0
servers:
  - url: https://api.loova.ai/api
security:
  - bearerAuth: []
paths:
  /v1/video/viral-ads-clone/{project_id}:
    get:
      summary: Get Viral Ad Clone Project
      description: >-
        Returns public project status, the reviewable script when available, all
        video tasks created from this project, and billing totals. Internal
        steps, inputs, artifacts, and extras are not returned.
      operationId: getViralAdsCloneProject
      parameters:
        - name: project_id
          in: path
          required: true
          description: The project ID returned by the create project endpoint.
          schema:
            type: string
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetViralAdsCloneProjectResponse'
              examples:
                scriptReady:
                  summary: Script is ready
                  value:
                    code: 200
                    trace_id: 45c30d76f06549b199a3775544515689
                    message: null
                    data:
                      project_id: 683f1a2b3c4d5e6f7890abcd
                      status: succeeded
                      current_step: script_ready
                      mode: manual
                      error_message: null
                      view_script: |-
                        0.0-2.0s
                        Close-up of the product on a bathroom counter...
                      billing:
                        script_credits_cost: 10
                        video_credits_cost: 0
                        total_credits_cost: 10
                      task_ids: []
                      tasks: []
                      created_at: '2026-06-15T08:00:00Z'
                      updated_at: '2026-06-15T08:02:30Z'
                generatingVideo:
                  summary: Video task is running
                  value:
                    code: 200
                    trace_id: 45c30d76f06549b199a3775544515689
                    message: null
                    data:
                      project_id: 683f1a2b3c4d5e6f7890abcd
                      status: running
                      current_step: generating_video
                      mode: auto
                      error_message: null
                      view_script: |-
                        0.0-2.0s
                        Close-up of the product...
                      billing:
                        script_credits_cost: 10
                        video_credits_cost: 50
                        total_credits_cost: 60
                      task_ids:
                        - 68401a2b3c4d5e6f7890abcd
                      tasks:
                        - task_id: 68401a2b3c4d5e6f7890abcd
                          status: running
                          model: seedance_2_0
                          created_at: '2026-06-15T08:03:00Z'
                          updated_at: '2026-06-15T08:03:00Z'
                          credits_cost: 50
                          result: null
                      created_at: '2026-06-15T08:00:00Z'
                      updated_at: '2026-06-15T08:03:00Z'
        '400':
          description: Request failed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                code: 400
                trace_id: 45c30d76f06549b199a3775544515689
                message: Detailed error message
                data: null
        '404':
          description: Request failed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                code: 100099
                trace_id: 45c30d76f06549b199a3775544515689
                message: Project not found
                data: null
      security:
        - bearerAuth: []
components:
  schemas:
    GetViralAdsCloneProjectResponse:
      type: object
      properties:
        code:
          type: integer
        trace_id:
          type: string
        message:
          type:
            - string
            - 'null'
        data:
          type: object
          properties:
            project_id:
              type: string
            status:
              $ref: '#/components/schemas/ViralAdsCloneProjectStatus'
            current_step:
              $ref: '#/components/schemas/ViralAdsCloneCurrentStep'
            mode:
              $ref: '#/components/schemas/ViralAdsCloneMode'
            error_message:
              type:
                - string
                - 'null'
            view_script:
              type:
                - string
                - 'null'
              description: >-
                Reviewable script shown to users after script generation is
                complete. Null before the script is ready.
            billing:
              $ref: '#/components/schemas/ViralAdsCloneBilling'
            task_ids:
              type: array
              items:
                type: string
              description: >-
                All video task IDs created from this project, including
                auto-created tasks and repeated videos endpoint calls.
            tasks:
              type: array
              items:
                $ref: '#/components/schemas/ViralAdsCloneProjectTask'
              description: >-
                All video tasks created from this project, including queued,
                running, succeeded, failed, and error tasks.
            created_at:
              type:
                - string
                - 'null'
              format: date-time
            updated_at:
              type:
                - string
                - 'null'
              format: date-time
    ErrorResponse:
      type: object
      properties:
        code:
          type: integer
        trace_id:
          type: string
        message:
          type:
            - string
            - 'null'
        data:
          type:
            - object
            - 'null'
    ViralAdsCloneProjectStatus:
      type: string
      enum:
        - draft
        - running
        - succeeded
        - failed
      description: Project status.
    ViralAdsCloneCurrentStep:
      type: string
      enum:
        - preparing_media
        - analyzing
        - generating_script
        - script_ready
        - generating_video
        - failed
      description: Coarse-grained current project step.
    ViralAdsCloneMode:
      type: string
      enum:
        - auto
        - manual
      description: Project execution mode.
    ViralAdsCloneBilling:
      type: object
      properties:
        script_credits_cost:
          type: number
          description: >-
            Actual API credits charged for script generation. Returns 0 if the
            script stage failed and was refunded.
        video_credits_cost:
          type: number
          description: >-
            Sum of actual API credits for all non-failed video tasks. Failed and
            error tasks count as 0. Queued and running tasks count as their
            currently reserved credits.
        total_credits_cost:
          type: number
          description: script_credits_cost plus video_credits_cost.
    ViralAdsCloneProjectTask:
      type: object
      properties:
        task_id:
          type: string
        status:
          $ref: '#/components/schemas/ViralAdsCloneTaskStatus'
        model:
          type: string
          description: API model name, such as seedance_2_0 or seedance_2_0_fast.
        created_at:
          type:
            - string
            - 'null'
          format: date-time
        updated_at:
          type:
            - string
            - 'null'
          format: date-time
        credits_cost:
          type: number
          description: >-
            Actual API credits charged or currently reserved for this task.
            Failed and error tasks return 0.
        result:
          type:
            - object
            - 'null'
          properties:
            video_url:
              type:
                - string
                - 'null'
              format: uri
            error_message:
              type:
                - string
                - 'null'
            finished_at:
              type:
                - string
                - 'null'
              format: date-time
          description: >-
            Null while queued or running. Contains the video URL or error
            details after completion.
    ViralAdsCloneTaskStatus:
      type: string
      enum:
        - queued
        - running
        - succeeded
        - failed
        - error
      description: Video task status.
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer

````