# List Transcodings

> List Transcodings in the authenticated Project, newest first by default.

```json
{
  "path": "/transcodings",
  "method": "get",
  "schema": {
    "description": "List Transcodings in the authenticated Project, newest first by default.",
    "operationId": "listTranscodings",
    "parameters": [
      {
        "description": "Maximum number of Transcodings to return.",
        "in": "query",
        "name": "limit",
        "required": false,
        "schema": {
          "default": 100,
          "maximum": 100,
          "minimum": 1,
          "type": "integer"
        }
      },
      {
        "description": "Number of Transcodings to skip.",
        "in": "query",
        "name": "offset",
        "required": false,
        "schema": {
          "default": 0,
          "minimum": 0,
          "type": "integer"
        }
      },
      {
        "description": "Id filters by an exact Transcoding ID. Omit to include all matching resources.",
        "in": "query",
        "name": "id",
        "required": false,
        "schema": {
          "maxLength": 64,
          "minLength": 1,
          "type": "string"
        }
      },
      {
        "description": "Filter by Transcoding status.",
        "in": "query",
        "name": "status",
        "required": false,
        "schema": {
          "$ref": "#/components/schemas/TranscodingStatus"
        }
      },
      {
        "description": "Filter Transcodings linked to this Source. Omit to include Transcodings from all Sources in the Project.",
        "in": "query",
        "name": "source_id",
        "required": false,
        "schema": {
          "maxLength": 64,
          "minLength": 1,
          "type": "string"
        }
      },
      {
        "description": "Filter by output Storage ID.",
        "in": "query",
        "name": "storage_id",
        "required": false,
        "schema": {
          "maxLength": 64,
          "minLength": 1,
          "type": "string"
        }
      },
      {
        "description": "Created at or after this Unix timestamp in seconds.",
        "in": "query",
        "name": "created.gte",
        "required": false,
        "schema": {
          "maximum": 253402300799,
          "minimum": 0,
          "type": "integer"
        }
      },
      {
        "description": "Created at or before this Unix timestamp in seconds.",
        "in": "query",
        "name": "created.lte",
        "required": false,
        "schema": {
          "maximum": 253402300799,
          "minimum": 0,
          "type": "integer"
        }
      },
      {
        "description": "Creation-time ordering. Defaults to newest first.",
        "in": "query",
        "name": "created.sort",
        "required": false,
        "schema": {
          "default": "desc",
          "enum": [
            "asc",
            "desc"
          ],
          "type": "string"
        }
      }
    ],
    "responses": {
      "200": {
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/TranscodingListResponse",
              "examples": [
                {
                  "data": [
                    {
                      "created_at": "2026-10-16T10:00:00Z",
                      "files": [],
                      "format": {
                        "crf": 21,
                        "disable_audio": true,
                        "duration": 60.1,
                        "framerate": 30,
                        "gop": 120,
                        "height": 720,
                        "id": "mp4_h264",
                        "movflags": "faststart",
                        "per_title": false,
                        "pixfmt": "yuv420p",
                        "preset": "faster",
                        "seek": 0,
                        "width": 1280
                      },
                      "id": "tcg_example",
                      "metadata": {},
                      "processing_stage": "queued",
                      "source_id": "src_example",
                      "status": "preparing",
                      "storage": {
                        "id": "stor_example",
                        "path": "exports/video.mp4"
                      },
                      "updated_at": "2026-10-16T10:00:00Z"
                    }
                  ],
                  "limit": 100,
                  "offset": 0,
                  "status": "success",
                  "total": 1
                }
              ]
            }
          }
        },
        "description": "List Transcodings"
      },
      "400": {
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ResponseErrorValidation"
            }
          }
        },
        "description": "Validation error"
      },
      "401": {
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ResponseErrorAuthentication"
            }
          }
        },
        "description": "Authentication error"
      },
      "403": {
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ResponseErrorForbidden"
            }
          }
        },
        "description": "Forbidden error"
      },
      "404": {
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ResponseErrorNotFound"
            }
          }
        },
        "description": "NotFound error"
      },
      "429": {
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ResponseErrorTooManyRequests"
            }
          }
        },
        "description": "TooManyRequests error"
      },
      "500": {
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ResponseErrorUnexpected"
            }
          }
        },
        "description": "Unexpected error"
      }
    },
    "security": [
      {
        "ProjectAccessToken": []
      }
    ],
    "summary": "List Transcodings",
    "tags": [
      "Transcodings"
    ],
    "x-codeSamples": [
      {
        "lang": "typescript",
        "source": "import Chunkify from '@chunkify/chunkify';\n\nconst client = new Chunkify({\n  projectAccessToken: 'My Project Access Token',\n});\n\n// Automatically fetches more pages as needed.\nfor await (const transcoding of client.transcodings.list()) {\n  console.log(transcoding.id);\n}"
      },
      {
        "lang": "python",
        "source": "from chunkify import Chunkify\n\nclient = Chunkify(\n    project_access_token=\"My Project Access Token\",\n)\n\n# Automatically fetches more pages as needed.\nfor transcoding in client.transcodings.list():\n    print(transcoding.id)"
      },
      {
        "lang": "php",
        "source": "\u003c?php\n\nuse Chunkify\\Client;\n\n$client = new Client(\n    projectAccessToken: 'My Project Access Token',\n);\n\n// Automatically fetches more pages as needed.\nforeach ($client-\u003etranscodings-\u003elist()-\u003epagingEachItem() as $transcoding) {\n    var_dump($transcoding-\u003eid);\n}"
      },
      {
        "lang": "golang",
        "source": "package main\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\n\t\"github.com/chunkifydev/chunkify-go\"\n\t\"github.com/chunkifydev/chunkify-go/option\"\n)\n\nfunc main() {\n\tclient := chunkify.NewClient(\n\t\toption.WithProjectAccessToken(\"My Project Access Token\"),\n\t)\n\tpage, err := client.Transcodings.List(\n\t\tcontext.TODO(),\n\t\tchunkify.TranscodingListParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfor page != nil {\n\t\tfor _, transcoding := range page.Data {\n\t\t\tfmt.Printf(\"%+v\\n\", transcoding.ID)\n\t\t}\n\t\tpage, err = page.GetNextPage()\n\t\tif err != nil {\n\t\t\tpanic(err.Error())\n\t\t}\n\t}\n}\n"
      }
    ]
  }
}
```



```json #/components/schemas/ResponseErrorValidation
{
  "properties": {
    "error": {
      "properties": {
        "code": {
          "const": 400,
          "description": "Code is the HTTP status code",
          "examples": [
            400
          ],
          "type": "integer"
        },
        "message": {
          "description": "Message is a human-readable error description",
          "examples": [
            "Invalid request parameters"
          ],
          "type": "string"
        },
        "type": {
          "const": "ValidationError",
          "description": "Type indicates the error category",
          "enum": [
            "ValidationError"
          ],
          "type": "string"
        }
      },
      "required": [
        "type",
        "code",
        "message"
      ],
      "type": "object"
    },
    "status": {
      "const": "error",
      "description": "Status indicates the response status \"error\"",
      "type": "string"
    }
  },
  "required": [
    "status",
    "error"
  ]
}
```



```json #/components/schemas/ResponseErrorAuthentication
{
  "description": "Error response",
  "properties": {
    "error": {
      "description": "Error response details",
      "properties": {
        "code": {
          "const": 401,
          "description": "Code is the HTTP status code",
          "examples": [
            401
          ],
          "type": "integer"
        },
        "message": {
          "description": "Message is a human-readable error description",
          "examples": [
            "Authentication error: invalid token or subscription inactive"
          ],
          "type": "string"
        },
        "type": {
          "const": "AuthenticationError",
          "description": "Type indicates the error category",
          "enum": [
            "AuthenticationError"
          ],
          "type": "string"
        }
      },
      "required": [
        "type",
        "code",
        "message"
      ],
      "type": "object"
    },
    "status": {
      "const": "error",
      "description": "Status indicates the response status \"error\"",
      "type": "string"
    }
  },
  "required": [
    "status",
    "error"
  ],
  "type": "object"
}
```



```json #/components/schemas/ResponseErrorForbidden
{
  "properties": {
    "error": {
      "description": "Error response details",
      "properties": {
        "code": {
          "const": 403,
          "description": "Code is the HTTP status code",
          "examples": [
            403
          ],
          "type": "integer"
        },
        "message": {
          "description": "Message is a human-readable error description",
          "examples": [
            "Unauthorized to perform this action"
          ],
          "type": "string"
        },
        "type": {
          "const": "ForbiddenError",
          "description": "Type indicates the error category",
          "enum": [
            "ForbiddenError"
          ],
          "type": "string"
        }
      },
      "required": [
        "type",
        "code",
        "message"
      ],
      "type": "object"
    },
    "status": {
      "const": "error",
      "description": "Status indicates the response status \"error\"",
      "type": "string"
    }
  },
  "required": [
    "status",
    "error"
  ]
}
```



```json #/components/schemas/ResponseErrorNotFound
{
  "description": "Error response",
  "properties": {
    "error": {
      "description": "Error response details",
      "properties": {
        "code": {
          "const": 404,
          "description": "Code is the HTTP status code",
          "examples": [
            404
          ],
          "type": "integer"
        },
        "message": {
          "description": "Message is a human-readable error description",
          "examples": [
            "Ressource not found"
          ],
          "type": "string"
        },
        "type": {
          "const": "NotFoundError",
          "description": "Type indicates the error category",
          "enum": [
            "NotFoundError"
          ],
          "type": "string"
        }
      },
      "required": [
        "type",
        "code",
        "message"
      ],
      "type": "object"
    },
    "status": {
      "const": "error",
      "description": "Status indicates the response status \"error\"",
      "type": "string"
    }
  },
  "required": [
    "status",
    "error"
  ],
  "type": "object"
}
```



```json #/components/schemas/ResponseErrorTooManyRequests
{
  "description": "Error response",
  "properties": {
    "error": {
      "description": "Error response details",
      "properties": {
        "code": {
          "const": 429,
          "description": "Code is the HTTP status code",
          "examples": [
            429
          ],
          "type": "integer"
        },
        "message": {
          "description": "Message is a human-readable error description",
          "examples": [
            "Rate limit exceeded"
          ],
          "type": "string"
        },
        "type": {
          "const": "TooManyRequestsError",
          "description": "Type indicates the error category",
          "enum": [
            "TooManyRequestsError"
          ],
          "type": "string"
        }
      },
      "required": [
        "type",
        "code",
        "message"
      ],
      "type": "object"
    },
    "status": {
      "const": "error",
      "description": "Status indicates the response status \"error\"",
      "type": "string"
    }
  },
  "required": [
    "status",
    "error"
  ],
  "type": "object"
}
```



```json #/components/schemas/ResponseErrorUnexpected
{
  "description": "Unexpected preview processing or storage failure.",
  "properties": {
    "error": {
      "properties": {
        "code": {
          "const": 500,
          "type": "integer"
        },
        "message": {
          "examples": [
            "Internal server error"
          ],
          "type": "string"
        },
        "type": {
          "const": "UnexpectedError",
          "type": "string"
        }
      },
      "required": [
        "type",
        "code",
        "message"
      ],
      "type": "object"
    },
    "status": {
      "const": "error",
      "type": "string"
    }
  },
  "required": [
    "status",
    "error"
  ],
  "type": "object"
}
```



```json #/components/schemas/TranscodingStatus
{
  "description": "Status is ready only after the output is validated and published. Temporary output becomes expired when its files are no longer available.",
  "enum": [
    "preparing",
    "ready",
    "failed",
    "cancelled",
    "expired"
  ],
  "type": "string"
}
```



```json #/components/schemas/TranscodingListResponse
{
  "description": "A page of Transcodings with the total matching count.",
  "properties": {
    "data": {
      "description": "Data contains the matching Transcoding resources.",
      "items": {
        "$ref": "#/components/schemas/Transcoding"
      },
      "type": "array"
    },
    "limit": {
      "description": "Limit specifies the maximum number of results in this page.",
      "minimum": 0,
      "type": "integer"
    },
    "offset": {
      "description": "Offset specifies the number of matching results skipped.",
      "minimum": 0,
      "type": "integer"
    },
    "status": {
      "const": "success",
      "description": "Status is success for a successful request.",
      "type": "string"
    },
    "total": {
      "description": "Total counts all matching Transcodings before pagination.",
      "minimum": 0,
      "type": "integer"
    }
  },
  "required": [
    "status",
    "data",
    "total",
    "limit",
    "offset"
  ],
  "type": "object"
}
```



```json #/components/schemas/Transcoding
{
  "description": "A standalone file-encoding request with its accepted settings and published files.",
  "properties": {
    "created_at": {
      "description": "CreatedAt specifies when the request was accepted.",
      "format": "date-time",
      "type": "string"
    },
    "created_by_token_id": {
      "description": "CreatedByTokenId specifies the Project token used to create the resource. It remains set after the token is revoked.\nOmitted for dashboard requests, MCP OAuth connections, Workflow actions, and unknown creators.",
      "examples": [
        "tok_2G6MJiNz71bHQGNzGwKx5cJwPFS"
      ],
      "type": "string"
    },
    "created_by_user_id": {
      "description": "CreatedByUserId specifies the team member who created the resource.\nOmitted for Workflow actions, unknown creators, and deleted accounts.",
      "examples": [
        "u_2G6MJiNz71bHQGNzGwKx5cJwPFS"
      ],
      "type": "string"
    },
    "created_via": {
      "$ref": "#/components/schemas/CreatedVia"
    },
    "delete_at": {
      "description": "DeleteAt specifies when this record is deleted: three days after its temporary output expires, otherwise when the team's data retention period ends, counted from when the request was accepted, and no sooner than three days after it finished. It does not delete files in customer-owned Storage. Omitted while the Transcoding is preparing.",
      "format": "date-time",
      "type": "string"
    },
    "error": {
      "$ref": "#/components/schemas/TranscodingError",
      "description": "Error describes why processing failed. Omitted when no processing error exists."
    },
    "expires_at": {
      "description": "ExpiresAt specifies when temporary output files expire. Omitted for customer output Storage and before the Transcoding is ready.",
      "format": "date-time",
      "type": "string"
    },
    "files": {
      "description": "Files contains the published output files and their measured properties, ordered by creation time. Empty until publication. Presigned URLs are refreshed on each read and included in lifecycle webhooks when available.",
      "items": {
        "$ref": "#/components/schemas/TranscodingFile"
      },
      "type": "array"
    },
    "format": {
      "$ref": "#/components/schemas/TranscodingFormat",
      "description": "Format contains the resolved encoding settings accepted at creation, including defaults, dimensions, frame rate and normalized seek and duration. Per-title rate control is resolved during processing. Measured media properties are available in Files."
    },
    "id": {
      "description": "Id uniquely identifies the Transcoding.",
      "type": "string"
    },
    "metadata": {
      "additionalProperties": {
        "type": "string"
      },
      "description": "Metadata contains the string values attached to the Transcoding.",
      "type": "object"
    },
    "processing_stage": {
      "$ref": "#/components/schemas/TranscodingProcessingStage",
      "description": "ProcessingStage specifies the current activity while the status is preparing. Omitted otherwise."
    },
    "progress": {
      "description": "Progress specifies the video encoding percentage. Available once processing starts and after the output is ready. Omitted for audio-only output; 100 requires published output.",
      "maximum": 100,
      "minimum": 0,
      "type": "number"
    },
    "ready_at": {
      "description": "ReadyAt specifies when the output was published. Omitted before the Transcoding is ready.",
      "format": "date-time",
      "type": "string"
    },
    "source_id": {
      "description": "SourceId identifies the original Source. Omitted after Source deletion.",
      "type": "string"
    },
    "status": {
      "$ref": "#/components/schemas/TranscodingStatus",
      "description": "Status reports processing or output expiry."
    },
    "storage": {
      "$ref": "#/components/schemas/TranscodingStorage",
      "description": "Storage contains the resolved output destination."
    },
    "updated_at": {
      "description": "UpdatedAt specifies when the request was last updated.",
      "format": "date-time",
      "type": "string"
    }
  },
  "required": [
    "id",
    "storage",
    "format",
    "status",
    "metadata",
    "files",
    "created_at",
    "updated_at"
  ],
  "type": "object"
}
```



```json #/components/schemas/TranscodingFile
{
  "description": "A validated media file published by a Transcoding.",
  "properties": {
    "audio_bitrate": {
      "description": "AudioBitrate specifies measured audio bits per second, or zero when unavailable. Omitted without audio.",
      "type": "integer"
    },
    "audio_codec": {
      "description": "AudioCodec specifies the measured audio codec. Omitted without audio.",
      "type": "string"
    },
    "audio_samplerate": {
      "description": "AudioSamplerate specifies measured audio samples per second. Omitted without audio.",
      "type": "integer"
    },
    "cdn_url": {
      "description": "CdnUrl provides the URL from the Storage CDN configuration. Omitted without a configured CDN or after file expiry.",
      "type": "string"
    },
    "created_at": {
      "description": "CreatedAt records when the validated file was published.",
      "format": "date-time",
      "type": "string"
    },
    "duration": {
      "description": "Duration specifies the measured output duration in seconds.",
      "exclusiveMinimum": 0,
      "type": "number"
    },
    "expires_at": {
      "description": "ExpiresAt specifies when a temporary output expires. Omitted for customer-owned output storage.",
      "format": "date-time",
      "type": "string"
    },
    "height": {
      "description": "Height specifies the measured video height in pixels. Omitted for audio-only files.",
      "type": "integer"
    },
    "id": {
      "description": "Id identifies this published Transcoding file.",
      "type": "string"
    },
    "mime_type": {
      "description": "MimeType specifies the media content type.",
      "type": "string"
    },
    "path": {
      "description": "Path specifies the output path relative to the Storage base_prefix saved when the Transcoding was created. Later Storage prefix changes do not move this file.",
      "type": "string"
    },
    "size": {
      "description": "Size specifies the measured file size in bytes.",
      "minimum": 1,
      "type": "integer"
    },
    "storage_id": {
      "description": "StorageId identifies the output Storage.",
      "type": "string"
    },
    "thumbnail_status": {
      "description": "ThumbnailStatus reports the optional dashboard preview result. Failure does not affect the media file. Omitted for audio-only files.",
      "enum": [
        "ready",
        "failed"
      ],
      "type": "string"
    },
    "thumbnails": {
      "description": "Thumbnails contains available dashboard preview images. Empty for audio-only files, failed previews or expired files.",
      "items": {
        "$ref": "#/components/schemas/TranscodingFileThumbnail"
      },
      "type": "array"
    },
    "transcoding_id": {
      "description": "TranscodingId identifies the Transcoding that produced this file.",
      "type": "string"
    },
    "url": {
      "description": "Url provides a signed download valid for at most ten minutes. Omitted when the file has expired or signing is unavailable.",
      "type": "string"
    },
    "video_bitrate": {
      "description": "VideoBitrate specifies measured video bits per second, or zero when unavailable. Omitted without video.",
      "type": "integer"
    },
    "video_codec": {
      "description": "VideoCodec specifies the measured video codec. Omitted for audio-only files.",
      "type": "string"
    },
    "video_framerate": {
      "description": "VideoFramerate specifies measured video frames per second. Omitted without video.",
      "type": "number"
    },
    "width": {
      "description": "Width specifies the measured video width in pixels. Omitted for audio-only files.",
      "type": "integer"
    }
  },
  "required": [
    "id",
    "transcoding_id",
    "storage_id",
    "path",
    "size",
    "mime_type",
    "duration",
    "thumbnails",
    "created_at"
  ],
  "type": "object"
}
```



```json #/components/schemas/TranscodingFileThumbnail
{
  "description": "An optional dashboard preview of the completed output.",
  "properties": {
    "format": {
      "description": "Format specifies the image encoding.",
      "enum": [
        "jpeg",
        "webp"
      ],
      "type": "string"
    },
    "height": {
      "description": "Height specifies the measured image height in pixels.",
      "type": "integer"
    },
    "size": {
      "description": "Size specifies the measured image size in bytes.",
      "type": "integer"
    },
    "url": {
      "description": "Url provides a signed image URL valid for at most ten minutes.",
      "type": "string"
    },
    "width": {
      "description": "Width specifies the measured image width in pixels.",
      "type": "integer"
    }
  },
  "required": [
    "format",
    "width",
    "height",
    "size",
    "url"
  ],
  "type": "object"
}
```



```json #/components/schemas/TranscodingFormat
{
  "description": "Resolved encoding settings accepted at creation. Only settings applicable to the selected streams and codec are included.",
  "properties": {
    "audio_bitrate": {
      "description": "AudioBitrate specifies the resolved audio bitrate in bits per second. Omitted for video-only output.",
      "maximum": 512000,
      "minimum": 32000,
      "type": "integer"
    },
    "audio_samplerate": {
      "description": "AudioSamplerate specifies the resolved audio samples per second. Omitted for video-only output.",
      "maximum": 96000,
      "minimum": 8000,
      "type": "integer"
    },
    "bufsize": {
      "description": "Bufsize specifies the resolved video buffer size in bits, including codec-level defaults. Omitted when no buffer applies.",
      "maximum": 50000000,
      "minimum": 1,
      "type": "integer"
    },
    "channels": {
      "description": "Channels specifies the resolved audio channel count: 1, 2, 6 or 8. Omitted for video-only output.",
      "maximum": 8,
      "minimum": 1,
      "type": "integer"
    },
    "cpu_used": {
      "description": "CpuUsed specifies the accepted VP9 encoder speed setting from 0 through 8. Omitted for other codecs.",
      "type": "string"
    },
    "crf": {
      "description": "Crf specifies the accepted constant quality. Omitted for bitrate-controlled, per-title and audio-only encoding.",
      "maximum": 63,
      "minimum": 0,
      "type": "integer"
    },
    "disable_audio": {
      "description": "DisableAudio is true for video-only output. Omitted when audio is selected.",
      "type": "boolean"
    },
    "duration": {
      "description": "Duration specifies the accepted output duration in seconds, including normalized trims.",
      "exclusiveMinimum": 0,
      "type": "number"
    },
    "framerate": {
      "description": "Framerate specifies the resolved video frames per second. Omitted for audio-only output.",
      "maximum": 240,
      "minimum": 0.001,
      "type": "number"
    },
    "gop": {
      "description": "Gop specifies the resolved maximum keyframe interval in frames. Omitted for audio-only output.",
      "maximum": 960,
      "minimum": 1,
      "type": "integer"
    },
    "height": {
      "description": "Height specifies the resolved video height in pixels. Omitted for audio-only output.",
      "maximum": 7680,
      "minimum": 2,
      "type": "integer"
    },
    "id": {
      "description": "Id specifies the resolved container and codec selection.",
      "enum": [
        "mp4_h264",
        "mp4_h265",
        "mp4_av1",
        "webm_vp9",
        "m4a_aac"
      ],
      "type": "string"
    },
    "level": {
      "description": "Level specifies the accepted codec level when explicitly selected.",
      "type": "integer"
    },
    "maxrate": {
      "description": "Maxrate specifies the resolved maximum video bitrate in bits per second, including codec-level defaults. Omitted when no maximum applies.",
      "maximum": 100000000,
      "minimum": 1,
      "type": "integer"
    },
    "minrate": {
      "description": "Minrate specifies the accepted minimum video bitrate in bits per second, when configured.",
      "maximum": 50000000,
      "minimum": 1,
      "type": "integer"
    },
    "movflags": {
      "description": "Movflags specifies MP4 packaging. MP4 video exports use faststart.",
      "type": "string"
    },
    "per_title": {
      "description": "PerTitle specifies whether video rate control is selected during content analysis. Omitted for audio-only output.",
      "type": "boolean"
    },
    "pixfmt": {
      "description": "Pixfmt specifies the accepted video pixel format. Omitted for audio-only output.",
      "type": "string"
    },
    "preset": {
      "description": "Preset specifies the accepted codec preset. Omitted when the codec does not use presets.",
      "type": "string"
    },
    "profilev": {
      "description": "Profilev specifies the accepted codec profile when explicitly selected.",
      "type": "string"
    },
    "quality": {
      "description": "Quality specifies the accepted VP9 deadline policy: good, best or realtime. Omitted for other codecs.",
      "type": "string"
    },
    "seek": {
      "description": "Seek specifies the accepted start position in source seconds, normalized to the output timeline.",
      "minimum": 0,
      "type": "number"
    },
    "video_bitrate": {
      "description": "VideoBitrate specifies the accepted video bitrate in bits per second. Omitted for CRF and per-title encoding.",
      "maximum": 100000000,
      "minimum": 1,
      "type": "integer"
    },
    "width": {
      "description": "Width specifies the resolved video width in pixels. Omitted for audio-only output.",
      "maximum": 7680,
      "minimum": 2,
      "type": "integer"
    }
  },
  "required": [
    "id",
    "seek",
    "duration"
  ],
  "type": "object"
}
```



```json #/components/schemas/TranscodingProcessingStage
{
  "description": "ProcessingStage specifies the current preparation activity. queued means the request is waiting for processing capacity.",
  "enum": [
    "queued",
    "starting",
    "encoding",
    "finalizing",
    "uploading"
  ],
  "type": "string"
}
```



```json #/components/schemas/TranscodingStatus
{
  "description": "Status is ready only after the output is validated and published. Temporary output becomes expired when its files are no longer available.",
  "enum": [
    "preparing",
    "ready",
    "failed",
    "cancelled",
    "expired"
  ],
  "type": "string"
}
```



```json #/components/schemas/TranscodingStorage
{
  "description": "The resolved output destination for a Transcoding.",
  "properties": {
    "id": {
      "description": "Id identifies the output Storage.",
      "type": "string"
    },
    "path": {
      "description": "Path specifies the output file path relative to the Storage base_prefix saved at creation.",
      "type": "string"
    }
  },
  "required": [
    "id",
    "path"
  ],
  "type": "object"
}
```



```json #/components/schemas/CreatedVia
{
  "description": "CreatedVia specifies how the resource was created: api for API requests, dashboard for the Chunkify dashboard, mcp for MCP clients, and workflow for Workflow actions.\nOmitted when the creator is unknown.",
  "enum": [
    "api",
    "dashboard",
    "mcp",
    "workflow"
  ],
  "examples": [
    "api"
  ],
  "type": "string"
}
```



```json #/components/schemas/TranscodingError
{
  "description": "A customer-facing Transcoding processing failure.",
  "properties": {
    "code": {
      "description": "Code identifies the processing failure.",
      "type": "string"
    },
    "message": {
      "description": "Message describes the failure without internal worker or provider diagnostics.",
      "type": "string"
    },
    "stage": {
      "$ref": "#/components/schemas/TranscodingProcessingStage",
      "description": "Stage identifies where processing failed."
    }
  },
  "required": [
    "code",
    "stage",
    "message"
  ],
  "type": "object"
}
```



```json #/components/schemas/TranscodingProcessingStage
{
  "description": "ProcessingStage specifies the current preparation activity. queued means the request is waiting for processing capacity.",
  "enum": [
    "queued",
    "starting",
    "encoding",
    "finalizing",
    "uploading"
  ],
  "type": "string"
}
```