| Prop | Type | Required | Example | Value Range | Description | 
|---|---|---|---|---|---|
| type | string | false | video | video | animation | The type of the project (e.g., "video" or "animation"). | 
| width | number | true | 1920 | 720 - 3840 | The width of the project canvas. Used as the base resolution for scaling. | 
| height | number | true | 1080 | 720 - 3840 | The height of the project canvas. Used as the base resolution for scaling. | 
| fill | string | object | true | #000000 | - | The background of the project canvas. Can be a hex color string (e.g., "#000000") or a gradient object with type "linear" or "radial", colorStops array, and start/end coordinates. | 
| duration | number | true | 10 | > 0 | The total duration of the project, in seconds. | 
| view | array | true | - | - | An array of elements representing the visual content in the project. This array cannot be empty. | 
| audio | array | false | - | - | An array of audio tracks used in the project. | 
| effect | array | false | - | - | An array of visual effects applied to the canvas. | 
| transition | array | false | - | - | An array of transitions applied between different views. | 
| remoteFonts | array | false | - | - | An array of remote font definitions that can be used in text and caption elements. | 
The remoteFonts field allows you to include custom web fonts in your project. Each font definition must include a direct link to the font file (HTTPS only) and font metadata.
| Prop | Type | Required | Example | Value Range | Description | 
|---|---|---|---|---|---|
| family | string | true | My Custom Font | - | The font family name that will be used to reference this font in text elements. | 
| url | string | true | https://example.com/fonts/mycustomfont.woff2 | - | Direct HTTPS URL to the font file. Must be a public accessible link. | 
| weight | string | false | 400 | 100 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900 | The font weight. Common values are 100-900. | 
| style | string | false | normal | normal, italic | The font style. | 
| formatHint | string | false | woff2 | woff2, woff, opentype, truetype | The format of the font file. This helps browsers optimize font loading. | 
| unicodeRange | string | false | U+0000-00FF | - | Optional Unicode range to limit which characters this font applies to. | 
Important:
- Font URLs must use HTTPS protocol for security
 - The font file must be publicly accessible
 - Supported formats: WOFF2 (recommended), WOFF, OpenType, TrueType
 - You can define multiple variants of the same font family with different weights and styles
 
The fill field can accept a gradient object with the following structure:
| Prop | Type | Required | Example | Value Range | Description | 
|---|---|---|---|---|---|
| type | string | true | - | linear, radial | The type of gradient. | 
| colorStops | array | true | - | - | An array of color stop objects defining colors and their positions along the gradient. | 
| start | object | true | - | - | The starting coordinate of the gradient as an object with x and y properties. | 
| end | object | true | - | - | The ending coordinate of the gradient as an object with x and y properties. | 
| Prop | Type | Required | Example | Value Range | Description | 
|---|---|---|---|---|---|
| color | string | true | - | - | The color value at this stop, in hex format. | 
| offset | number | true | - | 0 - 1 | The position of this color stop along the gradient (0.0 to 1.0). | 
1{
2    "type": "",
3    "width": 1920,
4    "height": 1080,
5    "fill": "#000000",
6    "view": [
7      {
8        "id": "8ecf7475-2c6c-47f9-827b-a09c7913f4c0",
9        "type": "Image",
10        "start": 0,
11        "duration": 5,
12        "trackIndex": 0,
13        "x": -570.0335392757963,
14        "y": -170.90659033307685,
15        "blendMode": "normal",
16        "anchorX": 1302,
17        "anchorY": 2312,
18        "rotation": 0,
19        "scaleX": 0.23356401384083045,
20        "scaleY": 0.23356401384083045,
21        "alpha": 1,
22        "skewX": 0,
23        "skewY": 0,
24        "keyframes": [],
25        "externalUrl": "https://images.pexels.com/photos/30465303/pexels-photo-30465303.jpeg",
26        "ext": "jpeg"
27      }
28    ],
29    "audio": [],
30    "effect": [],
31    "transition": [],
32    "remoteFonts": [
33      {
34        "family": "My Custom Font",
35        "url": "https://example.com/fonts/mycustomfont.woff2",
36        "weight": "400",
37        "style": "normal",
38        "formatHint": "woff2"
39      },
40      {
41        "family": "My Custom Font",
42        "url": "https://example.com/fonts/mycustomfont-bold.woff2",
43        "weight": "700",
44        "style": "normal",
45        "formatHint": "woff2"
46      }
47    ],
48    "version": 0,
49    "duration": 5
50  }
51