---
title: "List videos"
method: GET
path: "/clips"
tags: ["Videos"]
---

# List videos

`GET /clips`

## Request

- Base URL: `https://api.cut.pro/api/v1`
- URL: `https://api.cut.pro/api/v1/clips`
- Auth: API key in header `X-Api-Key`

Returns a paginated list of all source videos in your library, ordered by most recent submission. Each item includes lifecycle counters (clips generated, edits, exports, posts) and the status of the latest submission.

## Query parameters

- `page` number: Page number (default: 1)
- `limit` number: Items per page (default: 12, max: 100)
- `sort` 'recent' | 'oldest' | 'title' | 'title-desc'

## Response `200`

Response for status 200

- object
  - `videos` object[], required
    - `id` string, required: Unique video ID
    - `title` string, required: Video title as reported by the source platform
    - `author` string, required: Channel or creator name
    - `platform` string, required: Source platform — e.g. `youtube`, `twitch`, `kick`, `tiktok`, `upload`
    - `duration` number, required: Video duration in seconds
    - `thumbnail_url` string, required: URL of the video thumbnail image
    - `video_url` string, nullable, required: Direct URL to the source video, or `null` if no longer available
    - `clips_count` number, required: Total AI-generated clips available across all submissions
    - `edited_count` number, required: Number of clips customised in the editor
    - `exported_count` number, required: Number of clips rendered and exported
    - `posted_count` number, required: Number of clips posted to social media
    - `submissions_count` number, required: Total number of clipping submissions for this video
    - `last_submission` object
      - `status` 'queued' | 'downloading' | 'transcribing' | 'video_analysis' | 'analyzing' | 'finalizing' | 'completed' | 'failed', required
      - `error_code` 'DOWNLOAD_FAILED' | 'DOWNLOAD_ACCESS_DENIED' | 'DOWNLOAD_MEMBERS_ONLY' | 'DOWNLOAD_PRIVATE_VIDEO' | 'DOWNLOAD_GEO_RESTRICTED' | 'DOWNLOAD_TIMEOUT' | 'DOWNLOAD_NETWORK' | 'DOWNLOAD_NO_AUDIO' | 'DOWNLOAD_NOT_AVAILABLE' | 'DOWNLOAD_REMOVED_BY_UPLOADER' | 'DOWNLOAD_PREMIERE_NOT_STARTED' | 'DOWNLOAD_LIVE_IN_PROGRESS' | 'TRANSCRIBE_FAILED' | 'VIDEO_ANALYSIS_FAILED' | 'ANALYZE_FAILED' | 'GENERATE_FAILED' | 'EMPTY_TRANSCRIPT' | 'UPLOAD_CORRUPTED' | 'UNKNOWN', nullable, required
      - `waiting_reason` 'SOURCE_PREMIERE_SCHEDULED' | 'SOURCE_LIVE_IN_PROGRESS' | 'SOURCE_VOD_PROCESSING', nullable, required: Why the submission is waiting on its source: `SOURCE_PREMIERE_SCHEDULED` (scheduled premiere that has not aired), `SOURCE_LIVE_IN_PROGRESS` (livestream still on air), `SOURCE_VOD_PROCESSING` (broadcast ended, platform still publishing the recording).
      - `waiting_until` string, nullable, required: ISO 8601 timestamp announced for the premiere, when known
      - `estimated_time` number, nullable, required: Estimated seconds remaining until completion
      - `queue_position` number, nullable, required: Position in the processing queue; `null` once processing has started
      - `is_priority` boolean, required: `true` if this submission has priority processing
      - `created_at` string, required: ISO 8601 timestamp of when the submission was created
      - `completed_at` string, nullable, required: ISO 8601 timestamp of when the submission finished, or `null` if still running
  - `pagination` object, required
    - `current_page` number, required: Current page number (1-based)
    - `total_pages` number, required: Total number of pages
    - `total_count` number, required: Total number of items across all pages
    - `has_next_page` boolean, required
    - `has_previous_page` boolean, required
    - `limit` number, required: Items per page used for this response

---

[API](https://skmtc.dev/cut/apis/cutpro-api.md) · [All operations](https://skmtc.dev/cut/apis/cutpro-api/llms.txt) · [OpenAPI document](https://skmtc.dev/cut/apis/cutpro-api/revisions/89d0bafe529c?raw)
