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

# cut clips

> Cut many moments out of one recording at once: each span becomes its own clip, a timeline of its own inside the project, shaped, punched in on the words, cropped to the subject and captioned in one look. timeline_id is the project: any timeline of the workspace, usually one made for the set with manage_timelines create; clips of a project carry parent_id. In and out points move up to 1.2 seconds onto the nearest word edge when the recording has stored words (transcribe_media with ref reads them; without them spans are cut as given). Each clip that lands is returned with its timeline_id, name and landed span; a span the project already holds comes back in skipped, and one that could not be cut in failed. The first cut puts the set on the workspace feed. For one clip, edit_timeline addClip with source. Free, except captioning a recording without stored words and reading a subject for the crop: cloud processing.



## OpenAPI

````yaml /openapi.json post /tools/cut_clips
openapi: 3.1.0
info:
  title: Eversince API
  version: '1'
  description: >-
    Every Eversince tool as one POST call, plus the routes beside them: the tool
    list, account and keys, uploads, webhooks and models. The prose is at
    https://docs.eversince.ai.
servers:
  - url: https://eversince.ai/api/v1
security:
  - bearer: []
tags:
  - name: Discovery
    description: The tool list, the same on the MCP server, the REST API and the CLI.
  - name: Workspace
    description: Jobs, balances, settings, templates, skills and the overview.
  - name: Library
    description: >-
      Items, search, import, reading media, comments, boards, calendars, the
      brand kit and public links.
  - name: Timeline
    description: 'Video editing: timelines, clips, captions, sound, language and rendering.'
  - name: Canvas
    description: 'Still editing: canvases, slides, layers and rendering.'
  - name: Generation
    description: Image, video and audio generation, upscaling, cutouts and models.
  - name: Research
    description: 'What platforms publish: pulling and keeping posts.'
  - name: Account
    description: Balances, keys, workspaces and script sessions.
  - name: Uploads
    description: Files into the library by presigned upload or by URL.
  - name: Webhooks
    description: Job results posted to a URL as they complete.
  - name: Models
    description: Generation models and cost estimates.
paths:
  /tools/cut_clips:
    post:
      tags:
        - Timeline
      summary: cut clips
      description: >-
        Cut many moments out of one recording at once: each span becomes its own
        clip, a timeline of its own inside the project, shaped, punched in on
        the words, cropped to the subject and captioned in one look. timeline_id
        is the project: any timeline of the workspace, usually one made for the
        set with manage_timelines create; clips of a project carry parent_id. In
        and out points move up to 1.2 seconds onto the nearest word edge when
        the recording has stored words (transcribe_media with ref reads them;
        without them spans are cut as given). Each clip that lands is returned
        with its timeline_id, name and landed span; a span the project already
        holds comes back in skipped, and one that could not be cut in failed.
        The first cut puts the set on the workspace feed. For one clip,
        edit_timeline addClip with source. Free, except captioning a recording
        without stored words and reading a subject for the crop: cloud
        processing.
      operationId: cut_clips
      parameters:
        - $ref: '#/components/parameters/IdempotencyKey'
        - $ref: '#/components/parameters/WorkspaceId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                timeline_id:
                  type: string
                  description: >-
                    The project the clips land in: any timeline, empty or not,
                    or a clip already in it. The recording itself is ref.
                ref:
                  type: string
                  description: The recording being cut, as a library ref.
                clips:
                  minItems: 1
                  maxItems: 50
                  type: array
                  items:
                    type: object
                    properties:
                      source:
                        type: array
                        prefixItems:
                          - type: number
                          - type: number
                        description: >-
                          [start_seconds, end_seconds] in the recording, as the
                          transcript and search_footage give them.
                      name:
                        description: >-
                          What this clip is called, shown on its tab and its
                          tile. Unnamed clips are numbered.
                        type: string
                        maxLength: 80
                      note:
                        description: >-
                          One line on why this moment, drawn under its tile when
                          the set is published.
                        type: string
                        maxLength: 280
                      platforms:
                        description: >-
                          Where this cut goes: tiktok (9:16), instagram-reels
                          (9:16), instagram-feed (1:1), youtube-shorts (9:16),
                          youtube (16:9), facebook-reels (9:16), facebook-feed
                          (1:1), x (16:9), threads (9:16), linkedin (1:1),
                          pinterest (9:16). The first sets the shape unless
                          aspect is given; all are drawn as marks under the
                          tile.
                        maxItems: 6
                        type: array
                        items:
                          type: string
                      aspect:
                        description: This clip's shape, over its platform's and the set's.
                        type: string
                        enum:
                          - '16:9'
                          - '9:16'
                          - '21:9'
                          - '9:21'
                          - '1:1'
                          - '4:3'
                          - '3:4'
                          - '3:2'
                          - '2:3'
                          - '5:4'
                          - '4:5'
                      hook:
                        description: >-
                          A line shown for the clip's first seconds, in the
                          set's hook_style. Only where this moment wants one.
                        type: string
                        maxLength: 60
                      score:
                        description: >-
                          How sure you are this moment works for what the user
                          wants, out of ten. Shown on the tile.
                        type: integer
                        minimum: 0
                        maximum: 10
                    required:
                      - source
                  description: >-
                    The moments, in the order they should be numbered. Up to 50
                    a call.
                aspect:
                  description: >-
                    The shape every clip is cut at, 9:16 for shorts. Absent
                    leaves each clip at the project's.
                  type: string
                  enum:
                    - '16:9'
                    - '9:16'
                    - '21:9'
                    - '9:21'
                    - '1:1'
                    - '4:3'
                    - '3:4'
                    - '3:2'
                    - '2:3'
                    - '5:4'
                    - '4:5'
                captions:
                  description: >-
                    Caption every clip in this look: a template saved for the
                    workspace, or a built-in one: Subtitles, Kinetic, One word,
                    Karaoke, Broadcast, Boxed, Story, Social, Hook. Absent
                    leaves the clips uncaptioned.
                  type: string
                hook_style:
                  description: >-
                    How every hook in the set looks; absent, a white box with
                    dark bold type near the top for three seconds: font_family,
                    font_size (px at the clip's resolution), font_weight (100 to
                    900), color, background_color (null for none),
                    background_opacity, background_padding, background_radius,
                    position (top-left to bottom-right), offset_y,
                    text_transform (none|uppercase|lowercase|capitalize),
                    animation (none|fade|slide|pop), stroke_color, stroke_width,
                    seconds (0.5 to 15).
                  type: object
                  propertyNames:
                    type: string
                  additionalProperties: {}
                emphasis:
                  description: The words this set is about, lit and marked.
                  type: object
                  properties:
                    words:
                      description: >-
                        The words drawn in the emphasis color wherever they are
                        spoken. Matched whole and case-insensitively.
                      maxItems: 30
                      type: array
                      items:
                        type: string
                    color:
                      description: >-
                        What those words are drawn in. Absent takes the look's
                        own accent.
                      type: string
                    emoji:
                      description: >-
                        An emoji written into the line after a word, as
                        {"launch":"🚀"}. Use sparingly: one or two across a
                        clip.
                      type: object
                      propertyNames:
                        type: string
                      additionalProperties:
                        type: string
                bleep:
                  description: >-
                    Bleep swearing: the sound covered where it is said and the
                    word starred in the captions. true takes the usual list.
                  anyOf:
                    - type: boolean
                      const: true
                    - type: object
                      properties:
                        words:
                          description: >-
                            Words to bleep beyond the usual swearing and slurs,
                            matched whole.
                          maxItems: 50
                          type: array
                          items:
                            type: string
                        only_these:
                          description: Bleep only the words given.
                          type: boolean
                        with:
                          description: A tone over each word, or silence. Absent is a tone.
                          type: string
                          enum:
                            - tone
                            - silence
                zoom:
                  description: >-
                    Punch in on the words, as auto_zoom does. Absent leaves the
                    framing still.
                  type: string
                  enum:
                    - light
                    - medium
                    - strong
                reframe:
                  description: >-
                    Move each clip's crop to follow the subject, for a cut whose
                    shape differs from the recording's. speaker follows whoever
                    is talking where two people share the frame (needs speakers
                    on the recording).
                  anyOf:
                    - type: boolean
                    - type: string
                      const: speaker
                layout:
                  description: >-
                    For a stream or tutorial with a face-cam: the camera in one
                    band and the screen in the other, each cropped to its
                    region, on tall and square clips. Regions come off a frame
                    (inspect_media). Replaces reframe and zoom.
                  type: object
                  properties:
                    face:
                      type: object
                      properties:
                        x:
                          type: number
                          minimum: 0
                          maximum: 1
                        'y':
                          type: number
                          minimum: 0
                          maximum: 1
                        w:
                          type: number
                          minimum: 0.03
                          maximum: 1
                        h:
                          type: number
                          minimum: 0.03
                          maximum: 1
                      required:
                        - x
                        - 'y'
                        - w
                        - h
                      description: Where the camera sits in the recording.
                    screen:
                      description: >-
                        The part of the screen to show. Absent shows the whole
                        picture.
                      type: object
                      properties:
                        x:
                          type: number
                          minimum: 0
                          maximum: 1
                        'y':
                          type: number
                          minimum: 0
                          maximum: 1
                        w:
                          type: number
                          minimum: 0.03
                          maximum: 1
                        h:
                          type: number
                          minimum: 0.03
                          maximum: 1
                      required:
                        - x
                        - 'y'
                        - w
                        - h
                    face_share:
                      description: How much of the height the camera takes. Absent is 0.4.
                      type: number
                      minimum: 0.2
                      maximum: 0.6
                    face_at:
                      description: Which band the camera takes. Absent is top.
                      type: string
                      enum:
                        - top
                        - bottom
                  required:
                    - face
                allow_duplicates:
                  description: >-
                    Cut a span the project already holds a clip of. Off, such a
                    span is skipped and the clip it already is named in
                    `skipped`, so a retried call cannot double the set.
                  type: boolean
                context:
                  description: 'Optional: one sentence shown to the user beside this action.'
                  type: string
                  maxLength: 600
              required:
                - timeline_id
                - ref
                - clips
      responses:
        '200':
          description: >-
            Done, or a job started for work that runs longer (follow it with
            get_jobs).
          content:
            application/json:
              schema:
                type: object
                required:
                  - ok
                  - data
                  - meta
                properties:
                  ok:
                    const: true
                  data:
                    type: object
                    additionalProperties: true
                  meta:
                    type: object
                    properties:
                      request_id:
                        type: string
                      cost:
                        $ref: '#/components/schemas/Cost'
                      cloud_processing:
                        $ref: '#/components/schemas/CloudProcessing'
                  media:
                    type: array
                    items:
                      type: object
                      additionalProperties: true
        default:
          $ref: '#/components/responses/Error'
components:
  parameters:
    IdempotencyKey:
      name: Idempotency-Key
      in: header
      required: false
      schema:
        type: string
      description: >-
        Retry a paid dispatch safely: the same key returns the job already
        dispatched instead of charging again.
    WorkspaceId:
      name: x-workspace-id
      in: header
      required: false
      schema:
        type: string
      description: The workspace this one call acts in, when it is not the key's own.
  schemas:
    Cost:
      type: object
      description: AI credits the call cost.
      additionalProperties: true
    CloudProcessing:
      type: object
      description: Cloud processing the call used, and what is left.
      properties:
        ran_on:
          const: cloud
        minutes:
          type: number
        queued_minutes:
          type: number
        left_minutes:
          type: number
        bought_minutes:
          type: number
        note:
          type: string
    Error:
      type: object
      required:
        - ok
        - error
      properties:
        ok:
          const: false
        error:
          type: object
          required:
            - code
            - message
            - retryable
          properties:
            code:
              type: string
            message:
              type: string
              description: What went wrong, in words to act on.
            retryable:
              type: boolean
            suggested_action:
              type: string
              description: The next step that works.
            cloud_processing:
              $ref: '#/components/schemas/CloudProcessing'
  responses:
    Error:
      description: The call was refused or failed.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  securitySchemes:
    bearer:
      type: http
      scheme: bearer
      description: >-
        An API key (es_live_…) from Settings, under API keys, or an OAuth access
        token.

````