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

# Splice V3

> Send a request to create an arbitrary clip for multiple cameras



## OpenAPI

````yaml https://api2.rhombussystems.com/api/openapi/public.json post /api/video/spliceV3
openapi: 3.0.1
info:
  contact:
    email: developer@rhombussystems.com
  description: >-
    This API is for use by Rhombus customers and partners.


    ## Authentication


    All requests require two headers:

    - `x-auth-scheme` — The authentication scheme identifier. Use `api-token`
    for standard API key auth, or `partner-api-token` for partner API auth.

    - `x-auth-apikey` — Your Rhombus API key.


    Example:

    ```

    POST /api/camera/getMinimalCameraStateList

    x-auth-scheme: api-token

    x-auth-apikey: YOUR_API_KEY

    Content-Type: application/json

    ```
  title: Rhombus API
  version: '1.0'
servers:
  - description: Production Server
    url: https://api2.rhombussystems.com
security:
  - ApiKeyAuth: []
paths:
  /api/video/spliceV3:
    post:
      tags:
        - Video Webservice
      summary: Splice V3
      description: Send a request to create an arbitrary clip for multiple cameras
      operationId: spliceV3
      parameters:
        - description: >-
            Authentication scheme identifier. Use `api-token` for standard API
            key authentication, `partner-api-token` for partner API key
            authentication. Must be paired with the `x-auth-apikey` header
            containing your API key.
          example: api-token
          in: header
          name: x-auth-scheme
          required: true
          schema:
            type: string
            default: api-token
            enum:
              - api-token
              - api
              - partner-api-token
              - partner-api
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Video_SpliceV3WSRequest'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Video_SpliceV3WSResponse'
          description: OK
components:
  schemas:
    Video_SpliceV3WSRequest:
      type: object
      description: >-
        Request object for splicing video clips V3 with multiple cameras and
        advanced options.
      properties:
        accessSettings:
          $ref: '#/components/schemas/ClipAccessSettings'
        alteredViewMap:
          type: object
          additionalProperties:
            type: array
            description: Map of device facet UUIDs to altered view configurations
            items:
              $ref: '#/components/schemas/AlteredView'
            nullable: true
          description: Map of device facet UUIDs to altered view configurations
          nullable: true
        audioIncluded:
          type: boolean
          description: Whether to include audio in the clip
          example: true
          nullable: true
        clipVisibility:
          $ref: '#/components/schemas/ClipVisibilityEnum'
        description:
          type: string
          description: Description for the spliced clip
          example: Review of security incident from main entrance
          nullable: true
        deviceIntervalMap:
          type: object
          additionalProperties:
            type: array
            description: >-
              Optional map of device facet UUIDs to a list of time intervals
              (start/end millis) for multi-interval splicing. When provided and
              non-empty, the request is treated as multi-interval and the
              top-level startTimeMillis/durationSec are ignored. The sum of all
              interval durations across all devices is capped at 60 minutes, and
              each interval must be at least 1 second long.
            items:
              $ref: '#/components/schemas/TimeInterval'
            nullable: true
          description: >-
            Optional map of device facet UUIDs to a list of time intervals
            (start/end millis) for multi-interval splicing. When provided and
            non-empty, the request is treated as multi-interval and the
            top-level startTimeMillis/durationSec are ignored. The sum of all
            interval durations across all devices is capped at 60 minutes, and
            each interval must be at least 1 second long.
          nullable: true
        deviceUuids:
          type: array
          description: List of device facet UUIDs to splice video from
          items:
            type: string
            format: DeviceFacetUuid
            description: RUUID with optional appended facet information
            example: AAAAAAAAAAAAAAAAAAAAAA.v0
            nullable: true
          nullable: true
        durationSec:
          type: integer
          format: int32
          description: Duration in seconds for the splice
          example: 60
          nullable: true
        integrationUploadMap:
          type: object
          additionalProperties:
            type: boolean
            description: Map of integration names to upload flags
            nullable: true
          description: Map of integration names to upload flags
          nullable: true
        saveToConsole:
          type: boolean
          description: Whether to save the clip to console
          example: true
          nullable: true
        sendToSharedStorage:
          type: boolean
          description: Whether to send to shared storage
          example: false
          nullable: true
        sendToUserStorage:
          type: boolean
          description: Whether to send to user storage
          example: false
          nullable: true
        startTimeMillis:
          type: integer
          format: int64
          description: Start time in milliseconds for the splice
          example: 1640995200000
          nullable: true
        title:
          type: string
          description: Title for the spliced clip
          example: Security Incident Review
          nullable: true
    Video_SpliceV3WSResponse:
      type: object
      description: Response object for splicing video clips V3.
      properties:
        clipUuid:
          type: string
          format: RUUID
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          nullable: true
        clipUuidList:
          type: array
          description: List of UUIDs for created spliced clips
          items:
            type: string
            format: RUUID
            description: base 64 (url-safe) uuid string
            example: AAAAAAAAAAAAAAAAAAAAAA
            nullable: true
          nullable: true
        error:
          type: boolean
          nullable: true
        errorMsg:
          type: string
          nullable: true
        warningMsg:
          type: string
          nullable: true
    ClipAccessSettings:
      type: object
      description: Visibility setting for the clip
      properties:
        allowedRoles:
          type: array
          items:
            type: string
            format: RUUID
            description: base 64 (url-safe) uuid string
            example: AAAAAAAAAAAAAAAAAAAAAA
            nullable: true
          nullable: true
          uniqueItems: true
        allowedUsers:
          type: array
          items:
            type: string
            format: RUUID
            description: base 64 (url-safe) uuid string
            example: AAAAAAAAAAAAAAAAAAAAAA
            nullable: true
          nullable: true
          uniqueItems: true
        visibility:
          $ref: '#/components/schemas/ClipVisibilityEnum'
    AlteredView:
      type: object
      description: Map of device facet UUIDs to altered view configurations
      properties:
        crop:
          $ref: '#/components/schemas/CroppedPermyriadRect'
        dewarp:
          $ref: '#/components/schemas/DewarpedView'
    ClipVisibilityEnum:
      type: string
      description: Use accessSettings instead
      enum:
        - PRIVATE
        - ROLE_RESTRICTED
        - ORG_WIDE
    TimeInterval:
      type: object
      properties:
        endMs:
          type: integer
          format: int64
          nullable: true
        startMs:
          type: integer
          format: int64
          nullable: true
    CroppedPermyriadRect:
      type: object
      properties:
        height:
          type: integer
          format: int32
          nullable: true
        width:
          type: integer
          format: int32
          nullable: true
        x:
          type: integer
          format: int32
          nullable: true
        'y':
          type: integer
          format: int32
          nullable: true
    DewarpedView:
      type: object
      properties:
        aspectRatio:
          $ref: '#/components/schemas/AspectRatio'
        pitchDegrees:
          type: number
          format: float
          nullable: true
        rollDegrees:
          type: number
          format: float
          nullable: true
        verticalFieldOfViewDegrees:
          type: integer
          format: int32
          nullable: true
        yawDegrees:
          type: number
          format: float
          nullable: true
    AspectRatio:
      type: object
      properties:
        height:
          type: integer
          format: int32
          nullable: true
        width:
          type: integer
          format: int32
          nullable: true
  securitySchemes:
    ApiKeyAuth:
      description: >-
        Your Rhombus API key. Must be accompanied by the `x-auth-scheme` header
        set to `api-token` (or `partner-api-token` for partner endpoints).
      in: header
      name: x-auth-apikey
      type: apiKey

````