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

# List submissions

> Returns a paginated list of all clipping submissions for a video, newest first. Use this to audit past runs, find a specific submission ID, or check whether a job is still in progress.



## OpenAPI

````yaml https://api.cut.pro/api/v1/openapi.json get /clips/{videoId}/submissions
openapi: 3.0.3
info:
  title: CutPro API
  version: 1.0.0
  description: >-
    The CutPro API lets you automate AI-powered video clipping and rendering
    programmatically.


    ## Typical workflow


    1. **Analyze** a public video URL to preview metadata and credit cost — no
    charge (`POST /clips/info`)

    2. **Submit** the video for AI clipping — credits are deducted immediately
    (`POST /clips`)

    3. **Poll** the submission until `status` is `completed` or `failed` (`GET
    /clips/{videoId}/submissions/{submissionId}`)

    4. **Fetch** the AI-generated highlight clips (`GET
    /clips/{videoId}/submissions/{submissionId}/clips`)

    5. **Optionally** apply one of your templates in bulk (`POST
    /clips/{videoId}/submissions/{submissionId}/apply_template`)

    6. **Render** each clip to a final MP4 (`POST
    /clips/{videoId}/submissions/{submissionId}/clips/{clipId}/render`)

    7. **Poll** the render until `status` is `completed` (`GET
    /renders/{renderId}`)

    8. **Download** the rendered video (`GET /renders/{renderId}/download`)


    ## Authentication


    Pass your API key on every request via the `X-Api-Key` header or as
    `Authorization: Bearer <key>`.

    You can generate API keys from your account settings at
    [cut.pro](https://cut.pro).


    ## Workspaces


    An API key is bound to one or more workspaces (Cloudflare-style scoped
    tokens).


    - **Single-workspace key**: every request operates on that workspace
    automatically. No header needed.

    - **Multi-workspace key**: pass `X-Workspace-Id: <workspace-id>` on every
    request to pick which workspace
      the call hits. Without the header, you get `400 MISSING_WORKSPACE_ID` with the list of allowed
      workspace ids in the response.

    Call `GET /workspace` to inspect the workspace the current request resolved
    to, plus its plan and role.


    ## Credits


    Credits are consumed when a submission is created. Check the workspace
    balance at `GET /balance`.

    Use `POST /clips/info` to see the exact cost before committing.
servers:
  - url: https://api.cut.pro/api/v1
security: []
tags:
  - name: Workspace
    description: >-
      The workspace this request resolved to. Single-workspace keys always
      resolve to their bound workspace. Multi-workspace keys resolve via the
      `X-Workspace-Id` header — credits, submissions, clips and renders belong
      to whichever workspace the header selects on each request.
  - name: Videos
    description: >-
      Your clipping library — the source videos you have submitted for AI
      clipping.
  - name: Submissions
    description: >-
      Clipping jobs — the full lifecycle from pre-flight analysis through AI
      processing to completion. Each submission is tied to a video and produces
      a set of generated clips when it completes.
  - name: Clips
    description: >-
      AI-generated highlight clips produced by a completed submission. Each clip
      includes timestamps, a relevance score, and signed URLs for streaming and
      downloading. Clips can have a template applied and then be rendered to a
      final MP4.
  - name: Renders
    description: >-
      Video render jobs. After optionally applying a template to a clip, start a
      render to produce a final MP4. Poll the render until completed, then
      download the file.
  - name: Posts
    description: >-
      Multi-platform publishing. Create a post that references one or more
      edited clips plus the social connections to publish to, then poll it
      through `pending → processing → completed`. Failed items can be retried or
      removed without disturbing siblings that already published.
  - name: Templates
    description: >-
      Video editing templates that apply visual effects, captions, cropping, and
      other styles to clips in bulk. List your templates to find an ID to pass
      to `apply_template`.
  - name: Balance
    description: >-
      Credit balance and ledger of the workspace this API key represents.
      Credits are consumed when you create a submission. For full workspace
      metadata (plan, seats, role, member count) see `GET /workspace`.
  - name: Connections
    description: >-
      Social media accounts connected to this workspace — the IDs you pass as
      `connection_id` when creating a post. To connect a new account, sign in at
      [cut.pro](https://cut.pro) and use the in-app OAuth flow; connection
      lifecycle is not exposed via API.
paths:
  /clips/{videoId}/submissions:
    get:
      tags:
        - Submissions
      summary: List submissions
      description: >-
        Returns a paginated list of all clipping submissions for a video, newest
        first. Use this to audit past runs, find a specific submission ID, or
        check whether a job is still in progress.
      operationId: listSubmissions
      parameters:
        - name: videoId
          in: path
          required: true
          schema:
            type: string
        - name: page
          in: query
          required: false
          schema:
            minimum: 1
            description: 'Page number (default: 1)'
            type: number
        - name: limit
          in: query
          required: false
          schema:
            minimum: 1
            maximum: 100
            description: 'Items per page (default: 20, max: 100)'
            type: number
      responses:
        '200':
          description: Response for status 200
          content:
            application/json:
              schema:
                type: object
                required:
                  - submissions
                  - pagination
                properties:
                  submissions:
                    type: array
                    items:
                      type: object
                      required:
                        - submission_id
                        - status
                        - error_code
                        - estimated_time
                        - queue_position
                        - is_priority
                        - strategy_id
                        - timeframe
                        - credit_cost
                        - is_reclip
                        - clips_count
                        - created_at
                        - completed_at
                      properties:
                        submission_id:
                          description: Unique submission ID
                          type: string
                        status:
                          type: string
                          enum:
                            - queued
                            - downloading
                            - transcribing
                            - video_analysis
                            - analyzing
                            - finalizing
                            - completed
                            - failed
                        error_code:
                          anyOf:
                            - type: string
                              enum:
                                - download_failed
                            - type: string
                              enum:
                                - download_access_denied
                            - type: string
                              enum:
                                - download_members_only
                            - type: string
                              enum:
                                - download_private_video
                            - type: string
                              enum:
                                - download_geo_restricted
                            - type: string
                              enum:
                                - download_timeout
                            - type: string
                              enum:
                                - download_network
                            - type: string
                              enum:
                                - download_no_audio
                            - type: string
                              enum:
                                - download_not_available
                            - type: string
                              enum:
                                - download_removed_by_uploader
                            - type: string
                              enum:
                                - download_premiere_not_started
                            - type: string
                              enum:
                                - download_live_in_progress
                            - type: string
                              enum:
                                - transcribe_failed
                            - type: string
                              enum:
                                - video_analysis_failed
                            - type: string
                              enum:
                                - analyze_failed
                            - type: string
                              enum:
                                - generate_failed
                            - type: string
                              enum:
                                - empty_transcript
                            - type: string
                              enum:
                                - unknown
                          nullable: true
                        estimated_time:
                          description: >-
                            Estimated seconds until completion; `null` once
                            processing has started
                          type: number
                          nullable: true
                        queue_position:
                          description: >-
                            Position in the processing queue; `null` once
                            processing has started
                          type: number
                          nullable: true
                        is_priority:
                          description: '`true` if this submission has priority processing'
                          type: boolean
                        strategy_id:
                          description: >-
                            ID of the clipping strategy used; `null` for default
                            settings
                          type: string
                          nullable: true
                        timeframe:
                          type: object
                          required:
                            - start
                            - end
                          properties:
                            start:
                              description: Start offset in seconds
                              type: number
                            end:
                              description: End offset in seconds
                              type: number
                          description: >-
                            Portion of the video that was processed; `null` if
                            the full video was submitted
                          nullable: true
                        credit_cost:
                          description: Credits charged for this submission
                          type: number
                          nullable: true
                        is_reclip:
                          description: >-
                            `true` if this video was re-submitted — a discounted
                            rate may have applied
                          type: boolean
                        clips_count:
                          description: >-
                            Number of AI-generated clips available; only
                            meaningful when `status` is `completed`
                          type: number
                        created_at:
                          description: >-
                            ISO 8601 timestamp of when this submission was
                            created
                          type: string
                        completed_at:
                          description: >-
                            ISO 8601 timestamp of when this submission finished,
                            or `null` if still running
                          type: string
                          nullable: true
                  pagination:
                    type: object
                    required:
                      - current_page
                      - total_pages
                      - total_count
                      - has_next_page
                      - has_previous_page
                      - limit
                    properties:
                      current_page:
                        description: Current page number (1-based)
                        type: number
                      total_pages:
                        description: Total number of pages
                        type: number
                      total_count:
                        description: Total number of items across all pages
                        type: number
                      has_next_page:
                        type: boolean
                      has_previous_page:
                        type: boolean
                      limit:
                        description: Items per page used for this response
                        type: number
        '404':
          description: Response for status 404
          content:
            application/json:
              schema:
                type: object
                required:
                  - code
                properties:
                  code:
                    type: string
                    enum:
                      - CLIP_NOT_FOUND
      security:
        - apiKey: []
components:
  securitySchemes:
    apiKey:
      type: apiKey
      in: header
      name: X-Api-Key

````