# Action Operators

`bpy.ops.action.``clean`(threshold=0.001, channels=False)

  Simplify F-Curves by removing closely spaced keyframes

  Parameters: | threshold (float in [0, inf], (optional)) – Threshold channels (boolean, (optional)) – Channels

`bpy.ops.action.``clickselect`(extend=False, column=False, channel=False)

  Select keyframes by clicking on them

  Parameters: | extend (boolean, (optional)) – Extend Select, Toggle keyframe selection instead of leaving newly selected keyframes only column (boolean, (optional)) – Column Select, Select all keyframes that occur on the same frame as the one under the mouse channel (boolean, (optional)) – Only Channel, Select all the keyframes in the channel under the mouse

`bpy.ops.action.``copy`()

  Copy selected keyframes to the copy/paste buffer

`bpy.ops.action.``delete`()

  Remove all selected keyframes

`bpy.ops.action.``duplicate`()

  Make a copy of all selected keyframes

`bpy.ops.action.``duplicate_move`(ACTION_OT_duplicate=None, TRANSFORM_OT_transform=None)

  Make a copy of all selected keyframes and move them

  Parameters: | ACTION_OT_duplicate (`ACTION_OT_duplicate`, (optional)) – Duplicate Keyframes, Make a copy of all selected keyframes TRANSFORM_OT_transform (`TRANSFORM_OT_transform`, (optional)) – Transform, Transform selected items by mode type

`bpy.ops.action.``extrapolation_type`(type='CONSTANT')

  Set extrapolation mode for selected F-Curves

  Parameters: | type (enum in [‘CONSTANT’, ‘LINEAR’, ‘MAKE_CYCLIC’, ‘CLEAR_CYCLIC’], (optional)) – Type `CONSTANT` Constant Extrapolation, Values on endpoint keyframes are held. `LINEAR` Linear Extrapolation, Straight-line slope of end segments are extended past the endpoint keyframes. `MAKE_CYCLIC` Make Cyclic (F-Modifier), Add Cycles F-Modifier if one doesn’t exist already. `CLEAR_CYCLIC` Clear Cyclic (F-Modifier), Remove Cycles F-Modifier if not needed anymore.

`bpy.ops.action.``frame_jump`()

  Set the current frame to the average frame value of selected keyframes

`bpy.ops.action.``handle_type`(type='FREE')

  Set type of handle for selected keyframes

  Parameters: | type (enum in [‘FREE’, ‘VECTOR’, ‘ALIGNED’, ‘AUTO’, ‘AUTO_CLAMPED’], (optional)) – Type `FREE` Free. `VECTOR` Vector. `ALIGNED` Aligned. `AUTO` Automatic. `AUTO_CLAMPED` Auto Clamped, Auto handles clamped to not overshoot.

`bpy.ops.action.``interpolation_type`(type='CONSTANT')

  Set interpolation mode for the F-Curve segments starting from the selected keyframes

  Parameters: | type (enum in [‘CONSTANT’, ‘LINEAR’, ‘BEZIER’, ‘SINE’, ‘QUAD’, ‘CUBIC’, ‘QUART’, ‘QUINT’, ‘EXPO’, ‘CIRC’, ‘BACK’, ‘BOUNCE’, ‘ELASTIC’], (optional)) – Type `CONSTANT` Constant, No interpolation, value of A gets held until B is encountered. `LINEAR` Linear, Straight-line interpolation between A and B (i.e. no ease in/out). `BEZIER` Bezier, Smooth interpolation between A and B, with some control over curve shape. `SINE` Sinusoidal, Sinusoidal easing (weakest, almost linear but with a slight curvature). `QUAD` Quadratic, Quadratic easing. `CUBIC` Cubic, Cubic easing. `QUART` Quartic, Quartic easing. `QUINT` Quintic, Quintic easing. `EXPO` Exponential, Exponential easing (dramatic). `CIRC` Circular, Circular easing (strongest and most dynamic). `BACK` Back, Cubic easing with overshoot and settle. `BOUNCE` Bounce, Exponentially decaying parabolic bounce, like when objects collide. `ELASTIC` Elastic, Exponentially decaying sine wave, like an elastic band.

`bpy.ops.action.``keyframe_insert`(type='ALL')

  Insert keyframes for the specified channels

  Parameters: | type (enum in [‘ALL’, ‘SEL’, ‘GROUP’], (optional)) – Type

`bpy.ops.action.``keyframe_type`(type='KEYFRAME')

  Set type of keyframe for the selected keyframes

  Parameters: | type (enum in [‘KEYFRAME’, ‘BREAKDOWN’, ‘EXTREME’, ‘JITTER’], (optional)) – Type `KEYFRAME` Keyframe, Normal keyframe - e.g. for key poses. `BREAKDOWN` Breakdown, A breakdown pose - e.g. for transitions between key poses. `EXTREME` Extreme, An ‘extreme’ pose, or some other purpose as needed. `JITTER` Jitter, A filler or baked keyframe for keying on ones, or some other purpose as needed.

`bpy.ops.action.``layer_next`()

  Switch to editing action in animation layer above the current action in the NLA Stack

`bpy.ops.action.``layer_prev`()

  Switch to editing action in animation layer below the current action in the NLA Stack

`bpy.ops.action.``markers_make_local`()

  Move selected scene markers to the active Action as local ‘pose’ markers

`bpy.ops.action.``mirror`(type='CFRA')

  Flip selected keyframes over the selected mirror line

  Parameters: | type (enum in [‘CFRA’, ‘XAXIS’, ‘MARKER’], (optional)) – Type `CFRA` By Times over Current frame, Flip times of selected keyframes using the current frame as the mirror line. `XAXIS` By Values over Value=0, Flip values of selected keyframes (i.e. negative values become positive, and vice versa). `MARKER` By Times over First Selected Marker, Flip times of selected keyframes using the first selected marker as the reference point.

`bpy.ops.action.``new`()

  Create new action

`bpy.ops.action.``paste`(offset='START', merge='MIX', flipped=False)

  Paste keyframes from copy/paste buffer for the selected channels, starting on the current frame

  Parameters: | offset (enum in [‘START’, ‘END’, ‘RELATIVE’, ‘NONE’], (optional)) – Offset, Paste time offset of keys `START` Frame Start, Paste keys starting at current frame. `END` Frame End, Paste keys ending at current frame. `RELATIVE` Frame Relative, Paste keys relative to the current frame when copying. `NONE` No Offset, Paste keys from original time. merge (enum in [‘MIX’, ‘OVER_ALL’, ‘OVER_RANGE’, ‘OVER_RANGE_ALL’], (optional)) – Type, Method of merging pasted keys and existing `MIX` Mix, Overlay existing with new keys. `OVER_ALL` Overwrite All, Replace all keys. `OVER_RANGE` Overwrite Range, Overwrite keys in pasted range. `OVER_RANGE_ALL` Overwrite Entire Range, Overwrite keys in pasted range, using the range of all copied keys. flipped (boolean, (optional)) – Flipped, Paste keyframes from mirrored bones if they exist

`bpy.ops.action.``previewrange_set`()

  Set Preview Range based on extents of selected Keyframes

`bpy.ops.action.``push_down`()

  Push action down on to the NLA stack as a new strip

`bpy.ops.action.``sample`()

  Add keyframes on every frame between the selected keyframes

`bpy.ops.action.``select_all_toggle`(invert=False)

  Toggle selection of all keyframes

  Parameters: | invert (boolean, (optional)) – Invert

`bpy.ops.action.``select_border`(gesture_mode=0, xmin=0, xmax=0, ymin=0, ymax=0, extend=True, axis_range=False)

  Select all keyframes within the specified region

  Parameters: | gesture_mode (int in [-inf, inf], (optional)) – Gesture Mode xmin (int in [-inf, inf], (optional)) – X Min xmax (int in [-inf, inf], (optional)) – X Max ymin (int in [-inf, inf], (optional)) – Y Min ymax (int in [-inf, inf], (optional)) – Y Max extend (boolean, (optional)) – Extend, Extend selection instead of deselecting everything first axis_range (boolean, (optional)) – Axis Range

`bpy.ops.action.``select_column`(mode='KEYS')

  Select all keyframes on the specified frame(s)

  Parameters: | mode (enum in [‘KEYS’, ‘CFRA’, ‘MARKERS_COLUMN’, ‘MARKERS_BETWEEN’], (optional)) – Mode

`bpy.ops.action.``select_leftright`(mode='CHECK', extend=False)

  Select keyframes to the left or the right of the current frame

  Parameters: | mode (enum in [‘CHECK’, ‘LEFT’, ‘RIGHT’], (optional)) – Mode extend (boolean, (optional)) – Extend Select

`bpy.ops.action.``select_less`()

  Deselect keyframes on ends of selection islands

`bpy.ops.action.``select_linked`()

  Select keyframes occurring in the same F-Curves as selected ones

`bpy.ops.action.``select_more`()

  Select keyframes beside already selected ones

`bpy.ops.action.``snap`(type='CFRA')

  Snap selected keyframes to the times specified

  Parameters: | type (enum in [‘CFRA’, ‘NEAREST_FRAME’, ‘NEAREST_SECOND’, ‘NEAREST_MARKER’], (optional)) – Type `CFRA` Current frame, Snap selected keyframes to the current frame. `NEAREST_FRAME` Nearest Frame, Snap selected keyframes to the nearest (whole) frame (use to fix accidental sub-frame offsets). `NEAREST_SECOND` Nearest Second, Snap selected keyframes to the nearest second. `NEAREST_MARKER` Nearest Marker, Snap selected keyframes to the nearest marker.

`bpy.ops.action.``stash`(create_new=True)

  Store this action in the NLA stack as a non-contributing strip for later use

  Parameters: | create_new (boolean, (optional)) – Create New Action, Create a new action once the existing one has been safely stored

`bpy.ops.action.``stash_and_create`()

  Store this action in the NLA stack as a non-contributing strip for later use, and create a new action

`bpy.ops.action.``unlink`(force_delete=False)

  Unlink this action from the active action slot (and/or exit Tweak Mode)

  Parameters: | force_delete (boolean, (optional)) – Force Delete, Clear Fake User and remove copy stashed in this datablock’s NLA stack

`bpy.ops.action.``view_all`()

  Reset viewable area to show full keyframe range

`bpy.ops.action.``view_frame`()

  Reset viewable area to show range around current frame

`bpy.ops.action.``view_selected`()

  Reset viewable area to show selected keyframes range