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

# Clone Web Box Snapshot

> Creates a ready copy of a ready Web Box Snapshot in another workspace, without a build. The clone has a new ID and the source's artifact, documents and saved state; the source is unchanged. The clone records no credentials, since they belong to the source workspace, and no parent or source Snapshot. The source is the caller's workspace: an API key's own workspace, or X-Workspace-Id for a session. An API key may clone into any other workspace of its organization.



## OpenAPI

````yaml /openapi/public.yaml post /v1/webbox-snapshots/{id}/clone
openapi: 3.1.0
info:
  description: >-
    Start API Boxes, Web Boxes and MCP Boxes from Snapshots. Authenticate every
    request with an API key sent as a Bearer token.
  title: Continuous API
  version: v1
servers:
  - description: Continuous production API.
    url: https://api.continuouslabs.ai
security: []
tags:
  - description: >-
      Start API Boxes from API Box Snapshots. Each API Box serves its Snapshot's
      API at its own endpoint, with its own state, in real time. Stop, start and
      delete them.
    name: apibox
    x-group: API Boxes
  - description: >-
      Build API Box Snapshots from an OpenAPI, WSDL or GraphQL document, or use
      the catalog's. API Boxes start from a ready Snapshot.
    name: apibox-snapshots
    x-group: API Box Snapshots
  - description: >-
      Start Web Boxes from Web Box Snapshots. Each Web Box serves its Snapshot's
      web app at a host of its own, with its own state, in real time. Stop,
      start and delete them.
    name: webbox
    x-group: Web Boxes
  - description: >-
      Build Web Box Snapshots from a vendor's live web app, or use the
      catalog's. Web Boxes start from a ready Snapshot.
    name: webbox-snapshots
    x-group: Web Box Snapshots
  - description: >-
      Start MCP Boxes from MCP Box Snapshots. Each MCP Box serves its Snapshot's
      tools over MCP in front of an API Box. Stop, start and delete them.
    name: mcpbox
    x-group: MCP Boxes
  - description: >-
      Build MCP Box Snapshots of an MCP server's tools against a ready API Box
      Snapshot. MCP Boxes serve a ready Snapshot.
    name: mcpbox-snapshots
    x-group: MCP Box Snapshots
  - description: >-
      Deprecated. Use API Box for APIs and Web Box for web apps. Build
      Simulators from OpenAPI, WSDL or GraphQL documents, check or cancel a
      build, clone Simulators into other workspaces, and rename and delete
      Simulators.
    name: simulators
    x-group: Simulators
  - description: >-
      Deprecated. Use API Box for APIs and Web Box for web apps. Create
      Simulations from ready Simulators or Snapshots, then rename, stop, start,
      and delete them.
    name: simulations
    x-group: Simulations
  - description: >-
      Deprecated. Use API Box for APIs and Web Box for web apps. Save a running
      Simulation's state as a Snapshot, create Simulations from it, and rename
      and delete it.
    name: simulation-snapshots
    x-group: Simulation Snapshots
  - description: >-
      Store connections to real systems: a base URL, the header that carries the
      credential, and its value. The API never returns a value.
    name: credentials
    x-group: Credentials
paths:
  /v1/webbox-snapshots/{id}/clone:
    post:
      tags:
        - webbox-snapshots
      summary: Clone Web Box Snapshot
      description: >-
        Creates a ready copy of a ready Web Box Snapshot in another workspace,
        without a build. The clone has a new ID and the source's artifact,
        documents and saved state; the source is unchanged. The clone records no
        credentials, since they belong to the source workspace, and no parent or
        source Snapshot. The source is the caller's workspace: an API key's own
        workspace, or X-Workspace-Id for a session. An API key may clone into
        any other workspace of its organization.
      operationId: clone-webbox-snapshot
      parameters:
        - description: Source Snapshot ID.
          in: path
          name: id
          required: true
          schema:
            pattern: ^wbs_[0-9A-HJKMNP-TV-Z]{26}$
            type: string
        - description: >-
            Optional key for retrying this create safely. A retry with the same
            key and request returns the original clone; the same key with a
            different request returns 409 idempotency_conflict. Without a key,
            each request creates a new clone. Keys are scoped to the target
            workspace.
          in: header
          name: Idempotency-Key
          schema:
            maxLength: 256
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CloneBoxSnapshotRequest'
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebBoxSnapshot'
          description: Created
        '400':
          content:
            application/problem+json:
              examples:
                bad_request_body:
                  $ref: '#/components/examples/bad_request_body'
                bad_request_clone_target:
                  $ref: '#/components/examples/bad_request_clone_target'
              schema:
                $ref: '#/components/schemas/Error'
          description: Bad Request
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          content:
            application/problem+json:
              examples:
                auth_forbidden_clone:
                  $ref: '#/components/examples/auth_forbidden_clone'
              schema:
                $ref: '#/components/schemas/Error'
          description: Forbidden
        '404':
          content:
            application/problem+json:
              examples:
                webbox_snapshot_not_found:
                  $ref: '#/components/examples/webbox_snapshot_not_found'
                workspace_not_found:
                  $ref: '#/components/examples/workspace_not_found'
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found
        '408':
          $ref: '#/components/responses/RequestTimeout'
        '409':
          content:
            application/problem+json:
              examples:
                idempotency_conflict:
                  $ref: '#/components/examples/idempotency_conflict'
                webbox_snapshot_not_ready:
                  $ref: '#/components/examples/webbox_snapshot_not_ready'
              schema:
                $ref: '#/components/schemas/Error'
          description: Conflict
        '413':
          $ref: '#/components/responses/PayloadTooLarge'
        '415':
          $ref: '#/components/responses/UnsupportedMediaType'
        '422':
          content:
            application/problem+json:
              examples:
                validation_idempotency_key:
                  $ref: '#/components/examples/validation_idempotency_key'
              schema:
                $ref: '#/components/schemas/Error'
          description: Unprocessable Entity
        '500':
          $ref: '#/components/responses/InternalServerError'
        '503':
          content:
            application/problem+json:
              examples:
                auth_provider_unavailable:
                  $ref: '#/components/examples/auth_provider_unavailable'
                internal_unavailable:
                  $ref: '#/components/examples/internal_unavailable'
              schema:
                $ref: '#/components/schemas/Error'
          description: Service Unavailable
      security:
        - apiKeyAuth: []
components:
  schemas:
    CloneBoxSnapshotRequest:
      additionalProperties: false
      properties:
        name:
          description: Name for the clone. Defaults to the source Snapshot's name.
          maxLength: 128
          type: string
        target_workspace_id:
          description: >-
            Workspace that receives the clone. It must differ from the source
            workspace.
          minLength: 1
          type: string
      required:
        - target_workspace_id
      type: object
    WebBoxSnapshot:
      additionalProperties: false
      properties:
        actors:
          description: >-
            The callers a request to a Box started from the Snapshot can act as
            by sending an actor's id in the X-Continuous-Actor header. Without
            the header, a request acts as the default actor. An MCP Box Snapshot
            lists its API Box Snapshot's actors. A Web Box Snapshot lists its
            one actor, the account every page is served as, which no header
            selects. Empty before the Snapshot is ready, when its build names
            none, or in a list until the Snapshot's actors are first read.
          items:
            $ref: '#/components/schemas/SimulatorActor'
          type: array
        build:
          description: >-
            The build's latest progress report, or null before the first report.
            A settled Snapshot keeps its last report. A build waiting for its
            live credentials resumes when the Snapshot's resume is requested.
          oneOf:
            - $ref: '#/components/schemas/SimulatorBuildProgress'
            - type: 'null'
        composition:
          description: What a ready Snapshot serves, or null.
          oneOf:
            - $ref: '#/components/schemas/SimulatorComposition'
            - type: 'null'
        created_at:
          description: Snapshot creation time.
          format: date-time
          type: string
        credential_ids:
          description: >-
            Workspace credentials the build used, such as a web app login or
            credentials it was allowed to call real systems with. Empty when
            none.
          items:
            type: string
          type: array
        error:
          $ref: '#/components/schemas/SimulatorError'
          description: Why the build failed or was canceled, or null.
        hidden_limitations:
          description: Limitations the Snapshot records beyond those listed in limitations.
          format: int64
          minimum: 0
          type: integer
        id:
          description: Web Box Snapshot ID.
          pattern: ^wbs_[0-9A-HJKMNP-TV-Z]{26}$
          type: string
        instructions:
          description: The instructions the build followed, or empty when none were given.
          type: string
        limitations:
          description: >-
            Behavior the Snapshot does not serve like the real system, most
            important first. Empty when none.
          items:
            $ref: '#/components/schemas/Limitation'
          type: array
        metadata:
          description: Customer JSON metadata, or null.
        name:
          description: Snapshot name. The ID is its identity, and names need not be unique.
          maxLength: 128
          type: string
        parent_id:
          description: >-
            The Snapshot an incremental build started from, or null for any
            other Snapshot or once that Snapshot is deleted.
          type:
            - string
            - 'null'
        research:
          description: The build's research stage, or null when research did not run.
          oneOf:
            - $ref: '#/components/schemas/SimulatorResearch'
            - type: 'null'
        source:
          description: >-
            catalog for a Snapshot Continuous publishes, build for one built
            into the workspace, box for one saved from a Web Box.
          enum:
            - catalog
            - build
            - box
          type: string
        source_box_id:
          description: >-
            The box the Snapshot was saved from, or null for a built or
            published Snapshot.
          type:
            - string
            - 'null'
        source_snapshot_id:
          description: >-
            The Snapshot the box it was saved from started from, or null for a
            built or published Snapshot, or once that Snapshot is deleted.
          type:
            - string
            - 'null'
        status:
          description: >-
            pending while waiting for capacity; building while the build runs;
            ready when boxes can start from it; failed when the build failed;
            canceled when a cancel request took effect.
          enum:
            - pending
            - building
            - ready
            - failed
            - canceled
          type: string
      required:
        - id
        - source
        - name
        - status
        - instructions
        - credential_ids
        - error
        - build
        - research
        - limitations
        - hidden_limitations
        - composition
        - actors
        - metadata
        - parent_id
        - source_box_id
        - source_snapshot_id
        - created_at
      type: object
    Error:
      additionalProperties: false
      properties:
        code:
          description: Stable machine-readable error code.
          minLength: 1
          type: string
        detail:
          description: Safe human-readable error detail.
          minLength: 1
          type: string
        validation:
          $ref: '#/components/schemas/SpecificationValidation'
          description: >-
            Safe specification diagnostics for a rejected build request, when
            available.
      required:
        - validation
        - code
        - detail
      type: object
    SimulatorActor:
      additionalProperties: false
      properties:
        default:
          description: Whether a request without the header acts as this caller.
          type: boolean
        entity:
          description: The entity whose row the id keys.
          type: string
        id:
          description: >-
            The value to send in the X-Continuous-Actor header: the key of the
            identity row the caller acts as.
          type: string
        name:
          description: The build's name for the caller.
          type: string
        role:
          description: The caller's role in the simulated service.
          type: string
      required:
        - id
        - name
        - role
        - entity
        - default
      type: object
    SimulatorBuildProgress:
      additionalProperties: false
      properties:
        hidden_limitations:
          description: >-
            Limitations the accepted build records beyond those listed in
            limitations.
          format: int64
          minimum: 0
          type: integer
        last_submission:
          description: Outcome of the most recent submit attempt, or null.
          enum:
            - accepted
            - rejected
            - null
          type:
            - string
            - 'null'
        last_tool:
          description: >-
            Name of the most recent tool call, or null. Tool arguments and
            output are private.
          type:
            - string
            - 'null'
        limitations:
          description: >-
            Behavior the accepted build does not serve like the real system,
            most important first, set when the build is accepted. Empty when
            none.
          items:
            $ref: '#/components/schemas/Limitation'
          maxItems: 50
          type: array
        model:
          description: >-
            The model the builder and reviewer run on, or combined, which
            currently runs as claude-opus-5-5. A build recorded before model
            selection reports its provider's default.
          enum:
            - gpt-6-astra
            - gpt-6.1-sol
            - claude-opus-5-5
            - claude-fable-5-1
            - gpt-6-sol
            - combined
          type: string
        phase:
          description: >-
            Agent phase: research while the research agent indexes the documents
            and saves the vendor pages they lack; build for generation, review
            for the separate reviewer, qa while QA tests the running Simulator
            from outside, after the last review round of a build with
            credential_ids, repair while the author fixes the findings of a
            review or QA. Null when not recorded.
          enum:
            - research
            - build
            - review
            - qa
            - repair
            - null
          type:
            - string
            - 'null'
        review_round:
          description: >-
            Review round that phase review, qa, or repair belongs to, from 1. In
            a build with credential_ids, QA and the repair after it are in round
            review_rounds + 1. 0 before the first review.
          format: int64
          maximum: 11
          minimum: 0
          type: integer
        review_rounds:
          description: >-
            Review rounds the build runs at most. Fewer run when the reviewer
            agrees early.
          format: int64
          maximum: 10
          minimum: 1
          type: integer
        stage:
          description: >-
            derive while the effective spec, build skeleton, and sandbox are
            prepared; build while the coding loop runs; assemble while an
            accepted artifact publishes.
          enum:
            - derive
            - build
            - assemble
          type: string
        submissions:
          description: Submit attempts.
          format: int64
          minimum: 0
          type: integer
        tool_calls:
          description: Tool calls the coding loop executed.
          format: int64
          minimum: 0
          type: integer
        waited_seconds:
          description: >-
            Total seconds of the build's ended waits, which do not count toward
            its time limit. 0 when none has ended. The current wait, from
            waiting.since, is not included.
          format: int64
          minimum: 0
          type: integer
        waiting:
          description: >-
            Set while the build waits for the requester: at QA because the live
            systems rejected its credentials, or for more time after it used its
            time limit. Resume it with its resource's resume operation, such as
            POST /v1/simulators/{id}/resume. Null otherwise.
          oneOf:
            - $ref: '#/components/schemas/SimulatorBuildWaiting'
            - type: 'null'
        warnings:
          description: >-
            Specification defects the build tolerated without changing the
            specification, set when the build prepares its specification. Empty
            when none.
          items:
            $ref: '#/components/schemas/SpecificationWarning'
          maxItems: 20
          type: array
      required:
        - model
        - phase
        - review_round
        - review_rounds
        - stage
        - tool_calls
        - submissions
        - last_tool
        - last_submission
        - warnings
        - limitations
        - hidden_limitations
        - waited_seconds
        - waiting
      type: object
    SimulatorComposition:
      additionalProperties: false
      properties:
        entities:
          description: Entities that the Simulator stores.
          format: int64
          type: integer
        operations:
          description: Operations that the Simulator routes.
          format: int64
          type: integer
        sample:
          description: >-
            Whether the Simulator carries sample data that a new Simulation can
            start with.
          type: boolean
      required:
        - operations
        - entities
        - sample
      type: object
    SimulatorError:
      additionalProperties: false
      properties:
        agent_message:
          description: >-
            Plain-text explanation from the build agent when it could not
            continue, or the problems the check of the build's index found. At
            most 4096 UTF-8 bytes.
          maxLength: 4096
          type:
            - string
            - 'null'
        code:
          description: >-
            Stable Simulator build error code. live_credential_rejected is a
            build that waited at QA for its rejected live credentials and was
            not resumed within 7 days.
          enum:
            - build_failed
            - build_canceled
            - specification_validation_failed
            - live_credential_rejected
          type: string
        detail:
          description: Safe human-readable error detail.
          type: string
        reason:
          description: >-
            Bounded failure reason for selecting recovery guidance, or null when
            unavailable.
          enum:
            - canceled
            - specification_invalid
            - time_limit
            - service_unavailable
            - build_failed
            - null
          type:
            - string
            - 'null'
        validation:
          $ref: '#/components/schemas/SpecificationValidation'
          description: >-
            Specification validation details. Address these issues before
            building again.
      required:
        - agent_message
        - reason
        - validation
        - code
        - detail
      type:
        - object
        - 'null'
    Limitation:
      additionalProperties: false
      properties:
        location:
          description: >-
            The operations the limitation affects, readably, or Simulator when
            it names none.
          maxLength: 512
          type: string
        message:
          description: What the Simulator does differently from the real system.
          type: string
        operations:
          description: Operation IDs the limitation affects, or empty when it names none.
          items:
            type: string
          maxItems: 20
          type: array
        reviewed:
          description: >-
            Whether review confirmed that the pinned contract or the scaffold
            cannot express the correct behavior. False for a limitation the
            build recorded after review or that review did not confirm.
          type: boolean
      required:
        - message
        - location
        - operations
        - reviewed
      type: object
    SimulatorResearch:
      additionalProperties: false
      properties:
        bytes:
          description: Total size of the saved pages in bytes.
          format: int64
          minimum: 0
          type: integer
        pages:
          description: Vendor pages research saved for the build.
          format: int64
          minimum: 0
          type: integer
        status:
          description: >-
            pending until the stage starts; running while the research agent
            indexes the documents and saves the vendor pages they lack; complete
            when it wrote an index that names every document; failed when it
            could not finish, which fails the build, or when the build ended
            first; provided when research did not run because the build already
            had an index.
          enum:
            - pending
            - running
            - complete
            - failed
            - provided
          type: string
      required:
        - status
        - pages
        - bytes
      type: object
    SpecificationValidation:
      additionalProperties: false
      properties:
        issues:
          description: Specification validation problems. At most 20 are returned.
          items:
            $ref: '#/components/schemas/SpecificationIssue'
          maxItems: 20
          type: array
      required:
        - issues
      type:
        - object
        - 'null'
    SimulatorBuildWaiting:
      additionalProperties: false
      properties:
        credential_ids:
          description: >-
            The credentials to refresh with PATCH /v1/credentials/{id} before
            resuming the build. Empty for time_limit.
          items:
            type: string
          type: array
        deadline:
          description: >-
            When the wait ends, 7 days after it began: a build not resumed by
            then fails, with error code live_credential_rejected for
            live_credentials and for its time limit for time_limit. The wait
            does not count toward the build's time limit.
          format: date-time
          type: string
        reason:
          description: >-
            Why the build waits: for live_credentials, the status and detail of
            the live reply that rejected QA's authenticated read.
          type: string
        since:
          description: When the build started waiting.
          format: date-time
          type: string
        type:
          description: >-
            live_credentials while QA waits for the credentials it names to be
            refreshed; time_limit while the build waits for a resume that adds
            time with add_seconds.
          enum:
            - live_credentials
            - time_limit
          type: string
      required:
        - type
        - reason
        - credential_ids
        - since
        - deadline
      type: object
    SpecificationWarning:
      additionalProperties: false
      properties:
        code:
          description: Stable warning code.
          enum:
            - spec.enum_duplicate
            - spec.path_parameter_optional
            - spec.default_invalid
            - spec.response_untyped
            - spec.schema_limit
            - spec.operation_unservable
            - spec.example_null
          type: string
        location:
          description: Readable endpoint or field affected by this warning.
          maxLength: 512
          type: string
        message:
          description: What the specification declares and how the build handles it.
          type: string
        operations:
          description: Always empty.
          items:
            type: string
          maxItems: 0
          type: array
      required:
        - code
        - location
        - message
        - operations
      type: object
    SpecificationIssue:
      additionalProperties: false
      properties:
        code:
          description: Stable validation rule code.
          type: string
        kind:
          description: >-
            Whether the input is invalid, unsupported, incomplete, exceeds a
            build limit, or has no specific diagnosis.
          enum:
            - invalid
            - unsupported
            - incomplete
            - limit
            - unknown
          type: string
        location:
          description: Readable endpoint or field affected by this issue.
          maxLength: 512
          type: string
        message:
          description: What needs attention at this location.
          type: string
        operation:
          description: >-
            Affected operation ID or method and path, when available. Empty for
            document-level issues.
          maxLength: 243
          type: string
        suggestion:
          description: How to correct or address the problem.
          type: string
      required:
        - code
        - operation
        - location
        - kind
        - message
        - suggestion
      type: object
  examples:
    bad_request_body:
      value:
        code: bad_request
        detail: request body is invalid
        validation: null
    bad_request_clone_target:
      value:
        code: bad_request
        detail: target_workspace_id must differ from the source workspace
        validation: null
    auth_forbidden_clone:
      value:
        code: auth_forbidden
        detail: the API key's organization does not own workspace ws_target
        validation: null
    webbox_snapshot_not_found:
      value:
        code: webbox_snapshot_not_found
        detail: >-
          No Web Box Snapshot was found with ID
          "wbs_01J8Z5X4K70000000000000005".
        validation: null
    workspace_not_found:
      value:
        code: workspace_not_found
        detail: workspace ws_target not found
        validation: null
    idempotency_conflict:
      value:
        code: idempotency_conflict
        detail: >-
          The Idempotency-Key was already used with a different request. Use a
          new Idempotency-Key.
        validation: null
    webbox_snapshot_not_ready:
      value:
        code: webbox_snapshot_not_ready
        detail: >-
          The Web Box Snapshot with ID "wbs_01J8Z5X4K70000000000000005" is
          building; Web Boxes start only from a ready one.
        validation: null
    validation_idempotency_key:
      value:
        code: validation
        detail: Idempotency-Key must contain between 1 and 256 bytes
        validation: null
    auth_provider_unavailable:
      value:
        code: auth_provider_unavailable
        detail: >-
          The authentication provider is unavailable. Retry the request after a
          short delay.
        validation: null
    internal_unavailable:
      value:
        code: internal_unavailable
        detail: >-
          The service is temporarily unavailable. Retry the request after a
          short delay.
        validation: null
    auth_invalid:
      value:
        code: auth_invalid
        detail: The authentication credential is invalid.
        validation: null
    auth_missing:
      value:
        code: auth_invalid
        detail: Authentication credentials are required.
        validation: null
    request_timeout:
      value:
        code: request_timeout
        detail: >-
          The request body was not received before the timeout. Retry the
          request.
        validation: null
    payload_too_large:
      value:
        code: payload_too_large
        detail: The request body exceeds the maximum allowed size.
        validation: null
    unsupported_media_type:
      value:
        code: unsupported_media_type
        detail: The request Content-Type is not supported.
        validation: null
    internal:
      value:
        code: internal
        detail: The server encountered an unexpected error.
        validation: null
  responses:
    Unauthorized:
      content:
        application/problem+json:
          examples:
            auth_invalid:
              $ref: '#/components/examples/auth_invalid'
            auth_missing:
              $ref: '#/components/examples/auth_missing'
          schema:
            $ref: '#/components/schemas/Error'
      description: Unauthorized
    RequestTimeout:
      content:
        application/problem+json:
          examples:
            request_timeout:
              $ref: '#/components/examples/request_timeout'
          schema:
            $ref: '#/components/schemas/Error'
      description: Request Timeout
    PayloadTooLarge:
      content:
        application/problem+json:
          examples:
            payload_too_large:
              $ref: '#/components/examples/payload_too_large'
          schema:
            $ref: '#/components/schemas/Error'
      description: Request Entity Too Large
    UnsupportedMediaType:
      content:
        application/problem+json:
          examples:
            unsupported_media_type:
              $ref: '#/components/examples/unsupported_media_type'
          schema:
            $ref: '#/components/schemas/Error'
      description: Unsupported Media Type
    InternalServerError:
      content:
        application/problem+json:
          examples:
            internal:
              $ref: '#/components/examples/internal'
          schema:
            $ref: '#/components/schemas/Error'
      description: Internal Server Error
  securitySchemes:
    apiKeyAuth:
      bearerFormat: Continuous API key
      description: >-
        Use a Continuous API key. Send it in the Authorization header as a
        Bearer token.
      scheme: bearer
      type: http

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.