@shotstack/schemas 1.9.7 → 1.9.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1896,7 +1896,7 @@
1896
1896
  "example": "uppercase"
1897
1897
  },
1898
1898
  "size": {
1899
- "description": "The font size of the active word in pixels. Overrides the scale property when set.",
1899
+ "description": "The font size in pixels. Can be used as an alternative to font.size.",
1900
1900
  "type": "number",
1901
1901
  "minimum": 1,
1902
1902
  "maximum": 500,
@@ -1974,6 +1974,15 @@
1974
1974
  "description": "Font properties for the active/highlighted word.",
1975
1975
  "type": "object",
1976
1976
  "properties": {
1977
+ "family": {
1978
+ "description": "The font family for the active word. Inherits from the base font.family when not set.",
1979
+ "type": "string",
1980
+ "example": "Roboto"
1981
+ },
1982
+ "weight": {
1983
+ "description": "The weight of the font for the active word. Can be a number (100-900) or a string. Inherits from the base font.weight when not set.\n",
1984
+ "default": "400"
1985
+ },
1977
1986
  "color": {
1978
1987
  "description": "The active word color using hexadecimal color notation.",
1979
1988
  "type": "string",
@@ -1995,7 +2004,7 @@
1995
2004
  "example": 1
1996
2005
  },
1997
2006
  "size": {
1998
- "description": "The font size of the active word in pixels. Overrides the scale property when set.",
2007
+ "description": "The font size of the active word in pixels.",
1999
2008
  "type": "number",
2000
2009
  "minimum": 1,
2001
2010
  "maximum": 500,
@@ -2050,14 +2059,6 @@
2050
2059
  ]
2051
2060
  }
2052
2061
  ]
2053
- },
2054
- "scale": {
2055
- "description": "Scale multiplier for the active word. 1.0 is normal size, 1.2 is 20% larger.",
2056
- "type": "number",
2057
- "minimum": 0.5,
2058
- "maximum": 2,
2059
- "default": 1,
2060
- "example": 1.2
2061
2062
  }
2062
2063
  },
2063
2064
  "additionalProperties": false
@@ -2263,938 +2264,187 @@
2263
2264
  "fadeIn",
2264
2265
  "fadeOut",
2265
2266
  "fadeInFadeOut"
2266
- ],
2267
- "type": "string"
2268
- }
2269
- },
2270
- "additionalProperties": false,
2271
- "required": [
2272
- "type",
2273
- "text",
2274
- "voice"
2275
- ]
2276
- },
2277
- "HtmlAsset": {
2278
- "deprecated": true,
2279
- "description": "**Notice: The HtmlAsset is deprecated, use the [TextAsset](#tocs_textasset) instead.**\n\nThe HtmlAsset clip type lets you create text based layout and formatting using\nHTML and CSS. You can also set the height and width of a bounding box for the HTML\ncontent to sit within. Text and elements will wrap within the bounding box.\n",
2280
- "type": "object",
2281
- "properties": {
2282
- "type": {
2283
- "enum": [
2284
- "html"
2285
- ],
2286
- "default": "html",
2287
- "description": "The type of asset - set to `html` for HTML.",
2288
- "type": "string"
2289
- },
2290
- "html": {
2291
- "description": "The HTML text string. See list of [supported HTML tags](https://shotstack.io/docs/guide/architecting-an-application/html-support/#supported-html-tags).",
2292
- "type": "string",
2293
- "example": "<p>Hello <b>World</b></p>"
2294
- },
2295
- "css": {
2296
- "description": "The CSS text string to apply styling to the HTML. See list of [support CSS properties](https://shotstack.io/docs/guide/architecting-an-application/html-support/#supported-css-properties).",
2297
- "type": "string",
2298
- "example": "p { color: #ffffff; } b { color: #ffff00; }"
2299
- },
2300
- "width": {
2301
- "description": "Set the width of the HTML asset bounding box in pixels. Text will wrap to fill the bounding box.",
2302
- "type": "integer",
2303
- "example": 400
2304
- },
2305
- "height": {
2306
- "description": "Set the width of the HTML asset bounding box in pixels. Text and elements will be masked if they exceed the height of the bounding box.",
2307
- "type": "integer",
2308
- "example": 200
2309
- },
2310
- "background": {
2311
- "description": "Apply a background color behind the HTML bounding box using. Set the text color using hexadecimal color notation. Transparency is supported by setting the first two characters of the hex string (opposite to HTML), i.e. #80ffffff will be white with 50% transparency.",
2312
- "type": "string"
2313
- },
2314
- "position": {
2315
- "description": "Place the HTML in one of nine predefined positions within the HTML area. <ul>\n <li>`top` - top (center)</li>\n <li>`topRight` - top right</li>\n <li>`right` - right (center)</li>\n <li>`bottomRight` - bottom right</li>\n <li>`bottom` - bottom (center)</li>\n <li>`bottomLeft` - bottom left</li>\n <li>`left` - left (center)</li>\n <li>`topLeft` - top left</li>\n <li>`center` - center</li>\n</ul>",
2316
- "enum": [
2317
- "top",
2318
- "topRight",
2319
- "right",
2320
- "bottomRight",
2321
- "bottom",
2322
- "bottomLeft",
2323
- "left",
2324
- "topLeft",
2325
- "center"
2326
- ],
2327
- "type": "string"
2328
- }
2329
- },
2330
- "additionalProperties": false,
2331
- "required": [
2332
- "type",
2333
- "html"
2334
- ]
2335
- },
2336
- "TitleAsset": {
2337
- "deprecated": true,
2338
- "description": "**Notice: The TitleAsset is deprecated, use the [TextAsset](#tocs_textasset) instead.**\n\nThe TitleAsset clip type lets you create video titles from a text string and apply styling and positioning.\n",
2339
- "type": "object",
2340
- "properties": {
2341
- "type": {
2342
- "enum": [
2343
- "title"
2344
- ],
2345
- "default": "title",
2346
- "description": "The type of asset - set to `title` for titles.",
2347
- "type": "string"
2348
- },
2349
- "text": {
2350
- "description": "The title text string - i.e. \"My Title\".",
2351
- "type": "string",
2352
- "example": "Hello World"
2353
- },
2354
- "style": {
2355
- "description": "Uses a preset to apply font properties and styling to the title. <ul>\n <li>`minimal`</li>\n <li>`blockbuster`</li>\n <li>`vogue`</li>\n <li>`sketchy`</li>\n <li>`skinny`</li>\n <li>`chunk`</li>\n <li>`chunkLight`</li>\n <li>`marker`</li>\n <li>`future`</li>\n <li>`subtitle`</li>\n</ul>",
2356
- "enum": [
2357
- "minimal",
2358
- "blockbuster",
2359
- "vogue",
2360
- "sketchy",
2361
- "skinny",
2362
- "chunk",
2363
- "chunkLight",
2364
- "marker",
2365
- "future",
2366
- "subtitle"
2367
- ],
2368
- "type": "string"
2369
- },
2370
- "color": {
2371
- "description": "Set the text color using hexadecimal color notation. Transparency is supported by setting the first two characters of the hex string (opposite to HTML), i.e. #80ffffff will be white with 50% transparency.",
2372
- "type": "string"
2373
- },
2374
- "size": {
2375
- "description": "Set the relative size of the text using predefined sizes from xx-small to xx-large. <ul>\n <li>`xx-small`</li>\n <li>`x-small`</li>\n <li>`small`</li>\n <li>`medium`</li>\n <li>`large`</li>\n <li>`x-large`</li>\n <li>`xx-large`</li>\n</ul>",
2376
- "enum": [
2377
- "xx-small",
2378
- "x-small",
2379
- "small",
2380
- "medium",
2381
- "large",
2382
- "x-large",
2383
- "xx-large"
2384
- ],
2385
- "type": "string"
2386
- },
2387
- "background": {
2388
- "description": "Apply a background color behind the text. Set the text color using hexadecimal color notation. Transparency is supported by setting the first two characters of the hex string (opposite to HTML), i.e. #80ffffff will be white with 50% transparency. Omit to use transparent background.",
2389
- "type": "string",
2390
- "example": "#000000"
2391
- },
2392
- "position": {
2393
- "description": "Place the title in one of nine predefined positions of the viewport. <ul>\n <li>`top` - top (center)</li>\n <li>`topRight` - top right</li>\n <li>`right` - right (center)</li>\n <li>`bottomRight` - bottom right</li>\n <li>`bottom` - bottom (center)</li>\n <li>`bottomLeft` - bottom left</li>\n <li>`left` - left (center)</li>\n <li>`topLeft` - top left</li>\n <li>`center` - center</li>\n</ul>",
2394
- "enum": [
2395
- "top",
2396
- "topRight",
2397
- "right",
2398
- "bottomRight",
2399
- "bottom",
2400
- "bottomLeft",
2401
- "left",
2402
- "topLeft",
2403
- "center"
2404
- ],
2405
- "type": "string"
2406
- },
2407
- "offset": {
2408
- "description": "Offset the location of the title relative to its position on the screen.",
2409
- "$ref": "#/components/schemas/Offset"
2410
- }
2411
- },
2412
- "additionalProperties": false,
2413
- "required": [
2414
- "type",
2415
- "text"
2416
- ]
2417
- },
2418
- "SvgAsset": {
2419
- "description": "The SvgAsset is used to add scalable vector graphics (SVG) to a video using raw SVG markup.\n\n```json\n{\n \"type\": \"svg\",\n \"src\": \"<svg width=\\\"100\\\" height=\\\"100\\\"><circle cx=\\\"50\\\" cy=\\\"50\\\" r=\\\"40\\\" fill=\\\"#FF0000\\\"/></svg>\"\n}\n```\n\n**Supported elements:** `<path>`, `<rect>`, `<circle>`, `<ellipse>`,\n`<line>`, `<polygon>`, `<polyline>`\n\n**Automatically extracted from SVG markup:**\n- Path data (converted to a single combined path)\n- Fill color (from `fill` attribute or `style`)\n- Stroke color and width (from attributes or `style`)\n- Dimensions (from `width`/`height` or `viewBox`)\n- Opacity (from `opacity` attribute)\n\nSee [W3C SVG 2 Specification](https://www.w3.org/TR/SVG2/) for path data syntax.\n",
2420
- "type": "object",
2421
- "properties": {
2422
- "type": {
2423
- "description": "The asset type - set to `svg` for SVG assets.",
2424
- "type": "string",
2425
- "enum": [
2426
- "svg"
2427
- ],
2428
- "default": "svg",
2429
- "example": "svg"
2430
- },
2431
- "src": {
2432
- "description": "Raw SVG markup string. The shape, fill, stroke, dimensions and opacity\nare automatically extracted from the SVG content.\n",
2433
- "type": "string",
2434
- "minLength": 1,
2435
- "maxLength": 500000,
2436
- "example": "<svg width=\"100\" height=\"100\"><circle cx=\"50\" cy=\"50\" r=\"40\" fill=\"#3498db\"/></svg>"
2437
- }
2438
- },
2439
- "additionalProperties": false,
2440
- "required": [
2441
- "type",
2442
- "src"
2443
- ],
2444
- "example": {
2445
- "type": "svg",
2446
- "src": "<svg width=\"200\" height=\"200\"><rect x=\"10\" y=\"10\" width=\"180\" height=\"180\" rx=\"20\" fill=\"#3498db\" stroke=\"#2C3E50\" stroke-width=\"3\"/></svg>"
2447
- }
2448
- },
2449
- "SvgShape": {
2450
- "description": "The shape definition for an SVG asset. Each shape type has its own specific\nproperties. The `type` field determines which shape is rendered.\n",
2451
- "oneOf": [
2452
- {
2453
- "$ref": "#/components/schemas/SvgRectangleShape"
2454
- },
2455
- {
2456
- "$ref": "#/components/schemas/SvgCircleShape"
2457
- },
2458
- {
2459
- "$ref": "#/components/schemas/SvgEllipseShape"
2460
- },
2461
- {
2462
- "$ref": "#/components/schemas/SvgLineShape"
2463
- },
2464
- {
2465
- "$ref": "#/components/schemas/SvgPolygonShape"
2466
- },
2467
- {
2468
- "$ref": "#/components/schemas/SvgStarShape"
2469
- },
2470
- {
2471
- "$ref": "#/components/schemas/SvgArrowShape"
2472
- },
2473
- {
2474
- "$ref": "#/components/schemas/SvgHeartShape"
2475
- },
2476
- {
2477
- "$ref": "#/components/schemas/SvgCrossShape"
2478
- },
2479
- {
2480
- "$ref": "#/components/schemas/SvgRingShape"
2481
- },
2482
- {
2483
- "$ref": "#/components/schemas/SvgPathShape"
2484
- }
2485
- ],
2486
- "discriminator": {
2487
- "propertyName": "type",
2488
- "mapping": {
2489
- "rectangle": "#/components/schemas/SvgRectangleShape",
2490
- "circle": "#/components/schemas/SvgCircleShape",
2491
- "ellipse": "#/components/schemas/SvgEllipseShape",
2492
- "line": "#/components/schemas/SvgLineShape",
2493
- "polygon": "#/components/schemas/SvgPolygonShape",
2494
- "star": "#/components/schemas/SvgStarShape",
2495
- "arrow": "#/components/schemas/SvgArrowShape",
2496
- "heart": "#/components/schemas/SvgHeartShape",
2497
- "cross": "#/components/schemas/SvgCrossShape",
2498
- "ring": "#/components/schemas/SvgRingShape",
2499
- "path": "#/components/schemas/SvgPathShape"
2500
- }
2501
- }
2502
- },
2503
- "SvgRectangleShape": {
2504
- "description": "A rectangle shape with optional rounded corners.\nThe rectangle is defined by its width and height dimensions.\n",
2505
- "type": "object",
2506
- "additionalProperties": false,
2507
- "properties": {
2508
- "type": {
2509
- "description": "The shape type - set to `rectangle`.",
2510
- "type": "string",
2511
- "enum": [
2512
- "rectangle"
2513
- ]
2514
- },
2515
- "width": {
2516
- "description": "The width of the rectangle in pixels.",
2517
- "type": "number",
2518
- "minimum": 1,
2519
- "maximum": 4096,
2520
- "example": 200
2521
- },
2522
- "height": {
2523
- "description": "The height of the rectangle in pixels.",
2524
- "type": "number",
2525
- "minimum": 1,
2526
- "maximum": 4096,
2527
- "example": 100
2528
- },
2529
- "cornerRadius": {
2530
- "description": "The corner radius for rounded corners in pixels.\nSet to `0` for sharp corners. The radius is automatically clamped\nto half of the smallest dimension.\n",
2531
- "type": "number",
2532
- "minimum": 0,
2533
- "maximum": 2048,
2534
- "default": 0,
2535
- "example": 10
2536
- }
2537
- },
2538
- "required": [
2539
- "type",
2540
- "width",
2541
- "height"
2542
- ]
2543
- },
2544
- "SvgCircleShape": {
2545
- "description": "A perfect circle shape defined by its radius.\nThe circle is centered at the shape's position.\n",
2546
- "type": "object",
2547
- "additionalProperties": false,
2548
- "properties": {
2549
- "type": {
2550
- "description": "The shape type - set to `circle`.",
2551
- "type": "string",
2552
- "enum": [
2553
- "circle"
2554
- ]
2555
- },
2556
- "radius": {
2557
- "description": "The radius of the circle in pixels.",
2558
- "type": "number",
2559
- "minimum": 1,
2560
- "maximum": 2048,
2561
- "example": 50
2562
- }
2563
- },
2564
- "required": [
2565
- "type",
2566
- "radius"
2567
- ]
2568
- },
2569
- "SvgEllipseShape": {
2570
- "description": "An ellipse (oval) shape with separate horizontal and vertical radii.\nThe ellipse is centered at the shape's position.\n",
2571
- "type": "object",
2572
- "additionalProperties": false,
2573
- "properties": {
2574
- "type": {
2575
- "description": "The shape type - set to `ellipse`.",
2576
- "type": "string",
2577
- "enum": [
2578
- "ellipse"
2579
- ]
2580
- },
2581
- "radiusX": {
2582
- "description": "The horizontal radius (semi-major axis) in pixels.",
2583
- "type": "number",
2584
- "minimum": 1,
2585
- "maximum": 2048,
2586
- "example": 80
2587
- },
2588
- "radiusY": {
2589
- "description": "The vertical radius (semi-minor axis) in pixels.",
2590
- "type": "number",
2591
- "minimum": 1,
2592
- "maximum": 2048,
2593
- "example": 50
2594
- }
2595
- },
2596
- "required": [
2597
- "type",
2598
- "radiusX",
2599
- "radiusY"
2600
- ]
2601
- },
2602
- "SvgLineShape": {
2603
- "description": "A straight line shape with a specified length and thickness.\nThe line is drawn horizontally by default and can be rotated using transform.\n",
2604
- "type": "object",
2605
- "additionalProperties": false,
2606
- "properties": {
2607
- "type": {
2608
- "description": "The shape type - set to `line`.",
2609
- "type": "string",
2610
- "enum": [
2611
- "line"
2612
- ]
2613
- },
2614
- "length": {
2615
- "description": "The length of the line in pixels.",
2616
- "type": "number",
2617
- "minimum": 1,
2618
- "maximum": 4096,
2619
- "example": 100
2620
- },
2621
- "thickness": {
2622
- "description": "The thickness of the line in pixels.",
2623
- "type": "number",
2624
- "minimum": 1,
2625
- "maximum": 500,
2626
- "example": 4
2627
- }
2628
- },
2629
- "required": [
2630
- "type",
2631
- "length",
2632
- "thickness"
2633
- ]
2634
- },
2635
- "SvgPolygonShape": {
2636
- "description": "A regular polygon shape with a specified number of sides.\nExamples: triangle (3), square (4), pentagon (5), hexagon (6), etc.\nThe polygon is inscribed in a circle of the given radius.\n",
2637
- "type": "object",
2638
- "additionalProperties": false,
2639
- "properties": {
2640
- "type": {
2641
- "description": "The shape type - set to `polygon`.",
2642
- "type": "string",
2643
- "enum": [
2644
- "polygon"
2645
- ]
2646
- },
2647
- "sides": {
2648
- "description": "The number of sides of the polygon.\nMinimum 3 (triangle), maximum 100 for practical use.\n",
2649
- "type": "integer",
2650
- "minimum": 3,
2651
- "maximum": 100,
2652
- "example": 6
2653
- },
2654
- "radius": {
2655
- "description": "The radius of the circumscribed circle in pixels.\nThis determines the size of the polygon.\n",
2656
- "type": "number",
2657
- "minimum": 1,
2658
- "maximum": 2048,
2659
- "example": 50
2660
- }
2661
- },
2662
- "required": [
2663
- "type",
2664
- "sides",
2665
- "radius"
2666
- ]
2667
- },
2668
- "SvgStarShape": {
2669
- "description": "A star shape with a specified number of points.\nThe star is defined by outer and inner radii, creating the characteristic\npointed appearance.\n",
2670
- "type": "object",
2671
- "additionalProperties": false,
2672
- "properties": {
2673
- "type": {
2674
- "description": "The shape type - set to `star`.",
2675
- "type": "string",
2676
- "enum": [
2677
- "star"
2678
- ]
2679
- },
2680
- "points": {
2681
- "description": "The number of points on the star.\nMinimum 3 for a triangle-like star, typically 5 for a classic star.\n",
2682
- "type": "integer",
2683
- "minimum": 3,
2684
- "maximum": 100,
2685
- "example": 5
2686
- },
2687
- "outerRadius": {
2688
- "description": "The outer radius in pixels - the distance from center to the tips of the points.\n",
2689
- "type": "number",
2690
- "minimum": 1,
2691
- "maximum": 2048,
2692
- "example": 50
2693
- },
2694
- "innerRadius": {
2695
- "description": "The inner radius in pixels - the distance from center to the inner vertices.\nShould be smaller than outerRadius for a star effect.\n",
2696
- "type": "number",
2697
- "minimum": 1,
2698
- "maximum": 2048,
2699
- "example": 25
2700
- }
2701
- },
2702
- "required": [
2703
- "type",
2704
- "points",
2705
- "outerRadius",
2706
- "innerRadius"
2707
- ]
2708
- },
2709
- "SvgArrowShape": {
2710
- "description": "An arrow shape pointing to the right by default.\nUse transform rotation to change direction.\n",
2711
- "type": "object",
2712
- "additionalProperties": false,
2713
- "properties": {
2714
- "type": {
2715
- "description": "The shape type - set to `arrow`.",
2716
- "type": "string",
2717
- "enum": [
2718
- "arrow"
2719
- ]
2720
- },
2721
- "length": {
2722
- "description": "The total length of the arrow from tail to tip in pixels.",
2723
- "type": "number",
2724
- "minimum": 1,
2725
- "maximum": 4096,
2726
- "example": 100
2727
- },
2728
- "headWidth": {
2729
- "description": "The width of the arrow head (the widest part) in pixels.",
2730
- "type": "number",
2731
- "minimum": 1,
2732
- "maximum": 1000,
2733
- "example": 40
2734
- },
2735
- "headLength": {
2736
- "description": "The length of the arrow head portion in pixels.",
2737
- "type": "number",
2738
- "minimum": 1,
2739
- "maximum": 1000,
2740
- "example": 30
2741
- },
2742
- "shaftWidth": {
2743
- "description": "The width of the arrow shaft (body) in pixels.",
2744
- "type": "number",
2745
- "minimum": 1,
2746
- "maximum": 1000,
2747
- "example": 20
2748
- }
2749
- },
2750
- "required": [
2751
- "type",
2752
- "length",
2753
- "headWidth",
2754
- "headLength",
2755
- "shaftWidth"
2756
- ]
2757
- },
2758
- "SvgHeartShape": {
2759
- "description": "A heart shape commonly used for love/like icons.\nThe heart is defined by a single size parameter.\n",
2760
- "type": "object",
2761
- "additionalProperties": false,
2762
- "properties": {
2763
- "type": {
2764
- "description": "The shape type - set to `heart`.",
2765
- "type": "string",
2766
- "enum": [
2767
- "heart"
2768
- ]
2769
- },
2770
- "size": {
2771
- "description": "The size of the heart in pixels.\nThis determines both the width and height proportionally.\n",
2772
- "type": "number",
2773
- "minimum": 1,
2774
- "maximum": 4096,
2775
- "example": 100
2776
- }
2777
- },
2778
- "required": [
2779
- "type",
2780
- "size"
2781
- ]
2782
- },
2783
- "SvgCrossShape": {
2784
- "description": "A cross or plus shape with equal or different arm lengths.\nCan be styled as a plus sign (+) or a cross (x with rotation).\n",
2785
- "type": "object",
2786
- "additionalProperties": false,
2787
- "properties": {
2788
- "type": {
2789
- "description": "The shape type - set to `cross`.",
2790
- "type": "string",
2791
- "enum": [
2792
- "cross"
2793
- ]
2794
- },
2795
- "width": {
2796
- "description": "The total width of the cross in pixels.",
2797
- "type": "number",
2798
- "minimum": 1,
2799
- "maximum": 4096,
2800
- "example": 100
2801
- },
2802
- "height": {
2803
- "description": "The total height of the cross in pixels.",
2804
- "type": "number",
2805
- "minimum": 1,
2806
- "maximum": 4096,
2807
- "example": 100
2808
- },
2809
- "thickness": {
2810
- "description": "The thickness of the cross arms in pixels.",
2811
- "type": "number",
2812
- "minimum": 1,
2813
- "maximum": 500,
2814
- "example": 20
2815
- }
2816
- },
2817
- "required": [
2818
- "type",
2819
- "width",
2820
- "height",
2821
- "thickness"
2822
- ]
2823
- },
2824
- "SvgRingShape": {
2825
- "description": "A ring (donut/annulus) shape - a circle with a circular hole in the center.\nThe ring is defined by outer and inner radii.\n",
2826
- "type": "object",
2827
- "additionalProperties": false,
2828
- "properties": {
2829
- "type": {
2830
- "description": "The shape type - set to `ring`.",
2831
- "type": "string",
2832
- "enum": [
2833
- "ring"
2834
- ]
2835
- },
2836
- "outerRadius": {
2837
- "description": "The outer radius of the ring in pixels.",
2838
- "type": "number",
2839
- "minimum": 1,
2840
- "maximum": 2048,
2841
- "example": 50
2842
- },
2843
- "innerRadius": {
2844
- "description": "The inner radius (hole) of the ring in pixels.\nMust be smaller than outerRadius.\n",
2845
- "type": "number",
2846
- "minimum": 0,
2847
- "maximum": 2048,
2848
- "example": 30
2849
- }
2850
- },
2851
- "required": [
2852
- "type",
2853
- "outerRadius",
2854
- "innerRadius"
2855
- ]
2856
- },
2857
- "SvgPathShape": {
2858
- "description": "A custom shape defined by SVG path data.\nSupports all standard SVG path commands for creating complex shapes.\n\n**Path Commands:**\n- `M x y` / `m dx dy` - Move to (absolute/relative)\n- `L x y` / `l dx dy` - Line to\n- `H x` / `h dx` - Horizontal line to\n- `V y` / `v dy` - Vertical line to\n- `C x1 y1 x2 y2 x y` / `c` - Cubic Bezier curve\n- `S x2 y2 x y` / `s` - Smooth cubic Bezier\n- `Q x1 y1 x y` / `q` - Quadratic Bezier curve\n- `T x y` / `t` - Smooth quadratic Bezier\n- `A rx ry angle large-arc sweep x y` / `a` - Elliptical arc\n- `Z` / `z` - Close path\n",
2859
- "type": "object",
2860
- "additionalProperties": false,
2861
- "properties": {
2862
- "type": {
2863
- "description": "The shape type - set to `path`.",
2864
- "type": "string",
2865
- "enum": [
2866
- "path"
2867
- ]
2868
- },
2869
- "d": {
2870
- "description": "The SVG path data string defining the shape.\nUses standard SVG path commands (M, L, C, Q, A, Z, etc.).\nExample: `M 0 0 L 100 0 L 100 100 L 0 100 Z` draws a square.\n",
2871
- "type": "string",
2872
- "minLength": 1,
2873
- "maxLength": 100000,
2874
- "example": "M 0 0 L 100 0 L 50 86.6 Z"
2875
- }
2876
- },
2877
- "required": [
2878
- "type",
2879
- "d"
2880
- ]
2881
- },
2882
- "SvgFill": {
2883
- "description": "Fill properties for SVG shapes. Supports solid colors and gradients.\nThe fill defines how the interior of a shape is painted.\n",
2884
- "oneOf": [
2885
- {
2886
- "$ref": "#/components/schemas/SvgSolidFill"
2887
- },
2888
- {
2889
- "$ref": "#/components/schemas/SvgLinearGradientFill"
2890
- },
2891
- {
2892
- "$ref": "#/components/schemas/SvgRadialGradientFill"
2893
- }
2894
- ],
2895
- "discriminator": {
2896
- "propertyName": "type",
2897
- "mapping": {
2898
- "solid": "#/components/schemas/SvgSolidFill",
2899
- "linear": "#/components/schemas/SvgLinearGradientFill",
2900
- "radial": "#/components/schemas/SvgRadialGradientFill"
2901
- }
2902
- }
2903
- },
2904
- "SvgSolidFill": {
2905
- "description": "A solid color fill for SVG shapes.",
2906
- "type": "object",
2907
- "additionalProperties": false,
2908
- "properties": {
2909
- "type": {
2910
- "description": "The fill type - set to `solid` for a single color fill.",
2911
- "type": "string",
2912
- "enum": [
2913
- "solid"
2914
- ],
2915
- "default": "solid"
2916
- },
2917
- "color": {
2918
- "description": "The fill color using hexadecimal color notation (e.g., `#FF0000` for red).\nMust be a 6-digit hex color code prefixed with `#`.\n",
2919
- "type": "string",
2920
- "pattern": "^#[A-Fa-f0-9]{6}$",
2921
- "default": "#000000",
2922
- "example": "#3498db"
2923
- },
2924
- "opacity": {
2925
- "description": "The opacity of the fill where `1` is fully opaque and `0` is fully transparent.\nValues between 0 and 1 create semi-transparent fills.\n",
2926
- "type": "number",
2927
- "minimum": 0,
2928
- "maximum": 1,
2929
- "default": 1,
2930
- "example": 0.8
2931
- }
2932
- },
2933
- "required": [
2934
- "type",
2935
- "color"
2936
- ]
2937
- },
2938
- "SvgLinearGradientFill": {
2939
- "description": "A linear gradient fill that transitions colors along a straight line.\nThe gradient direction is controlled by the `angle` property.\n",
2940
- "type": "object",
2941
- "additionalProperties": false,
2942
- "properties": {
2943
- "type": {
2944
- "description": "The fill type - set to `linear` for a linear gradient fill.",
2945
- "type": "string",
2946
- "enum": [
2947
- "linear"
2948
- ]
2949
- },
2950
- "angle": {
2951
- "description": "The angle of the gradient in degrees. `0` is horizontal (left to right),\n`90` is vertical (bottom to top), `180` is right to left, etc.\n",
2952
- "type": "number",
2953
- "minimum": 0,
2954
- "maximum": 360,
2955
- "default": 0,
2956
- "example": 45
2957
- },
2958
- "stops": {
2959
- "description": "Array of color stops that define the gradient colors and their positions.\nMust have at least 2 stops. Offsets should increase from 0 to 1.\n",
2960
- "type": "array",
2961
- "minItems": 2,
2962
- "items": {
2963
- "$ref": "#/components/schemas/SvgGradientStop"
2964
- }
2965
- },
2966
- "opacity": {
2967
- "description": "The overall opacity of the gradient where `1` is fully opaque and `0` is fully transparent.\n",
2968
- "type": "number",
2969
- "minimum": 0,
2970
- "maximum": 1,
2971
- "default": 1,
2972
- "example": 1
2973
- }
2974
- },
2975
- "required": [
2976
- "type",
2977
- "stops"
2978
- ]
2979
- },
2980
- "SvgRadialGradientFill": {
2981
- "description": "A radial gradient fill that transitions colors radiating outward from a center point.\nThe gradient creates a circular or elliptical color transition.\n",
2982
- "type": "object",
2983
- "additionalProperties": false,
2984
- "properties": {
2985
- "type": {
2986
- "description": "The fill type - set to `radial` for a radial gradient fill.",
2987
- "type": "string",
2988
- "enum": [
2989
- "radial"
2990
- ]
2991
- },
2992
- "stops": {
2993
- "description": "Array of color stops that define the gradient colors and their positions.\nMust have at least 2 stops. Offset `0` is the center, `1` is the outer edge.\n",
2994
- "type": "array",
2995
- "minItems": 2,
2996
- "items": {
2997
- "$ref": "#/components/schemas/SvgGradientStop"
2998
- }
2999
- },
3000
- "opacity": {
3001
- "description": "The overall opacity of the gradient where `1` is fully opaque and `0` is fully transparent.\n",
3002
- "type": "number",
3003
- "minimum": 0,
3004
- "maximum": 1,
3005
- "default": 1,
3006
- "example": 1
2267
+ ],
2268
+ "type": "string"
3007
2269
  }
3008
2270
  },
2271
+ "additionalProperties": false,
3009
2272
  "required": [
3010
2273
  "type",
3011
- "stops"
2274
+ "text",
2275
+ "voice"
3012
2276
  ]
3013
2277
  },
3014
- "SvgGradientStop": {
3015
- "description": "A color stop in a gradient. Each stop defines a color at a specific position\nalong the gradient vector. Gradients require at least 2 stops.\n",
2278
+ "HtmlAsset": {
2279
+ "deprecated": true,
2280
+ "description": "**Notice: The HtmlAsset is deprecated, use the [TextAsset](#tocs_textasset) instead.**\n\nThe HtmlAsset clip type lets you create text based layout and formatting using\nHTML and CSS. You can also set the height and width of a bounding box for the HTML\ncontent to sit within. Text and elements will wrap within the bounding box.\n",
3016
2281
  "type": "object",
3017
- "additionalProperties": false,
3018
2282
  "properties": {
3019
- "offset": {
3020
- "description": "Position of the color stop along the gradient vector.\n`0` represents the start and `1` represents the end of the gradient.\n",
3021
- "type": "number",
3022
- "minimum": 0,
3023
- "maximum": 1,
3024
- "example": 0.5
2283
+ "type": {
2284
+ "enum": [
2285
+ "html"
2286
+ ],
2287
+ "default": "html",
2288
+ "description": "The type of asset - set to `html` for HTML.",
2289
+ "type": "string"
3025
2290
  },
3026
- "color": {
3027
- "description": "The color at this stop using hexadecimal color notation.",
2291
+ "html": {
2292
+ "description": "The HTML text string. See list of [supported HTML tags](https://shotstack.io/docs/guide/architecting-an-application/html-support/#supported-html-tags).",
3028
2293
  "type": "string",
3029
- "pattern": "^#[A-Fa-f0-9]{6}$",
3030
- "example": "#e74c3c"
2294
+ "example": "<p>Hello <b>World</b></p>"
2295
+ },
2296
+ "css": {
2297
+ "description": "The CSS text string to apply styling to the HTML. See list of [support CSS properties](https://shotstack.io/docs/guide/architecting-an-application/html-support/#supported-css-properties).",
2298
+ "type": "string",
2299
+ "example": "p { color: #ffffff; } b { color: #ffff00; }"
2300
+ },
2301
+ "width": {
2302
+ "description": "Set the width of the HTML asset bounding box in pixels. Text will wrap to fill the bounding box.",
2303
+ "type": "integer",
2304
+ "example": 400
2305
+ },
2306
+ "height": {
2307
+ "description": "Set the width of the HTML asset bounding box in pixels. Text and elements will be masked if they exceed the height of the bounding box.",
2308
+ "type": "integer",
2309
+ "example": 200
2310
+ },
2311
+ "background": {
2312
+ "description": "Apply a background color behind the HTML bounding box using. Set the text color using hexadecimal color notation. Transparency is supported by setting the first two characters of the hex string (opposite to HTML), i.e. #80ffffff will be white with 50% transparency.",
2313
+ "type": "string"
2314
+ },
2315
+ "position": {
2316
+ "description": "Place the HTML in one of nine predefined positions within the HTML area. <ul>\n <li>`top` - top (center)</li>\n <li>`topRight` - top right</li>\n <li>`right` - right (center)</li>\n <li>`bottomRight` - bottom right</li>\n <li>`bottom` - bottom (center)</li>\n <li>`bottomLeft` - bottom left</li>\n <li>`left` - left (center)</li>\n <li>`topLeft` - top left</li>\n <li>`center` - center</li>\n</ul>",
2317
+ "enum": [
2318
+ "top",
2319
+ "topRight",
2320
+ "right",
2321
+ "bottomRight",
2322
+ "bottom",
2323
+ "bottomLeft",
2324
+ "left",
2325
+ "topLeft",
2326
+ "center"
2327
+ ],
2328
+ "type": "string"
3031
2329
  }
3032
2330
  },
2331
+ "additionalProperties": false,
3033
2332
  "required": [
3034
- "offset",
3035
- "color"
2333
+ "type",
2334
+ "html"
3036
2335
  ]
3037
2336
  },
3038
- "SvgStroke": {
3039
- "description": "Stroke (outline) properties for SVG shapes. The stroke defines how the outline\nof a shape is painted, including its color, width, and line style.\n",
2337
+ "TitleAsset": {
2338
+ "deprecated": true,
2339
+ "description": "**Notice: The TitleAsset is deprecated, use the [TextAsset](#tocs_textasset) instead.**\n\nThe TitleAsset clip type lets you create video titles from a text string and apply styling and positioning.\n",
3040
2340
  "type": "object",
3041
- "additionalProperties": false,
3042
2341
  "properties": {
3043
- "color": {
3044
- "description": "The stroke color using hexadecimal color notation.",
2342
+ "type": {
2343
+ "enum": [
2344
+ "title"
2345
+ ],
2346
+ "default": "title",
2347
+ "description": "The type of asset - set to `title` for titles.",
2348
+ "type": "string"
2349
+ },
2350
+ "text": {
2351
+ "description": "The title text string - i.e. \"My Title\".",
3045
2352
  "type": "string",
3046
- "pattern": "^#[A-Fa-f0-9]{6}$",
3047
- "default": "#000000",
3048
- "example": "#2c3e50"
2353
+ "example": "Hello World"
3049
2354
  },
3050
- "width": {
3051
- "description": "The width of the stroke in pixels. Must be greater than 0.\nLarger values create thicker outlines.\n",
3052
- "type": "number",
3053
- "minimum": 0,
3054
- "maximum": 100,
3055
- "default": 1,
3056
- "example": 2
2355
+ "style": {
2356
+ "description": "Uses a preset to apply font properties and styling to the title. <ul>\n <li>`minimal`</li>\n <li>`blockbuster`</li>\n <li>`vogue`</li>\n <li>`sketchy`</li>\n <li>`skinny`</li>\n <li>`chunk`</li>\n <li>`chunkLight`</li>\n <li>`marker`</li>\n <li>`future`</li>\n <li>`subtitle`</li>\n</ul>",
2357
+ "enum": [
2358
+ "minimal",
2359
+ "blockbuster",
2360
+ "vogue",
2361
+ "sketchy",
2362
+ "skinny",
2363
+ "chunk",
2364
+ "chunkLight",
2365
+ "marker",
2366
+ "future",
2367
+ "subtitle"
2368
+ ],
2369
+ "type": "string"
3057
2370
  },
3058
- "opacity": {
3059
- "description": "The opacity of the stroke where `1` is opaque and `0` is transparent.",
3060
- "type": "number",
3061
- "minimum": 0,
3062
- "maximum": 1,
3063
- "default": 1,
3064
- "example": 1
2371
+ "color": {
2372
+ "description": "Set the text color using hexadecimal color notation. Transparency is supported by setting the first two characters of the hex string (opposite to HTML), i.e. #80ffffff will be white with 50% transparency.",
2373
+ "type": "string"
3065
2374
  },
3066
- "lineCap": {
3067
- "description": "The shape at the end of open paths (lines, polylines, unclosed paths).\n<ul>\n <li>`butt` - flat edge perpendicular to the line (default)</li>\n <li>`round` - semicircular cap extending beyond the endpoint</li>\n <li>`square` - rectangular cap extending beyond the endpoint</li>\n</ul>\n",
3068
- "type": "string",
2375
+ "size": {
2376
+ "description": "Set the relative size of the text using predefined sizes from xx-small to xx-large. <ul>\n <li>`xx-small`</li>\n <li>`x-small`</li>\n <li>`small`</li>\n <li>`medium`</li>\n <li>`large`</li>\n <li>`x-large`</li>\n <li>`xx-large`</li>\n</ul>",
3069
2377
  "enum": [
3070
- "butt",
3071
- "round",
3072
- "square"
2378
+ "xx-small",
2379
+ "x-small",
2380
+ "small",
2381
+ "medium",
2382
+ "large",
2383
+ "x-large",
2384
+ "xx-large"
3073
2385
  ],
3074
- "default": "butt",
3075
- "example": "round"
2386
+ "type": "string"
3076
2387
  },
3077
- "lineJoin": {
3078
- "description": "The shape at the corners where two lines meet.\n<ul>\n <li>`miter` - sharp corner (default)</li>\n <li>`round` - rounded corner</li>\n <li>`bevel` - flattened corner</li>\n</ul>\n",
2388
+ "background": {
2389
+ "description": "Apply a background color behind the text. Set the text color using hexadecimal color notation. Transparency is supported by setting the first two characters of the hex string (opposite to HTML), i.e. #80ffffff will be white with 50% transparency. Omit to use transparent background.",
3079
2390
  "type": "string",
2391
+ "example": "#000000"
2392
+ },
2393
+ "position": {
2394
+ "description": "Place the title in one of nine predefined positions of the viewport. <ul>\n <li>`top` - top (center)</li>\n <li>`topRight` - top right</li>\n <li>`right` - right (center)</li>\n <li>`bottomRight` - bottom right</li>\n <li>`bottom` - bottom (center)</li>\n <li>`bottomLeft` - bottom left</li>\n <li>`left` - left (center)</li>\n <li>`topLeft` - top left</li>\n <li>`center` - center</li>\n</ul>",
3080
2395
  "enum": [
3081
- "miter",
3082
- "round",
3083
- "bevel"
2396
+ "top",
2397
+ "topRight",
2398
+ "right",
2399
+ "bottomRight",
2400
+ "bottom",
2401
+ "bottomLeft",
2402
+ "left",
2403
+ "topLeft",
2404
+ "center"
3084
2405
  ],
3085
- "default": "miter",
3086
- "example": "round"
3087
- },
3088
- "dashArray": {
3089
- "description": "Pattern of dashes and gaps for the stroke. An array of numbers where\nodd indices are dash lengths and even indices are gap lengths.\nFor example, `[10, 5]` creates 10px dashes with 5px gaps.\n`[10, 5, 2, 5]` creates alternating 10px and 2px dashes with 5px gaps.\n",
3090
- "type": "array",
3091
- "items": {
3092
- "type": "number",
3093
- "minimum": 0
3094
- },
3095
- "example": [
3096
- 10,
3097
- 5
3098
- ]
2406
+ "type": "string"
3099
2407
  },
3100
- "dashOffset": {
3101
- "description": "Offset for the dash pattern. Positive values shift the pattern\nforward along the path, negative values shift it backward.\n",
3102
- "type": "number",
3103
- "default": 0,
3104
- "example": 5
2408
+ "offset": {
2409
+ "description": "Offset the location of the title relative to its position on the screen.",
2410
+ "$ref": "#/components/schemas/Offset"
3105
2411
  }
3106
- }
2412
+ },
2413
+ "additionalProperties": false,
2414
+ "required": [
2415
+ "type",
2416
+ "text"
2417
+ ]
3107
2418
  },
3108
- "SvgShadow": {
3109
- "description": "Drop shadow properties for SVG shapes. Creates a shadow effect behind the shape.\n",
2419
+ "SvgAsset": {
2420
+ "description": "The SvgAsset is used to add scalable vector graphics (SVG) to a video using raw SVG markup.\n\n```json\n{\n \"type\": \"svg\",\n \"src\": \"<svg width=\\\"100\\\" height=\\\"100\\\"><circle cx=\\\"50\\\" cy=\\\"50\\\" r=\\\"40\\\" fill=\\\"#FF0000\\\"/></svg>\"\n}\n```\n\n**Supported elements:** `<path>`, `<rect>`, `<circle>`, `<ellipse>`,\n`<line>`, `<polygon>`, `<polyline>`\n\n**Automatically extracted from SVG markup:**\n- Path data (converted to a single combined path)\n- Fill color (from `fill` attribute or `style`)\n- Stroke color and width (from attributes or `style`)\n- Dimensions (from `width`/`height` or `viewBox`)\n- Opacity (from `opacity` attribute)\n\nSee [W3C SVG 2 Specification](https://www.w3.org/TR/SVG2/) for path data syntax.\n",
3110
2421
  "type": "object",
3111
- "additionalProperties": false,
3112
2422
  "properties": {
3113
- "offsetX": {
3114
- "description": "Horizontal offset of the shadow in pixels.\nPositive values move the shadow to the right, negative to the left.\n",
3115
- "type": "number",
3116
- "default": 0,
3117
- "example": 4
3118
- },
3119
- "offsetY": {
3120
- "description": "Vertical offset of the shadow in pixels.\nPositive values move the shadow down, negative values move it up.\n",
3121
- "type": "number",
3122
- "default": 0,
3123
- "example": 4
3124
- },
3125
- "blur": {
3126
- "description": "The blur radius of the shadow in pixels. Must be 0 or greater.",
3127
- "type": "number",
3128
- "minimum": 0,
3129
- "default": 0,
3130
- "example": 8
3131
- },
3132
- "color": {
3133
- "description": "The shadow color using hexadecimal color notation.",
2423
+ "type": {
2424
+ "description": "The asset type - set to `svg` for SVG assets.",
3134
2425
  "type": "string",
3135
- "pattern": "^#[A-Fa-f0-9]{6}$",
3136
- "default": "#000000",
3137
- "example": "#000000"
2426
+ "enum": [
2427
+ "svg"
2428
+ ],
2429
+ "default": "svg",
2430
+ "example": "svg"
3138
2431
  },
3139
- "opacity": {
3140
- "description": "The opacity of the shadow where `1` is opaque and `0` is transparent.",
3141
- "type": "number",
3142
- "minimum": 0,
3143
- "maximum": 1,
3144
- "default": 0.5,
3145
- "example": 0.3
2432
+ "src": {
2433
+ "description": "Raw SVG markup string. The shape, fill, stroke, dimensions and opacity\nare automatically extracted from the SVG content.\n",
2434
+ "type": "string",
2435
+ "minLength": 1,
2436
+ "maxLength": 500000,
2437
+ "example": "<svg width=\"100\" height=\"100\"><circle cx=\"50\" cy=\"50\" r=\"40\" fill=\"#3498db\"/></svg>"
3146
2438
  }
3147
- }
3148
- },
3149
- "SvgTransform": {
3150
- "description": "Transformation properties for positioning, rotating, and scaling SVG shapes.\n",
3151
- "type": "object",
2439
+ },
3152
2440
  "additionalProperties": false,
3153
- "properties": {
3154
- "x": {
3155
- "description": "The x-coordinate position of the shape in pixels.\nRelative to the top-left corner of the viewport.\n",
3156
- "type": "number",
3157
- "default": 0,
3158
- "example": 100
3159
- },
3160
- "y": {
3161
- "description": "The y-coordinate position of the shape in pixels.\nRelative to the top-left corner of the viewport.\n",
3162
- "type": "number",
3163
- "default": 0,
3164
- "example": 100
3165
- },
3166
- "rotation": {
3167
- "description": "Rotation angle in degrees. Positive values rotate clockwise,\nnegative values rotate counter-clockwise. Range: -360 to 360.\n",
3168
- "type": "number",
3169
- "minimum": -360,
3170
- "maximum": 360,
3171
- "default": 0,
3172
- "example": 45
3173
- },
3174
- "scale": {
3175
- "description": "Scale factor for the shape. `1` is original size, `2` is double size,\n`0.5` is half size. Must be greater than 0.\n",
3176
- "type": "number",
3177
- "minimum": 0.01,
3178
- "maximum": 100,
3179
- "default": 1,
3180
- "example": 1.5
3181
- },
3182
- "originX": {
3183
- "description": "The x-coordinate of the transformation origin as a value from 0 to 1.\n`0` is the left edge, `0.5` is the center, `1` is the right edge.\n",
3184
- "type": "number",
3185
- "minimum": 0,
3186
- "maximum": 1,
3187
- "default": 0.5,
3188
- "example": 0.5
3189
- },
3190
- "originY": {
3191
- "description": "The y-coordinate of the transformation origin as a value from 0 to 1.\n`0` is the top edge, `0.5` is the center, `1` is the bottom edge.\n",
3192
- "type": "number",
3193
- "minimum": 0,
3194
- "maximum": 1,
3195
- "default": 0.5,
3196
- "example": 0.5
3197
- }
2441
+ "required": [
2442
+ "type",
2443
+ "src"
2444
+ ],
2445
+ "example": {
2446
+ "type": "svg",
2447
+ "src": "<svg width=\"200\" height=\"200\"><rect x=\"10\" y=\"10\" width=\"180\" height=\"180\" rx=\"20\" fill=\"#3498db\" stroke=\"#2C3E50\" stroke-width=\"3\"/></svg>"
3198
2448
  }
3199
2449
  },
3200
2450
  "Transition": {
@@ -4477,18 +3727,14 @@
4477
3727
  },
4478
3728
  "path": {
4479
3729
  "description": "A remote directory path/prefix for the file being sent, i.e. `videos` or `customerId/videos`.",
4480
- "type": [
4481
- "string",
4482
- "null"
4483
- ],
3730
+ "type": "string",
3731
+ "nullable": true,
4484
3732
  "example": "videos"
4485
3733
  },
4486
3734
  "filename": {
4487
3735
  "description": "Use your own filename instead of the default filenames generated by Shotstack. Note: omit the file extension as this will be appended depending on the output format. Also `-poster.jpg` and `-thumb.jpg` will be appended for poster and thumbnail images.",
4488
- "type": [
4489
- "string",
4490
- "null"
4491
- ],
3736
+ "type": "string",
3737
+ "nullable": true,
4492
3738
  "example": "my-file"
4493
3739
  }
4494
3740
  },
@@ -4527,18 +3773,14 @@
4527
3773
  },
4528
3774
  "prefix": {
4529
3775
  "description": "A virtual directory prefix for the blob being sent, i.e. `videos` or `customerId/videos`.",
4530
- "type": [
4531
- "string",
4532
- "null"
4533
- ],
3776
+ "type": "string",
3777
+ "nullable": true,
4534
3778
  "example": "videos"
4535
3779
  },
4536
3780
  "filename": {
4537
3781
  "description": "Use your own filename instead of the default filenames generated by Shotstack. Note: omit the file extension as this will be appended depending on the output format. Also `-poster.jpg` and `-thumb.jpg` will be appended for poster and thumbnail images.",
4538
- "type": [
4539
- "string",
4540
- "null"
4541
- ],
3782
+ "type": "string",
3783
+ "nullable": true,
4542
3784
  "example": "my-file"
4543
3785
  }
4544
3786
  },