---
title: "Add a mask effect"
method: POST
path: "/projects/{projectId}/effects/mask"
tags: ["Platform"]
---

# Add a mask effect

`POST /projects/{projectId}/effects/mask`

## Request

- Base URL: `https://blitzreels.com/api/v1`
- URL: `https://blitzreels.com/api/v1/projects/{projectId}/effects/mask`
- Auth: API key in header `Authorization`

Add a mask effect.

## Path parameters

- `projectId` string, required

## Request body

- object
  - `timeline_item_id` string, uuid: Optional unused ID for the new effect timeline item. Omit to generate one; this is not the ID of an existing clip.
  - `content_item_id` string, uuid: Optional unused ID for the new effect content item. Omit to generate one.
  - `effect_id` string, uuid: Optional unused ID for the new effect. Omit to generate one.
  - `name` string
  - `start_time_seconds` number
  - `duration_seconds` number
  - `easing` 'linear' | 'easeIn' | 'easeOut' | 'easeInOut'
  - `layer_index` integer
  - `order_index` integer
  - `settings` object
    - `shape` 'rectangle' | 'rounded' | 'ellipse' | 'circle'
    - `position` object
      - `x` number
      - `y` number
    - `size` object
      - `width` number
      - `height` number
    - `rotation` number
    - `feather` number
    - `blur` number
    - `opacity` number
    - `invert` boolean
    - `cornerRadius` number
    - `edgeFalloff` 'linear' | 'smooth' | 'sharp'
    - `blendMode` 'normal' | 'multiply' | 'screen' | 'overlay' | 'softLight'
    - `shadow` object
      - `enabled` boolean
      - `offsetX` number
      - `offsetY` number
      - `blur` number
      - `spread` number
      - `color` string
      - `opacity` number

## Response `200`

Successful response

- object
  - `success` true, required
  - `project_id` string, required
  - `timeline_item_id` string, required
  - `content_item_id` string, required
  - `effect_id` string, required
  - `effect_type` 'zoom' | 'mask' | 'colorgrade' | 'transition' | 'remotion', required
  - `txid` number, nullable, required

## Other responses

- `400`: Invalid input data
- `401`: Authorization not provided
- `403`: Insufficient access
- `500`: Internal server error

---

[API](https://skmtc.dev/blitzreels/apis/blitzreels-api.md) · [All operations](https://skmtc.dev/blitzreels/apis/blitzreels-api/llms.txt) · [OpenAPI document](https://skmtc.dev/blitzreels/apis/blitzreels-api/revisions/35608b12471d?raw)
