@wevion/cli 1.0.3230 → 1.0.3240

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.
Files changed (2) hide show
  1. package/openapi.json +2281 -548
  2. package/package.json +1 -1
package/openapi.json CHANGED
@@ -26225,7 +26225,7 @@
26225
26225
  "tags": [
26226
26226
  "auth"
26227
26227
  ],
26228
- "description": "Returns the authenticated user profile. Requires a valid JWT token. Includes `is_internal`: true when the profile is outside the clean analytics cohort (internal/staff e-mail domain, Gold/ULTRA, comped, allowlisted, backoffice staff role, or the demo account) — the same population every backoffice dashboard excludes. Used by the SPA to tag the session cohort in analytics; it carries no entitlement and grants nothing.",
26228
+ "description": "Returns the authenticated user profile. Requires a valid JWT token. Includes `is_internal`: true when the profile is outside the clean analytics cohort (internal/staff e-mail domain, Gold/ULTRA, comped, allowlisted, backoffice staff role, or the demo account) — the same population every backoffice dashboard excludes. Used by the SPA to tag the session cohort in analytics; it carries no entitlement and grants nothing. Also includes `organization_id` (the backoffice `organization.id`), used by the SPA to tag the Clarity Live session for a direct backoffice lookup.",
26229
26229
  "security": [
26230
26230
  {
26231
26231
  "bearerAuth": []
@@ -26547,6 +26547,17 @@
26547
26547
  "is_internal": {
26548
26548
  "type": "boolean"
26549
26549
  },
26550
+ "organization_id": {
26551
+ "anyOf": [
26552
+ {
26553
+ "format": "uuid",
26554
+ "type": "string"
26555
+ },
26556
+ {
26557
+ "type": "null"
26558
+ }
26559
+ ]
26560
+ },
26550
26561
  "subscription": {
26551
26562
  "type": "object",
26552
26563
  "required": [
@@ -27552,6 +27563,17 @@
27552
27563
  "is_internal": {
27553
27564
  "type": "boolean"
27554
27565
  },
27566
+ "organization_id": {
27567
+ "anyOf": [
27568
+ {
27569
+ "format": "uuid",
27570
+ "type": "string"
27571
+ },
27572
+ {
27573
+ "type": "null"
27574
+ }
27575
+ ]
27576
+ },
27555
27577
  "subscription": {
27556
27578
  "type": "object",
27557
27579
  "required": [
@@ -28400,6 +28422,17 @@
28400
28422
  "is_internal": {
28401
28423
  "type": "boolean"
28402
28424
  },
28425
+ "organization_id": {
28426
+ "anyOf": [
28427
+ {
28428
+ "format": "uuid",
28429
+ "type": "string"
28430
+ },
28431
+ {
28432
+ "type": "null"
28433
+ }
28434
+ ]
28435
+ },
28403
28436
  "subscription": {
28404
28437
  "type": "object",
28405
28438
  "required": [
@@ -104571,236 +104604,9 @@
104571
104604
  "error"
104572
104605
  ],
104573
104606
  "properties": {
104574
- "error": {
104575
- "type": "string"
104576
- },
104577
- "message": {
104578
- "type": "string"
104579
- }
104580
- }
104581
- }
104582
- }
104583
- }
104584
- },
104585
- "403": {
104586
- "description": "Forbidden - caller lacks the required role/permission",
104587
- "content": {
104588
- "application/json": {
104589
- "schema": {
104590
- "additionalProperties": false,
104591
- "type": "object",
104592
- "required": [
104593
- "error"
104594
- ],
104595
- "properties": {
104596
- "error": {
104597
- "type": "string"
104598
- },
104599
- "message": {
104600
- "type": "string"
104601
- }
104602
- }
104603
- }
104604
- }
104605
- }
104606
- },
104607
- "404": {
104608
- "description": "Resource not found",
104609
- "content": {
104610
- "application/json": {
104611
- "schema": {
104612
- "additionalProperties": false,
104613
- "type": "object",
104614
- "required": [
104615
- "error"
104616
- ],
104617
- "properties": {
104618
- "error": {
104619
- "type": "string"
104620
- },
104621
- "message": {
104622
- "type": "string"
104623
- }
104624
- }
104625
- }
104626
- }
104627
- }
104628
- }
104629
- }
104630
- },
104631
- "post": {
104632
- "operationId": "postApiV1CreativeHubAvatars",
104633
- "summary": "Create Creative Hub avatar",
104634
- "tags": [
104635
- "creative-hub"
104636
- ],
104637
- "description": "Queues a custom text-to-avatar or photo-to-avatar generation job.",
104638
- "requestBody": {
104639
- "required": true,
104640
- "content": {
104641
- "application/json": {
104642
- "schema": {
104643
- "additionalProperties": false,
104644
- "type": "object",
104645
- "required": [
104646
- "mode",
104647
- "name"
104648
- ],
104649
- "properties": {
104650
- "mode": {
104651
- "anyOf": [
104652
- {
104653
- "type": "string",
104654
- "enum": [
104655
- "text"
104656
- ]
104657
- },
104658
- {
104659
- "type": "string",
104660
- "enum": [
104661
- "photo"
104662
- ]
104663
- }
104664
- ]
104665
- },
104666
- "name": {
104667
- "minLength": 1,
104668
- "maxLength": 120,
104669
- "type": "string"
104670
- },
104671
- "prompt": {
104672
- "maxLength": 2000,
104673
- "type": "string"
104674
- },
104675
- "template_avatar_id": {
104676
- "type": "string"
104677
- },
104678
- "source_image_url": {
104679
- "type": "string"
104680
- },
104681
- "gender": {
104682
- "maxLength": 20,
104683
- "type": "string"
104684
- },
104685
- "age_bracket": {
104686
- "maxLength": 20,
104687
- "type": "string"
104688
- },
104689
- "scenario": {
104690
- "maxLength": 40,
104691
- "type": "string"
104692
- },
104693
- "voice_id": {
104694
- "type": "string"
104695
- }
104696
- }
104697
- }
104698
- }
104699
- }
104700
- },
104701
- "security": [
104702
- {
104703
- "bearerAuth": []
104704
- },
104705
- {
104706
- "apiKeyAuth": []
104707
- }
104708
- ],
104709
- "responses": {
104710
- "202": {
104711
- "description": "Accepted - processing asynchronously",
104712
- "content": {
104713
- "application/json": {
104714
- "schema": {
104715
- "additionalProperties": false,
104716
- "type": "object",
104717
- "required": [
104718
- "avatar_id",
104719
- "generation_id",
104720
- "status",
104721
- "estimated_credits",
104722
- "polling_interval_ms"
104723
- ],
104724
- "properties": {
104725
- "avatar_id": {
104726
- "format": "uuid",
104727
- "type": "string"
104728
- },
104729
- "generation_id": {
104730
- "format": "uuid",
104731
- "type": "string"
104732
- },
104733
- "status": {
104734
- "type": "string"
104735
- },
104736
- "estimated_credits": {
104737
- "minimum": 0,
104738
- "type": "integer"
104739
- },
104740
- "polling_interval_ms": {
104741
- "minimum": 1,
104742
- "type": "integer"
104743
- }
104744
- }
104745
- }
104746
- }
104747
- }
104748
- },
104749
- "400": {
104750
- "description": "Invalid request - schema validation failed",
104751
- "content": {
104752
- "application/json": {
104753
- "schema": {
104754
- "additionalProperties": false,
104755
- "type": "object",
104756
- "required": [
104757
- "error"
104758
- ],
104759
- "properties": {
104760
- "error": {
104761
- "type": "string"
104762
- },
104763
- "message": {
104764
- "type": "string"
104765
- }
104766
- }
104767
- }
104768
- }
104769
- }
104770
- },
104771
- "401": {
104772
- "description": "Unauthorized - missing or invalid bearer token",
104773
- "content": {
104774
- "application/json": {
104775
- "schema": {
104776
- "additionalProperties": false,
104777
- "type": "object",
104778
- "required": [
104779
- "error"
104780
- ],
104781
- "properties": {
104782
- "error": {
104607
+ "code": {
104783
104608
  "type": "string"
104784
104609
  },
104785
- "message": {
104786
- "type": "string"
104787
- }
104788
- }
104789
- }
104790
- }
104791
- }
104792
- },
104793
- "402": {
104794
- "description": "Response 402",
104795
- "content": {
104796
- "application/json": {
104797
- "schema": {
104798
- "additionalProperties": false,
104799
- "type": "object",
104800
- "required": [
104801
- "error"
104802
- ],
104803
- "properties": {
104804
104610
  "error": {
104805
104611
  "type": "string"
104806
104612
  },
@@ -104823,6 +104629,9 @@
104823
104629
  "error"
104824
104630
  ],
104825
104631
  "properties": {
104632
+ "code": {
104633
+ "type": "string"
104634
+ },
104826
104635
  "error": {
104827
104636
  "type": "string"
104828
104637
  },
@@ -104845,6 +104654,279 @@
104845
104654
  "error"
104846
104655
  ],
104847
104656
  "properties": {
104657
+ "code": {
104658
+ "type": "string"
104659
+ },
104660
+ "error": {
104661
+ "type": "string"
104662
+ },
104663
+ "message": {
104664
+ "type": "string"
104665
+ }
104666
+ }
104667
+ }
104668
+ }
104669
+ }
104670
+ }
104671
+ }
104672
+ },
104673
+ "post": {
104674
+ "operationId": "postApiV1CreativeHubAvatars",
104675
+ "summary": "Create Creative Hub avatar",
104676
+ "tags": [
104677
+ "creative-hub"
104678
+ ],
104679
+ "description": "Queues a custom text-to-avatar or photo-to-avatar generation job.",
104680
+ "requestBody": {
104681
+ "required": true,
104682
+ "content": {
104683
+ "application/json": {
104684
+ "schema": {
104685
+ "additionalProperties": false,
104686
+ "type": "object",
104687
+ "required": [
104688
+ "mode",
104689
+ "name"
104690
+ ],
104691
+ "properties": {
104692
+ "mode": {
104693
+ "anyOf": [
104694
+ {
104695
+ "type": "string",
104696
+ "enum": [
104697
+ "text"
104698
+ ]
104699
+ },
104700
+ {
104701
+ "type": "string",
104702
+ "enum": [
104703
+ "photo"
104704
+ ]
104705
+ }
104706
+ ]
104707
+ },
104708
+ "name": {
104709
+ "minLength": 1,
104710
+ "maxLength": 120,
104711
+ "type": "string"
104712
+ },
104713
+ "prompt": {
104714
+ "maxLength": 2000,
104715
+ "type": "string"
104716
+ },
104717
+ "template_avatar_id": {
104718
+ "type": "string"
104719
+ },
104720
+ "source_image_url": {
104721
+ "type": "string"
104722
+ },
104723
+ "gender": {
104724
+ "maxLength": 20,
104725
+ "type": "string"
104726
+ },
104727
+ "age_bracket": {
104728
+ "maxLength": 20,
104729
+ "type": "string"
104730
+ },
104731
+ "scenario": {
104732
+ "maxLength": 40,
104733
+ "type": "string"
104734
+ },
104735
+ "voice_id": {
104736
+ "type": "string"
104737
+ }
104738
+ }
104739
+ }
104740
+ }
104741
+ }
104742
+ },
104743
+ "security": [
104744
+ {
104745
+ "bearerAuth": []
104746
+ },
104747
+ {
104748
+ "apiKeyAuth": []
104749
+ }
104750
+ ],
104751
+ "responses": {
104752
+ "202": {
104753
+ "description": "Accepted - processing asynchronously",
104754
+ "content": {
104755
+ "application/json": {
104756
+ "schema": {
104757
+ "additionalProperties": false,
104758
+ "type": "object",
104759
+ "required": [
104760
+ "avatar_id",
104761
+ "generation_id",
104762
+ "status",
104763
+ "estimated_credits",
104764
+ "polling_interval_ms"
104765
+ ],
104766
+ "properties": {
104767
+ "avatar_id": {
104768
+ "format": "uuid",
104769
+ "type": "string"
104770
+ },
104771
+ "generation_id": {
104772
+ "format": "uuid",
104773
+ "type": "string"
104774
+ },
104775
+ "status": {
104776
+ "type": "string"
104777
+ },
104778
+ "estimated_credits": {
104779
+ "minimum": 0,
104780
+ "type": "integer"
104781
+ },
104782
+ "polling_interval_ms": {
104783
+ "minimum": 1,
104784
+ "type": "integer"
104785
+ }
104786
+ }
104787
+ }
104788
+ }
104789
+ }
104790
+ },
104791
+ "400": {
104792
+ "description": "Invalid request - schema validation failed",
104793
+ "content": {
104794
+ "application/json": {
104795
+ "schema": {
104796
+ "additionalProperties": false,
104797
+ "type": "object",
104798
+ "required": [
104799
+ "error"
104800
+ ],
104801
+ "properties": {
104802
+ "code": {
104803
+ "type": "string"
104804
+ },
104805
+ "error": {
104806
+ "type": "string"
104807
+ },
104808
+ "message": {
104809
+ "type": "string"
104810
+ }
104811
+ }
104812
+ }
104813
+ }
104814
+ }
104815
+ },
104816
+ "401": {
104817
+ "description": "Unauthorized - missing or invalid bearer token",
104818
+ "content": {
104819
+ "application/json": {
104820
+ "schema": {
104821
+ "additionalProperties": false,
104822
+ "type": "object",
104823
+ "required": [
104824
+ "error"
104825
+ ],
104826
+ "properties": {
104827
+ "code": {
104828
+ "type": "string"
104829
+ },
104830
+ "error": {
104831
+ "type": "string"
104832
+ },
104833
+ "message": {
104834
+ "type": "string"
104835
+ }
104836
+ }
104837
+ }
104838
+ }
104839
+ }
104840
+ },
104841
+ "402": {
104842
+ "description": "Response 402",
104843
+ "content": {
104844
+ "application/json": {
104845
+ "schema": {
104846
+ "additionalProperties": false,
104847
+ "type": "object",
104848
+ "required": [
104849
+ "error"
104850
+ ],
104851
+ "properties": {
104852
+ "code": {
104853
+ "type": "string"
104854
+ },
104855
+ "error": {
104856
+ "type": "string"
104857
+ },
104858
+ "message": {
104859
+ "type": "string"
104860
+ }
104861
+ }
104862
+ }
104863
+ }
104864
+ }
104865
+ },
104866
+ "403": {
104867
+ "description": "Forbidden - caller lacks the required role/permission",
104868
+ "content": {
104869
+ "application/json": {
104870
+ "schema": {
104871
+ "additionalProperties": false,
104872
+ "type": "object",
104873
+ "required": [
104874
+ "error"
104875
+ ],
104876
+ "properties": {
104877
+ "code": {
104878
+ "type": "string"
104879
+ },
104880
+ "error": {
104881
+ "type": "string"
104882
+ },
104883
+ "message": {
104884
+ "type": "string"
104885
+ }
104886
+ }
104887
+ }
104888
+ }
104889
+ }
104890
+ },
104891
+ "404": {
104892
+ "description": "Resource not found",
104893
+ "content": {
104894
+ "application/json": {
104895
+ "schema": {
104896
+ "additionalProperties": false,
104897
+ "type": "object",
104898
+ "required": [
104899
+ "error"
104900
+ ],
104901
+ "properties": {
104902
+ "code": {
104903
+ "type": "string"
104904
+ },
104905
+ "error": {
104906
+ "type": "string"
104907
+ },
104908
+ "message": {
104909
+ "type": "string"
104910
+ }
104911
+ }
104912
+ }
104913
+ }
104914
+ }
104915
+ },
104916
+ "429": {
104917
+ "description": "Too many requests - rate limit exceeded",
104918
+ "content": {
104919
+ "application/json": {
104920
+ "schema": {
104921
+ "additionalProperties": false,
104922
+ "type": "object",
104923
+ "required": [
104924
+ "error"
104925
+ ],
104926
+ "properties": {
104927
+ "code": {
104928
+ "type": "string"
104929
+ },
104848
104930
  "error": {
104849
104931
  "type": "string"
104850
104932
  },
@@ -104867,6 +104949,34 @@
104867
104949
  "error"
104868
104950
  ],
104869
104951
  "properties": {
104952
+ "code": {
104953
+ "type": "string"
104954
+ },
104955
+ "error": {
104956
+ "type": "string"
104957
+ },
104958
+ "message": {
104959
+ "type": "string"
104960
+ }
104961
+ }
104962
+ }
104963
+ }
104964
+ }
104965
+ },
104966
+ "503": {
104967
+ "description": "Service unavailable",
104968
+ "content": {
104969
+ "application/json": {
104970
+ "schema": {
104971
+ "additionalProperties": false,
104972
+ "type": "object",
104973
+ "required": [
104974
+ "error"
104975
+ ],
104976
+ "properties": {
104977
+ "code": {
104978
+ "type": "string"
104979
+ },
104870
104980
  "error": {
104871
104981
  "type": "string"
104872
104982
  },
@@ -105130,6 +105240,9 @@
105130
105240
  "error"
105131
105241
  ],
105132
105242
  "properties": {
105243
+ "code": {
105244
+ "type": "string"
105245
+ },
105133
105246
  "error": {
105134
105247
  "type": "string"
105135
105248
  },
@@ -105152,6 +105265,9 @@
105152
105265
  "error"
105153
105266
  ],
105154
105267
  "properties": {
105268
+ "code": {
105269
+ "type": "string"
105270
+ },
105155
105271
  "error": {
105156
105272
  "type": "string"
105157
105273
  },
@@ -105174,6 +105290,9 @@
105174
105290
  "error"
105175
105291
  ],
105176
105292
  "properties": {
105293
+ "code": {
105294
+ "type": "string"
105295
+ },
105177
105296
  "error": {
105178
105297
  "type": "string"
105179
105298
  },
@@ -105196,6 +105315,9 @@
105196
105315
  "error"
105197
105316
  ],
105198
105317
  "properties": {
105318
+ "code": {
105319
+ "type": "string"
105320
+ },
105199
105321
  "error": {
105200
105322
  "type": "string"
105201
105323
  },
@@ -105250,6 +105372,9 @@
105250
105372
  "error"
105251
105373
  ],
105252
105374
  "properties": {
105375
+ "code": {
105376
+ "type": "string"
105377
+ },
105253
105378
  "error": {
105254
105379
  "type": "string"
105255
105380
  },
@@ -105272,6 +105397,9 @@
105272
105397
  "error"
105273
105398
  ],
105274
105399
  "properties": {
105400
+ "code": {
105401
+ "type": "string"
105402
+ },
105275
105403
  "error": {
105276
105404
  "type": "string"
105277
105405
  },
@@ -105294,6 +105422,9 @@
105294
105422
  "error"
105295
105423
  ],
105296
105424
  "properties": {
105425
+ "code": {
105426
+ "type": "string"
105427
+ },
105297
105428
  "error": {
105298
105429
  "type": "string"
105299
105430
  },
@@ -105495,6 +105626,9 @@
105495
105626
  "error"
105496
105627
  ],
105497
105628
  "properties": {
105629
+ "code": {
105630
+ "type": "string"
105631
+ },
105498
105632
  "error": {
105499
105633
  "type": "string"
105500
105634
  },
@@ -105517,6 +105651,9 @@
105517
105651
  "error"
105518
105652
  ],
105519
105653
  "properties": {
105654
+ "code": {
105655
+ "type": "string"
105656
+ },
105520
105657
  "error": {
105521
105658
  "type": "string"
105522
105659
  },
@@ -105539,6 +105676,9 @@
105539
105676
  "error"
105540
105677
  ],
105541
105678
  "properties": {
105679
+ "code": {
105680
+ "type": "string"
105681
+ },
105542
105682
  "error": {
105543
105683
  "type": "string"
105544
105684
  },
@@ -105918,6 +106058,9 @@
105918
106058
  "error"
105919
106059
  ],
105920
106060
  "properties": {
106061
+ "code": {
106062
+ "type": "string"
106063
+ },
105921
106064
  "error": {
105922
106065
  "type": "string"
105923
106066
  },
@@ -105940,6 +106083,9 @@
105940
106083
  "error"
105941
106084
  ],
105942
106085
  "properties": {
106086
+ "code": {
106087
+ "type": "string"
106088
+ },
105943
106089
  "error": {
105944
106090
  "type": "string"
105945
106091
  },
@@ -105962,6 +106108,9 @@
105962
106108
  "error"
105963
106109
  ],
105964
106110
  "properties": {
106111
+ "code": {
106112
+ "type": "string"
106113
+ },
105965
106114
  "error": {
105966
106115
  "type": "string"
105967
106116
  },
@@ -105984,6 +106133,9 @@
105984
106133
  "error"
105985
106134
  ],
105986
106135
  "properties": {
106136
+ "code": {
106137
+ "type": "string"
106138
+ },
105987
106139
  "error": {
105988
106140
  "type": "string"
105989
106141
  },
@@ -106373,6 +106525,9 @@
106373
106525
  "error"
106374
106526
  ],
106375
106527
  "properties": {
106528
+ "code": {
106529
+ "type": "string"
106530
+ },
106376
106531
  "error": {
106377
106532
  "type": "string"
106378
106533
  },
@@ -106395,6 +106550,9 @@
106395
106550
  "error"
106396
106551
  ],
106397
106552
  "properties": {
106553
+ "code": {
106554
+ "type": "string"
106555
+ },
106398
106556
  "error": {
106399
106557
  "type": "string"
106400
106558
  },
@@ -106417,6 +106575,9 @@
106417
106575
  "error"
106418
106576
  ],
106419
106577
  "properties": {
106578
+ "code": {
106579
+ "type": "string"
106580
+ },
106420
106581
  "error": {
106421
106582
  "type": "string"
106422
106583
  },
@@ -106439,6 +106600,9 @@
106439
106600
  "error"
106440
106601
  ],
106441
106602
  "properties": {
106603
+ "code": {
106604
+ "type": "string"
106605
+ },
106442
106606
  "error": {
106443
106607
  "type": "string"
106444
106608
  },
@@ -106493,6 +106657,9 @@
106493
106657
  "error"
106494
106658
  ],
106495
106659
  "properties": {
106660
+ "code": {
106661
+ "type": "string"
106662
+ },
106496
106663
  "error": {
106497
106664
  "type": "string"
106498
106665
  },
@@ -106515,6 +106682,9 @@
106515
106682
  "error"
106516
106683
  ],
106517
106684
  "properties": {
106685
+ "code": {
106686
+ "type": "string"
106687
+ },
106518
106688
  "error": {
106519
106689
  "type": "string"
106520
106690
  },
@@ -106537,6 +106707,9 @@
106537
106707
  "error"
106538
106708
  ],
106539
106709
  "properties": {
106710
+ "code": {
106711
+ "type": "string"
106712
+ },
106540
106713
  "error": {
106541
106714
  "type": "string"
106542
106715
  },
@@ -106727,6 +106900,9 @@
106727
106900
  "error"
106728
106901
  ],
106729
106902
  "properties": {
106903
+ "code": {
106904
+ "type": "string"
106905
+ },
106730
106906
  "error": {
106731
106907
  "type": "string"
106732
106908
  },
@@ -106749,6 +106925,59 @@
106749
106925
  "error"
106750
106926
  ],
106751
106927
  "properties": {
106928
+ "code": {
106929
+ "type": "string"
106930
+ },
106931
+ "error": {
106932
+ "type": "string"
106933
+ },
106934
+ "message": {
106935
+ "type": "string"
106936
+ }
106937
+ }
106938
+ }
106939
+ }
106940
+ }
106941
+ },
106942
+ "429": {
106943
+ "description": "Too many requests - rate limit exceeded",
106944
+ "content": {
106945
+ "application/json": {
106946
+ "schema": {
106947
+ "additionalProperties": false,
106948
+ "type": "object",
106949
+ "required": [
106950
+ "error"
106951
+ ],
106952
+ "properties": {
106953
+ "code": {
106954
+ "type": "string"
106955
+ },
106956
+ "error": {
106957
+ "type": "string"
106958
+ },
106959
+ "message": {
106960
+ "type": "string"
106961
+ }
106962
+ }
106963
+ }
106964
+ }
106965
+ }
106966
+ },
106967
+ "503": {
106968
+ "description": "Service unavailable",
106969
+ "content": {
106970
+ "application/json": {
106971
+ "schema": {
106972
+ "additionalProperties": false,
106973
+ "type": "object",
106974
+ "required": [
106975
+ "error"
106976
+ ],
106977
+ "properties": {
106978
+ "code": {
106979
+ "type": "string"
106980
+ },
106752
106981
  "error": {
106753
106982
  "type": "string"
106754
106983
  },
@@ -109542,6 +109771,28 @@
109542
109771
  }
109543
109772
  }
109544
109773
  }
109774
+ },
109775
+ "503": {
109776
+ "description": "Service unavailable",
109777
+ "content": {
109778
+ "application/json": {
109779
+ "schema": {
109780
+ "additionalProperties": false,
109781
+ "type": "object",
109782
+ "required": [
109783
+ "error"
109784
+ ],
109785
+ "properties": {
109786
+ "code": {
109787
+ "type": "string"
109788
+ },
109789
+ "error": {
109790
+ "type": "string"
109791
+ }
109792
+ }
109793
+ }
109794
+ }
109795
+ }
109545
109796
  }
109546
109797
  }
109547
109798
  }
@@ -109753,6 +110004,28 @@
109753
110004
  }
109754
110005
  }
109755
110006
  }
110007
+ },
110008
+ "503": {
110009
+ "description": "Service unavailable",
110010
+ "content": {
110011
+ "application/json": {
110012
+ "schema": {
110013
+ "additionalProperties": false,
110014
+ "type": "object",
110015
+ "required": [
110016
+ "error"
110017
+ ],
110018
+ "properties": {
110019
+ "code": {
110020
+ "type": "string"
110021
+ },
110022
+ "error": {
110023
+ "type": "string"
110024
+ }
110025
+ }
110026
+ }
110027
+ }
110028
+ }
109756
110029
  }
109757
110030
  }
109758
110031
  }
@@ -109942,186 +110215,208 @@
109942
110215
  }
109943
110216
  }
109944
110217
  }
109945
- }
109946
- }
109947
- }
109948
- },
109949
- "/api/v1/creative-hub/generate/tts": {
109950
- "post": {
109951
- "operationId": "creativeHubGenerateTTS",
109952
- "summary": "Generate text-to-speech audio",
109953
- "tags": [
109954
- "creative-hub",
109955
- "creative-generation"
109956
- ],
109957
- "description": "Queues a TTS audio generation job via ElevenLabs or OpenAI. Returns 202 Accepted with an async-job handle; poll GET /api/v1/creative-hub/generate/jobs/:id to retrieve the result.",
109958
- "requestBody": {
109959
- "required": true,
109960
- "content": {
109961
- "application/json": {
109962
- "schema": {
109963
- "type": "object",
109964
- "required": [
109965
- "text"
109966
- ],
109967
- "properties": {
109968
- "text": {
109969
- "minLength": 1,
109970
- "maxLength": 5000,
109971
- "type": "string"
109972
- },
109973
- "voice_id": {
109974
- "type": "string"
109975
- },
109976
- "language": {
109977
- "type": "string"
109978
- },
109979
- "provider": {
109980
- "anyOf": [
109981
- {
109982
- "type": "string",
109983
- "enum": [
109984
- "elevenlabs"
109985
- ]
109986
- },
109987
- {
109988
- "type": "string",
109989
- "enum": [
109990
- "openai_tts"
109991
- ]
109992
- }
109993
- ]
109994
- },
109995
- "drive_folder_id": {
109996
- "type": "string"
109997
- }
109998
- }
109999
- }
110000
- }
110001
- }
110002
- },
110003
- "security": [
110004
- {
110005
- "bearerAuth": []
110006
- },
110007
- {
110008
- "apiKeyAuth": []
110009
- }
110010
- ],
110011
- "responses": {
110012
- "202": {
110013
- "description": "Accepted - processing asynchronously",
110014
- "content": {
110015
- "application/json": {
110016
- "schema": {
110017
- "type": "object",
110018
- "required": [
110019
- "job_id",
110020
- "status",
110021
- "polling_interval_ms",
110022
- "created_at"
110023
- ],
110024
- "properties": {
110025
- "job_id": {
110026
- "description": "ID of the queued creative_job row",
110027
- "type": "string"
110028
- },
110029
- "status": {
110030
- "description": "Initial job status (always \"pending\" right after enqueue)",
110031
- "type": "string"
110032
- },
110033
- "polling_interval_ms": {
110034
- "description": "Suggested polling interval for GET /generate/jobs/:id",
110035
- "type": "integer"
110036
- },
110037
- "estimated_wait_ms": {
110038
- "description": "Rough estimated completion wait (provider-dependent)",
110039
- "type": "integer"
110040
- },
110041
- "created_at": {
110042
- "format": "date-time",
110043
- "type": "string"
110044
- }
110045
- }
110046
- }
110047
- }
110048
- }
110049
- },
110050
- "401": {
110051
- "description": "Unauthorized - missing or invalid bearer token",
110052
- "content": {
110053
- "application/json": {
110054
- "schema": {
110055
- "$ref": "#/components/schemas/ErrorResponse"
110056
- }
110057
- }
110058
- }
110059
- },
110060
- "402": {
110061
- "description": "Response 402",
110062
- "content": {
110063
- "application/json": {
110064
- "schema": {
110065
- "additionalProperties": false,
110066
- "type": "object",
110067
- "required": [
110068
- "error"
110069
- ],
110070
- "properties": {
110071
- "code": {
110072
- "type": "string"
110073
- },
110074
- "error": {
110075
- "type": "string"
110076
- }
110077
- }
110078
- }
110079
- }
110080
- }
110081
- },
110082
- "403": {
110083
- "description": "Forbidden - caller lacks the required role/permission",
110084
- "content": {
110085
- "application/json": {
110086
- "schema": {
110087
- "additionalProperties": false,
110088
- "type": "object",
110089
- "required": [
110090
- "error"
110091
- ],
110092
- "properties": {
110093
- "code": {
110094
- "type": "string"
110095
- },
110096
- "error": {
110097
- "type": "string"
110098
- }
110099
- }
110100
- }
110101
- }
110102
- }
110103
- },
110104
- "404": {
110105
- "description": "Resource not found",
110106
- "content": {
110107
- "application/json": {
110108
- "schema": {
110109
- "additionalProperties": false,
110110
- "type": "object",
110111
- "required": [
110112
- "error"
110113
- ],
110114
- "properties": {
110115
- "code": {
110116
- "type": "string"
110117
- },
110118
- "error": {
110119
- "type": "string"
110120
- }
110121
- }
110122
- }
110123
- }
110124
- }
110218
+ },
110219
+ "503": {
110220
+ "description": "Service unavailable",
110221
+ "content": {
110222
+ "application/json": {
110223
+ "schema": {
110224
+ "additionalProperties": false,
110225
+ "type": "object",
110226
+ "required": [
110227
+ "error"
110228
+ ],
110229
+ "properties": {
110230
+ "code": {
110231
+ "type": "string"
110232
+ },
110233
+ "error": {
110234
+ "type": "string"
110235
+ }
110236
+ }
110237
+ }
110238
+ }
110239
+ }
110240
+ }
110241
+ }
110242
+ }
110243
+ },
110244
+ "/api/v1/creative-hub/generate/tts": {
110245
+ "post": {
110246
+ "operationId": "creativeHubGenerateTTS",
110247
+ "summary": "Generate text-to-speech audio",
110248
+ "tags": [
110249
+ "creative-hub",
110250
+ "creative-generation"
110251
+ ],
110252
+ "description": "Queues a TTS audio generation job via ElevenLabs or OpenAI. Returns 202 Accepted with an async-job handle; poll GET /api/v1/creative-hub/generate/jobs/:id to retrieve the result.",
110253
+ "requestBody": {
110254
+ "required": true,
110255
+ "content": {
110256
+ "application/json": {
110257
+ "schema": {
110258
+ "type": "object",
110259
+ "required": [
110260
+ "text"
110261
+ ],
110262
+ "properties": {
110263
+ "text": {
110264
+ "minLength": 1,
110265
+ "maxLength": 5000,
110266
+ "type": "string"
110267
+ },
110268
+ "voice_id": {
110269
+ "type": "string"
110270
+ },
110271
+ "language": {
110272
+ "type": "string"
110273
+ },
110274
+ "provider": {
110275
+ "anyOf": [
110276
+ {
110277
+ "type": "string",
110278
+ "enum": [
110279
+ "elevenlabs"
110280
+ ]
110281
+ },
110282
+ {
110283
+ "type": "string",
110284
+ "enum": [
110285
+ "openai_tts"
110286
+ ]
110287
+ }
110288
+ ]
110289
+ },
110290
+ "drive_folder_id": {
110291
+ "type": "string"
110292
+ }
110293
+ }
110294
+ }
110295
+ }
110296
+ }
110297
+ },
110298
+ "security": [
110299
+ {
110300
+ "bearerAuth": []
110301
+ },
110302
+ {
110303
+ "apiKeyAuth": []
110304
+ }
110305
+ ],
110306
+ "responses": {
110307
+ "202": {
110308
+ "description": "Accepted - processing asynchronously",
110309
+ "content": {
110310
+ "application/json": {
110311
+ "schema": {
110312
+ "type": "object",
110313
+ "required": [
110314
+ "job_id",
110315
+ "status",
110316
+ "polling_interval_ms",
110317
+ "created_at"
110318
+ ],
110319
+ "properties": {
110320
+ "job_id": {
110321
+ "description": "ID of the queued creative_job row",
110322
+ "type": "string"
110323
+ },
110324
+ "status": {
110325
+ "description": "Initial job status (always \"pending\" right after enqueue)",
110326
+ "type": "string"
110327
+ },
110328
+ "polling_interval_ms": {
110329
+ "description": "Suggested polling interval for GET /generate/jobs/:id",
110330
+ "type": "integer"
110331
+ },
110332
+ "estimated_wait_ms": {
110333
+ "description": "Rough estimated completion wait (provider-dependent)",
110334
+ "type": "integer"
110335
+ },
110336
+ "created_at": {
110337
+ "format": "date-time",
110338
+ "type": "string"
110339
+ }
110340
+ }
110341
+ }
110342
+ }
110343
+ }
110344
+ },
110345
+ "401": {
110346
+ "description": "Unauthorized - missing or invalid bearer token",
110347
+ "content": {
110348
+ "application/json": {
110349
+ "schema": {
110350
+ "$ref": "#/components/schemas/ErrorResponse"
110351
+ }
110352
+ }
110353
+ }
110354
+ },
110355
+ "402": {
110356
+ "description": "Response 402",
110357
+ "content": {
110358
+ "application/json": {
110359
+ "schema": {
110360
+ "additionalProperties": false,
110361
+ "type": "object",
110362
+ "required": [
110363
+ "error"
110364
+ ],
110365
+ "properties": {
110366
+ "code": {
110367
+ "type": "string"
110368
+ },
110369
+ "error": {
110370
+ "type": "string"
110371
+ }
110372
+ }
110373
+ }
110374
+ }
110375
+ }
110376
+ },
110377
+ "403": {
110378
+ "description": "Forbidden - caller lacks the required role/permission",
110379
+ "content": {
110380
+ "application/json": {
110381
+ "schema": {
110382
+ "additionalProperties": false,
110383
+ "type": "object",
110384
+ "required": [
110385
+ "error"
110386
+ ],
110387
+ "properties": {
110388
+ "code": {
110389
+ "type": "string"
110390
+ },
110391
+ "error": {
110392
+ "type": "string"
110393
+ }
110394
+ }
110395
+ }
110396
+ }
110397
+ }
110398
+ },
110399
+ "404": {
110400
+ "description": "Resource not found",
110401
+ "content": {
110402
+ "application/json": {
110403
+ "schema": {
110404
+ "additionalProperties": false,
110405
+ "type": "object",
110406
+ "required": [
110407
+ "error"
110408
+ ],
110409
+ "properties": {
110410
+ "code": {
110411
+ "type": "string"
110412
+ },
110413
+ "error": {
110414
+ "type": "string"
110415
+ }
110416
+ }
110417
+ }
110418
+ }
110419
+ }
110125
110420
  },
110126
110421
  "429": {
110127
110422
  "description": "Too many requests - rate limit exceeded",
@@ -110144,6 +110439,28 @@
110144
110439
  }
110145
110440
  }
110146
110441
  }
110442
+ },
110443
+ "503": {
110444
+ "description": "Service unavailable",
110445
+ "content": {
110446
+ "application/json": {
110447
+ "schema": {
110448
+ "additionalProperties": false,
110449
+ "type": "object",
110450
+ "required": [
110451
+ "error"
110452
+ ],
110453
+ "properties": {
110454
+ "code": {
110455
+ "type": "string"
110456
+ },
110457
+ "error": {
110458
+ "type": "string"
110459
+ }
110460
+ }
110461
+ }
110462
+ }
110463
+ }
110147
110464
  }
110148
110465
  }
110149
110466
  }
@@ -110403,6 +110720,28 @@
110403
110720
  }
110404
110721
  }
110405
110722
  }
110723
+ },
110724
+ "503": {
110725
+ "description": "Service unavailable",
110726
+ "content": {
110727
+ "application/json": {
110728
+ "schema": {
110729
+ "additionalProperties": false,
110730
+ "type": "object",
110731
+ "required": [
110732
+ "error"
110733
+ ],
110734
+ "properties": {
110735
+ "code": {
110736
+ "type": "string"
110737
+ },
110738
+ "error": {
110739
+ "type": "string"
110740
+ }
110741
+ }
110742
+ }
110743
+ }
110744
+ }
110406
110745
  }
110407
110746
  }
110408
110747
  }
@@ -111219,6 +111558,31 @@
111219
111558
  }
111220
111559
  }
111221
111560
  }
111561
+ },
111562
+ "503": {
111563
+ "description": "Service unavailable",
111564
+ "content": {
111565
+ "application/json": {
111566
+ "schema": {
111567
+ "additionalProperties": false,
111568
+ "type": "object",
111569
+ "required": [
111570
+ "error"
111571
+ ],
111572
+ "properties": {
111573
+ "code": {
111574
+ "type": "string"
111575
+ },
111576
+ "error": {
111577
+ "type": "string"
111578
+ },
111579
+ "message": {
111580
+ "type": "string"
111581
+ }
111582
+ }
111583
+ }
111584
+ }
111585
+ }
111222
111586
  }
111223
111587
  }
111224
111588
  }
@@ -112834,6 +113198,164 @@
112834
113198
  }
112835
113199
  }
112836
113200
  }
113201
+ },
113202
+ "503": {
113203
+ "description": "Service unavailable",
113204
+ "content": {
113205
+ "application/json": {
113206
+ "schema": {
113207
+ "additionalProperties": false,
113208
+ "type": "object",
113209
+ "required": [
113210
+ "error"
113211
+ ],
113212
+ "properties": {
113213
+ "code": {
113214
+ "type": "string"
113215
+ },
113216
+ "error": {
113217
+ "type": "string"
113218
+ },
113219
+ "message": {
113220
+ "type": "string"
113221
+ }
113222
+ }
113223
+ }
113224
+ }
113225
+ }
113226
+ }
113227
+ }
113228
+ }
113229
+ },
113230
+ "/api/v1/creative-hub/image-studio/estimate": {
113231
+ "post": {
113232
+ "operationId": "creativeHubEstimateCinematicImage",
113233
+ "summary": "Estimate cinematic image generation credit cost",
113234
+ "tags": [
113235
+ "creative-hub",
113236
+ "creative-generation"
113237
+ ],
113238
+ "description": "Returns the deterministic credit hold estimate for a cinematic image generation. The estimate resolves the SAME catalog model the generation will run on, so the style preset (which routes to different, differently-priced models) and any reference image are both reflected in the amount.",
113239
+ "requestBody": {
113240
+ "required": true,
113241
+ "content": {
113242
+ "application/json": {
113243
+ "schema": {
113244
+ "additionalProperties": false,
113245
+ "type": "object",
113246
+ "required": [
113247
+ "num_variants"
113248
+ ],
113249
+ "properties": {
113250
+ "num_variants": {
113251
+ "minimum": 1,
113252
+ "maximum": 4,
113253
+ "type": "integer"
113254
+ },
113255
+ "resolution": {
113256
+ "anyOf": [
113257
+ {
113258
+ "type": "string",
113259
+ "enum": [
113260
+ "720p"
113261
+ ]
113262
+ },
113263
+ {
113264
+ "type": "string",
113265
+ "enum": [
113266
+ "1080p"
113267
+ ]
113268
+ }
113269
+ ]
113270
+ },
113271
+ "style": {
113272
+ "maxLength": 64,
113273
+ "type": "string"
113274
+ },
113275
+ "reference_image_url": {
113276
+ "maxLength": 2000,
113277
+ "type": "string"
113278
+ },
113279
+ "reference_image_urls": {
113280
+ "maxItems": 4,
113281
+ "type": "array",
113282
+ "items": {
113283
+ "maxLength": 2000,
113284
+ "type": "string"
113285
+ }
113286
+ }
113287
+ }
113288
+ }
113289
+ }
113290
+ }
113291
+ },
113292
+ "security": [
113293
+ {
113294
+ "bearerAuth": []
113295
+ },
113296
+ {
113297
+ "apiKeyAuth": []
113298
+ }
113299
+ ],
113300
+ "responses": {
113301
+ "200": {
113302
+ "description": "Successful response",
113303
+ "content": {
113304
+ "application/json": {
113305
+ "schema": {
113306
+ "additionalProperties": false,
113307
+ "type": "object",
113308
+ "required": [
113309
+ "credits",
113310
+ "model_id"
113311
+ ],
113312
+ "properties": {
113313
+ "credits": {
113314
+ "type": "integer"
113315
+ },
113316
+ "model_id": {
113317
+ "description": "Catalog model the generation will be priced and run on.",
113318
+ "type": "string"
113319
+ }
113320
+ }
113321
+ }
113322
+ }
113323
+ }
113324
+ },
113325
+ "400": {
113326
+ "description": "Invalid request - schema validation failed",
113327
+ "content": {
113328
+ "application/json": {
113329
+ "schema": {
113330
+ "additionalProperties": false,
113331
+ "type": "object",
113332
+ "required": [
113333
+ "error"
113334
+ ],
113335
+ "properties": {
113336
+ "code": {
113337
+ "type": "string"
113338
+ },
113339
+ "error": {
113340
+ "type": "string"
113341
+ },
113342
+ "message": {
113343
+ "type": "string"
113344
+ }
113345
+ }
113346
+ }
113347
+ }
113348
+ }
113349
+ },
113350
+ "401": {
113351
+ "description": "Unauthorized - missing or invalid bearer token",
113352
+ "content": {
113353
+ "application/json": {
113354
+ "schema": {
113355
+ "$ref": "#/components/schemas/ErrorResponse"
113356
+ }
113357
+ }
113358
+ }
112837
113359
  }
112838
113360
  }
112839
113361
  }
@@ -118281,6 +118803,9 @@
118281
118803
  "error"
118282
118804
  ],
118283
118805
  "properties": {
118806
+ "code": {
118807
+ "type": "string"
118808
+ },
118284
118809
  "error": {
118285
118810
  "type": "string"
118286
118811
  },
@@ -118425,6 +118950,9 @@
118425
118950
  "error"
118426
118951
  ],
118427
118952
  "properties": {
118953
+ "code": {
118954
+ "type": "string"
118955
+ },
118428
118956
  "error": {
118429
118957
  "type": "string"
118430
118958
  },
@@ -118457,6 +118985,9 @@
118457
118985
  "error"
118458
118986
  ],
118459
118987
  "properties": {
118988
+ "code": {
118989
+ "type": "string"
118990
+ },
118460
118991
  "error": {
118461
118992
  "type": "string"
118462
118993
  },
@@ -118479,6 +119010,9 @@
118479
119010
  "error"
118480
119011
  ],
118481
119012
  "properties": {
119013
+ "code": {
119014
+ "type": "string"
119015
+ },
118482
119016
  "error": {
118483
119017
  "type": "string"
118484
119018
  },
@@ -118490,8 +119024,8 @@
118490
119024
  }
118491
119025
  }
118492
119026
  },
118493
- "500": {
118494
- "description": "Internal server error",
119027
+ "429": {
119028
+ "description": "Too many requests - rate limit exceeded",
118495
119029
  "content": {
118496
119030
  "application/json": {
118497
119031
  "schema": {
@@ -118501,6 +119035,9 @@
118501
119035
  "error"
118502
119036
  ],
118503
119037
  "properties": {
119038
+ "code": {
119039
+ "type": "string"
119040
+ },
118504
119041
  "error": {
118505
119042
  "type": "string"
118506
119043
  },
@@ -118511,120 +119048,25 @@
118511
119048
  }
118512
119049
  }
118513
119050
  }
118514
- }
118515
- }
118516
- }
118517
- },
118518
- "/api/v1/creative-hub/credits": {
118519
- "get": {
118520
- "operationId": "creativeHubGetCredits",
118521
- "summary": "Creative Hub credit balance",
118522
- "tags": [
118523
- "creative-hub"
118524
- ],
118525
- "description": "Returns spendable AI credits for Creative Hub generation, including purchased credits and weekly grant credits.",
118526
- "security": [
118527
- {
118528
- "bearerAuth": []
118529
- },
118530
- {
118531
- "apiKeyAuth": []
118532
- }
118533
- ],
118534
- "responses": {
118535
- "200": {
118536
- "description": "Successful response",
118537
- "content": {
118538
- "application/json": {
118539
- "schema": {
118540
- "type": "object",
118541
- "required": [
118542
- "balance",
118543
- "grant_balance",
118544
- "monthly_cap",
118545
- "monthly_used",
118546
- "spendable",
118547
- "total_purchased",
118548
- "total_used"
118549
- ],
118550
- "properties": {
118551
- "balance": {
118552
- "type": "number"
118553
- },
118554
- "grant_balance": {
118555
- "type": "number"
118556
- },
118557
- "monthly_cap": {
118558
- "anyOf": [
118559
- {
118560
- "type": "number"
118561
- },
118562
- {
118563
- "type": "null"
118564
- }
118565
- ]
118566
- },
118567
- "monthly_used": {
118568
- "type": "number"
118569
- },
118570
- "spendable": {
118571
- "type": "number"
118572
- },
118573
- "total_purchased": {
118574
- "type": "number"
118575
- },
118576
- "total_used": {
118577
- "type": "number"
118578
- }
118579
- }
118580
- }
118581
- }
118582
- }
118583
119051
  },
118584
- "401": {
118585
- "description": "Unauthorized - missing or invalid bearer token",
118586
- "content": {
118587
- "application/json": {
118588
- "schema": {
118589
- "$ref": "#/components/schemas/ErrorResponse"
118590
- }
118591
- }
118592
- }
118593
- }
118594
- }
118595
- }
118596
- },
118597
- "/api/v1/creative-hub/ugc/products/upload": {
118598
- "post": {
118599
- "operationId": "creativeHubUploadUgcProductImage",
118600
- "summary": "Upload a product image for UGC product-hand mode",
118601
- "tags": [
118602
- "creative-hub",
118603
- "creative-generation"
118604
- ],
118605
- "description": "Uploads one JPEG, PNG or WebP product image for the UGC product-hand generation mode and stores it in team-scoped creative asset storage.",
118606
- "security": [
118607
- {
118608
- "bearerAuth": []
118609
- }
118610
- ],
118611
- "responses": {
118612
- "201": {
118613
- "description": "Resource created",
119052
+ "500": {
119053
+ "description": "Internal server error",
118614
119054
  "content": {
118615
119055
  "application/json": {
118616
119056
  "schema": {
118617
119057
  "additionalProperties": false,
118618
119058
  "type": "object",
118619
119059
  "required": [
118620
- "image_url",
118621
- "storage_key"
119060
+ "error"
118622
119061
  ],
118623
119062
  "properties": {
118624
- "image_url": {
119063
+ "code": {
118625
119064
  "type": "string"
118626
119065
  },
118627
- "storage_key": {
119066
+ "error": {
119067
+ "type": "string"
119068
+ },
119069
+ "message": {
118628
119070
  "type": "string"
118629
119071
  }
118630
119072
  }
@@ -118632,8 +119074,153 @@
118632
119074
  }
118633
119075
  }
118634
119076
  },
118635
- "400": {
118636
- "description": "Invalid request - schema validation failed",
119077
+ "503": {
119078
+ "description": "Service unavailable",
119079
+ "content": {
119080
+ "application/json": {
119081
+ "schema": {
119082
+ "additionalProperties": false,
119083
+ "type": "object",
119084
+ "required": [
119085
+ "error"
119086
+ ],
119087
+ "properties": {
119088
+ "code": {
119089
+ "type": "string"
119090
+ },
119091
+ "error": {
119092
+ "type": "string"
119093
+ },
119094
+ "message": {
119095
+ "type": "string"
119096
+ }
119097
+ }
119098
+ }
119099
+ }
119100
+ }
119101
+ }
119102
+ }
119103
+ }
119104
+ },
119105
+ "/api/v1/creative-hub/credits": {
119106
+ "get": {
119107
+ "operationId": "creativeHubGetCredits",
119108
+ "summary": "Creative Hub credit balance",
119109
+ "tags": [
119110
+ "creative-hub"
119111
+ ],
119112
+ "description": "Returns spendable AI credits for Creative Hub generation, including purchased credits and weekly grant credits.",
119113
+ "security": [
119114
+ {
119115
+ "bearerAuth": []
119116
+ },
119117
+ {
119118
+ "apiKeyAuth": []
119119
+ }
119120
+ ],
119121
+ "responses": {
119122
+ "200": {
119123
+ "description": "Successful response",
119124
+ "content": {
119125
+ "application/json": {
119126
+ "schema": {
119127
+ "type": "object",
119128
+ "required": [
119129
+ "balance",
119130
+ "grant_balance",
119131
+ "monthly_cap",
119132
+ "monthly_used",
119133
+ "spendable",
119134
+ "total_purchased",
119135
+ "total_used"
119136
+ ],
119137
+ "properties": {
119138
+ "balance": {
119139
+ "type": "number"
119140
+ },
119141
+ "grant_balance": {
119142
+ "type": "number"
119143
+ },
119144
+ "monthly_cap": {
119145
+ "anyOf": [
119146
+ {
119147
+ "type": "number"
119148
+ },
119149
+ {
119150
+ "type": "null"
119151
+ }
119152
+ ]
119153
+ },
119154
+ "monthly_used": {
119155
+ "type": "number"
119156
+ },
119157
+ "spendable": {
119158
+ "type": "number"
119159
+ },
119160
+ "total_purchased": {
119161
+ "type": "number"
119162
+ },
119163
+ "total_used": {
119164
+ "type": "number"
119165
+ }
119166
+ }
119167
+ }
119168
+ }
119169
+ }
119170
+ },
119171
+ "401": {
119172
+ "description": "Unauthorized - missing or invalid bearer token",
119173
+ "content": {
119174
+ "application/json": {
119175
+ "schema": {
119176
+ "$ref": "#/components/schemas/ErrorResponse"
119177
+ }
119178
+ }
119179
+ }
119180
+ }
119181
+ }
119182
+ }
119183
+ },
119184
+ "/api/v1/creative-hub/ugc/products/upload": {
119185
+ "post": {
119186
+ "operationId": "creativeHubUploadUgcProductImage",
119187
+ "summary": "Upload a product image for UGC product-hand mode",
119188
+ "tags": [
119189
+ "creative-hub",
119190
+ "creative-generation"
119191
+ ],
119192
+ "description": "Uploads one JPEG, PNG or WebP product image for the UGC product-hand generation mode and stores it in team-scoped creative asset storage.",
119193
+ "security": [
119194
+ {
119195
+ "bearerAuth": []
119196
+ }
119197
+ ],
119198
+ "responses": {
119199
+ "201": {
119200
+ "description": "Resource created",
119201
+ "content": {
119202
+ "application/json": {
119203
+ "schema": {
119204
+ "additionalProperties": false,
119205
+ "type": "object",
119206
+ "required": [
119207
+ "image_url",
119208
+ "storage_key"
119209
+ ],
119210
+ "properties": {
119211
+ "image_url": {
119212
+ "type": "string"
119213
+ },
119214
+ "storage_key": {
119215
+ "type": "string"
119216
+ }
119217
+ }
119218
+ }
119219
+ }
119220
+ }
119221
+ },
119222
+ "400": {
119223
+ "description": "Invalid request - schema validation failed",
118637
119224
  "content": {
118638
119225
  "application/json": {
118639
119226
  "schema": {
@@ -119507,6 +120094,31 @@
119507
120094
  }
119508
120095
  }
119509
120096
  }
120097
+ },
120098
+ "503": {
120099
+ "description": "Service unavailable",
120100
+ "content": {
120101
+ "application/json": {
120102
+ "schema": {
120103
+ "additionalProperties": false,
120104
+ "type": "object",
120105
+ "required": [
120106
+ "error"
120107
+ ],
120108
+ "properties": {
120109
+ "code": {
120110
+ "type": "string"
120111
+ },
120112
+ "error": {
120113
+ "type": "string"
120114
+ },
120115
+ "message": {
120116
+ "type": "string"
120117
+ }
120118
+ }
120119
+ }
120120
+ }
120121
+ }
119510
120122
  }
119511
120123
  }
119512
120124
  }
@@ -119519,7 +120131,7 @@
119519
120131
  "creative-hub",
119520
120132
  "creative-generation"
119521
120133
  ],
119522
- "description": "Returns the deterministic credit estimate for a UGC generation request without starting a provider job.",
120134
+ "description": "Returns the deterministic credit estimate for a UGC generation request without starting a provider job. The estimate is computed from the SAME resolved billing input the generate endpoint charges from, so it accounts for the two effects that used to make the charge exceed the quote: a spoken script longer than the requested duration extends the billable duration (up to 15s, reported as duration_source), and a product photo adds a product-description line. Supply script_word_count and has_product_image to get the exact amount that will be charged; omitting them yields the floor of that amount.",
119523
120135
  "requestBody": {
119524
120136
  "required": true,
119525
120137
  "content": {
@@ -119584,7 +120196,19 @@
119584
120196
  "captions": {
119585
120197
  "type": "boolean"
119586
120198
  },
120199
+ "has_product_image": {
120200
+ "description": "Whether a product photo will be attached. It triggers a real product-description model call, so it raises the estimate. mode=product_hand implies true (the photo is mandatory there).",
120201
+ "type": "boolean"
120202
+ },
120203
+ "script_word_count": {
120204
+ "minimum": 0,
120205
+ "maximum": 2000,
120206
+ "description": "Word count of the user-supplied script (not the script itself — this endpoint performs no I/O and stores nothing). Used to detect a spoken duration longer than duration_seconds. Ignored for mode=ai_script, where the script is written to fit the requested duration.",
120207
+ "type": "integer"
120208
+ },
119587
120209
  "model_id": {
120210
+ "deprecated": true,
120211
+ "description": "DEPRECATED and ignored: the UGC engine model is not caller-selectable. Kept so existing SDK clients that still send it do not start failing schema validation. It will be removed in a future major version.",
119588
120212
  "type": "string"
119589
120213
  }
119590
120214
  }
@@ -119606,13 +120230,100 @@
119606
120230
  "content": {
119607
120231
  "application/json": {
119608
120232
  "schema": {
120233
+ "additionalProperties": false,
119609
120234
  "type": "object",
119610
120235
  "required": [
119611
- "credits"
120236
+ "credits",
120237
+ "breakdown",
120238
+ "billable_seconds",
120239
+ "duration_source",
120240
+ "resolution_multiplier",
120241
+ "pricing_version"
119612
120242
  ],
119613
120243
  "properties": {
119614
120244
  "credits": {
120245
+ "description": "Total credits that will be held and charged.",
119615
120246
  "type": "integer"
120247
+ },
120248
+ "breakdown": {
120249
+ "description": "Per catalog line contribution to the total.",
120250
+ "type": "array",
120251
+ "items": {
120252
+ "additionalProperties": false,
120253
+ "type": "object",
120254
+ "required": [
120255
+ "model_id",
120256
+ "retail_credits",
120257
+ "unit",
120258
+ "units"
120259
+ ],
120260
+ "properties": {
120261
+ "model_id": {
120262
+ "type": "string"
120263
+ },
120264
+ "retail_credits": {
120265
+ "type": "integer"
120266
+ },
120267
+ "unit": {
120268
+ "type": "string"
120269
+ },
120270
+ "units": {
120271
+ "type": "number"
120272
+ }
120273
+ }
120274
+ }
120275
+ },
120276
+ "billable_seconds": {
120277
+ "description": "Seconds actually billed (minimum 8s, capped at 15s).",
120278
+ "type": "integer"
120279
+ },
120280
+ "duration_source": {
120281
+ "description": "extended_to_spoken means the spoken script is longer than the requested duration, so the billable duration was raised to fit it.",
120282
+ "anyOf": [
120283
+ {
120284
+ "type": "string",
120285
+ "enum": [
120286
+ "requested"
120287
+ ]
120288
+ },
120289
+ {
120290
+ "type": "string",
120291
+ "enum": [
120292
+ "extended_to_spoken"
120293
+ ]
120294
+ }
120295
+ ]
120296
+ },
120297
+ "resolution_multiplier": {
120298
+ "type": "number"
120299
+ },
120300
+ "pricing_version": {
120301
+ "type": "string"
120302
+ }
120303
+ }
120304
+ }
120305
+ }
120306
+ }
120307
+ },
120308
+ "400": {
120309
+ "description": "Invalid request - schema validation failed",
120310
+ "content": {
120311
+ "application/json": {
120312
+ "schema": {
120313
+ "additionalProperties": false,
120314
+ "type": "object",
120315
+ "required": [
120316
+ "error"
120317
+ ],
120318
+ "properties": {
120319
+ "code": {
120320
+ "type": "string"
120321
+ },
120322
+ "error": {
120323
+ "type": "string"
120324
+ },
120325
+ "message": {
120326
+ "type": "string"
119616
120327
  }
119617
120328
  }
119618
120329
  }
@@ -120591,6 +121302,27 @@
120591
121302
  }
120592
121303
  }
120593
121304
  },
121305
+ "429": {
121306
+ "description": "Too many requests - rate limit exceeded",
121307
+ "content": {
121308
+ "application/json": {
121309
+ "schema": {
121310
+ "type": "object",
121311
+ "required": [
121312
+ "error"
121313
+ ],
121314
+ "properties": {
121315
+ "error": {
121316
+ "type": "string"
121317
+ },
121318
+ "code": {
121319
+ "type": "string"
121320
+ }
121321
+ }
121322
+ }
121323
+ }
121324
+ }
121325
+ },
120594
121326
  "500": {
120595
121327
  "description": "Internal server error",
120596
121328
  "content": {
@@ -120608,6 +121340,28 @@
120608
121340
  }
120609
121341
  }
120610
121342
  }
121343
+ },
121344
+ "503": {
121345
+ "description": "Service unavailable",
121346
+ "content": {
121347
+ "application/json": {
121348
+ "schema": {
121349
+ "type": "object",
121350
+ "required": [
121351
+ "error",
121352
+ "code"
121353
+ ],
121354
+ "properties": {
121355
+ "error": {
121356
+ "type": "string"
121357
+ },
121358
+ "code": {
121359
+ "type": "string"
121360
+ }
121361
+ }
121362
+ }
121363
+ }
121364
+ }
120611
121365
  }
120612
121366
  }
120613
121367
  }
@@ -120964,6 +121718,175 @@
120964
121718
  }
120965
121719
  }
120966
121720
  }
121721
+ },
121722
+ "503": {
121723
+ "description": "Service unavailable",
121724
+ "content": {
121725
+ "application/json": {
121726
+ "schema": {
121727
+ "additionalProperties": false,
121728
+ "type": "object",
121729
+ "required": [
121730
+ "error"
121731
+ ],
121732
+ "properties": {
121733
+ "code": {
121734
+ "type": "string"
121735
+ },
121736
+ "error": {
121737
+ "type": "string"
121738
+ },
121739
+ "message": {
121740
+ "type": "string"
121741
+ }
121742
+ }
121743
+ }
121744
+ }
121745
+ }
121746
+ }
121747
+ }
121748
+ }
121749
+ },
121750
+ "/api/v1/creative-hub/video-studio/estimate": {
121751
+ "post": {
121752
+ "operationId": "creativeHubEstimateCinematicVideo",
121753
+ "summary": "Estimate cinematic video generation credit cost",
121754
+ "tags": [
121755
+ "creative-hub",
121756
+ "creative-generation"
121757
+ ],
121758
+ "description": "Returns the deterministic credit hold estimate for a cinematic video generation, from the same catalog rates the generation is charged at.",
121759
+ "requestBody": {
121760
+ "required": true,
121761
+ "content": {
121762
+ "application/json": {
121763
+ "schema": {
121764
+ "additionalProperties": false,
121765
+ "type": "object",
121766
+ "properties": {
121767
+ "duration": {
121768
+ "anyOf": [
121769
+ {
121770
+ "type": "number",
121771
+ "enum": [
121772
+ 4
121773
+ ]
121774
+ },
121775
+ {
121776
+ "type": "number",
121777
+ "enum": [
121778
+ 5
121779
+ ]
121780
+ },
121781
+ {
121782
+ "type": "number",
121783
+ "enum": [
121784
+ 6
121785
+ ]
121786
+ },
121787
+ {
121788
+ "type": "number",
121789
+ "enum": [
121790
+ 8
121791
+ ]
121792
+ },
121793
+ {
121794
+ "type": "number",
121795
+ "enum": [
121796
+ 10
121797
+ ]
121798
+ }
121799
+ ]
121800
+ },
121801
+ "provider": {
121802
+ "anyOf": [
121803
+ {
121804
+ "type": "string",
121805
+ "enum": [
121806
+ "kling_3_0"
121807
+ ]
121808
+ },
121809
+ {
121810
+ "type": "string",
121811
+ "enum": [
121812
+ "veo_3_1"
121813
+ ]
121814
+ },
121815
+ {
121816
+ "type": "string",
121817
+ "enum": [
121818
+ "seedance_pro"
121819
+ ]
121820
+ }
121821
+ ]
121822
+ }
121823
+ }
121824
+ }
121825
+ }
121826
+ }
121827
+ },
121828
+ "security": [
121829
+ {
121830
+ "bearerAuth": []
121831
+ },
121832
+ {
121833
+ "apiKeyAuth": []
121834
+ }
121835
+ ],
121836
+ "responses": {
121837
+ "200": {
121838
+ "description": "Successful response",
121839
+ "content": {
121840
+ "application/json": {
121841
+ "schema": {
121842
+ "additionalProperties": false,
121843
+ "type": "object",
121844
+ "required": [
121845
+ "credits"
121846
+ ],
121847
+ "properties": {
121848
+ "credits": {
121849
+ "type": "integer"
121850
+ }
121851
+ }
121852
+ }
121853
+ }
121854
+ }
121855
+ },
121856
+ "400": {
121857
+ "description": "Invalid request - schema validation failed",
121858
+ "content": {
121859
+ "application/json": {
121860
+ "schema": {
121861
+ "additionalProperties": false,
121862
+ "type": "object",
121863
+ "required": [
121864
+ "error"
121865
+ ],
121866
+ "properties": {
121867
+ "code": {
121868
+ "type": "string"
121869
+ },
121870
+ "error": {
121871
+ "type": "string"
121872
+ },
121873
+ "message": {
121874
+ "type": "string"
121875
+ }
121876
+ }
121877
+ }
121878
+ }
121879
+ }
121880
+ },
121881
+ "401": {
121882
+ "description": "Unauthorized - missing or invalid bearer token",
121883
+ "content": {
121884
+ "application/json": {
121885
+ "schema": {
121886
+ "$ref": "#/components/schemas/ErrorResponse"
121887
+ }
121888
+ }
121889
+ }
120967
121890
  }
120968
121891
  }
120969
121892
  }
@@ -121892,6 +122815,9 @@
121892
122815
  "error"
121893
122816
  ],
121894
122817
  "properties": {
122818
+ "code": {
122819
+ "type": "string"
122820
+ },
121895
122821
  "error": {
121896
122822
  "type": "string"
121897
122823
  },
@@ -121914,6 +122840,9 @@
121914
122840
  "error"
121915
122841
  ],
121916
122842
  "properties": {
122843
+ "code": {
122844
+ "type": "string"
122845
+ },
121917
122846
  "error": {
121918
122847
  "type": "string"
121919
122848
  },
@@ -121936,6 +122865,9 @@
121936
122865
  "error"
121937
122866
  ],
121938
122867
  "properties": {
122868
+ "code": {
122869
+ "type": "string"
122870
+ },
121939
122871
  "error": {
121940
122872
  "type": "string"
121941
122873
  },
@@ -122018,6 +122950,9 @@
122018
122950
  "error"
122019
122951
  ],
122020
122952
  "properties": {
122953
+ "code": {
122954
+ "type": "string"
122955
+ },
122021
122956
  "error": {
122022
122957
  "type": "string"
122023
122958
  },
@@ -122040,6 +122975,34 @@
122040
122975
  "error"
122041
122976
  ],
122042
122977
  "properties": {
122978
+ "code": {
122979
+ "type": "string"
122980
+ },
122981
+ "error": {
122982
+ "type": "string"
122983
+ },
122984
+ "message": {
122985
+ "type": "string"
122986
+ }
122987
+ }
122988
+ }
122989
+ }
122990
+ }
122991
+ },
122992
+ "429": {
122993
+ "description": "Too many requests - rate limit exceeded",
122994
+ "content": {
122995
+ "application/json": {
122996
+ "schema": {
122997
+ "additionalProperties": false,
122998
+ "type": "object",
122999
+ "required": [
123000
+ "error"
123001
+ ],
123002
+ "properties": {
123003
+ "code": {
123004
+ "type": "string"
123005
+ },
122043
123006
  "error": {
122044
123007
  "type": "string"
122045
123008
  },
@@ -122069,6 +123032,31 @@
122069
123032
  }
122070
123033
  }
122071
123034
  }
123035
+ },
123036
+ "503": {
123037
+ "description": "Service unavailable",
123038
+ "content": {
123039
+ "application/json": {
123040
+ "schema": {
123041
+ "additionalProperties": false,
123042
+ "type": "object",
123043
+ "required": [
123044
+ "error"
123045
+ ],
123046
+ "properties": {
123047
+ "code": {
123048
+ "type": "string"
123049
+ },
123050
+ "error": {
123051
+ "type": "string"
123052
+ },
123053
+ "message": {
123054
+ "type": "string"
123055
+ }
123056
+ }
123057
+ }
123058
+ }
123059
+ }
122072
123060
  }
122073
123061
  }
122074
123062
  }
@@ -122184,6 +123172,9 @@
122184
123172
  "error"
122185
123173
  ],
122186
123174
  "properties": {
123175
+ "code": {
123176
+ "type": "string"
123177
+ },
122187
123178
  "error": {
122188
123179
  "type": "string"
122189
123180
  },
@@ -122216,6 +123207,9 @@
122216
123207
  "error"
122217
123208
  ],
122218
123209
  "properties": {
123210
+ "code": {
123211
+ "type": "string"
123212
+ },
122219
123213
  "error": {
122220
123214
  "type": "string"
122221
123215
  },
@@ -122349,6 +123343,9 @@
122349
123343
  "error"
122350
123344
  ],
122351
123345
  "properties": {
123346
+ "code": {
123347
+ "type": "string"
123348
+ },
122352
123349
  "error": {
122353
123350
  "type": "string"
122354
123351
  },
@@ -122381,6 +123378,9 @@
122381
123378
  "error"
122382
123379
  ],
122383
123380
  "properties": {
123381
+ "code": {
123382
+ "type": "string"
123383
+ },
122384
123384
  "error": {
122385
123385
  "type": "string"
122386
123386
  },
@@ -122403,6 +123403,9 @@
122403
123403
  "error"
122404
123404
  ],
122405
123405
  "properties": {
123406
+ "code": {
123407
+ "type": "string"
123408
+ },
122406
123409
  "error": {
122407
123410
  "type": "string"
122408
123411
  },
@@ -122425,6 +123428,34 @@
122425
123428
  "error"
122426
123429
  ],
122427
123430
  "properties": {
123431
+ "code": {
123432
+ "type": "string"
123433
+ },
123434
+ "error": {
123435
+ "type": "string"
123436
+ },
123437
+ "message": {
123438
+ "type": "string"
123439
+ }
123440
+ }
123441
+ }
123442
+ }
123443
+ }
123444
+ },
123445
+ "429": {
123446
+ "description": "Too many requests - rate limit exceeded",
123447
+ "content": {
123448
+ "application/json": {
123449
+ "schema": {
123450
+ "additionalProperties": false,
123451
+ "type": "object",
123452
+ "required": [
123453
+ "error"
123454
+ ],
123455
+ "properties": {
123456
+ "code": {
123457
+ "type": "string"
123458
+ },
122428
123459
  "error": {
122429
123460
  "type": "string"
122430
123461
  },
@@ -122447,6 +123478,34 @@
122447
123478
  "error"
122448
123479
  ],
122449
123480
  "properties": {
123481
+ "code": {
123482
+ "type": "string"
123483
+ },
123484
+ "error": {
123485
+ "type": "string"
123486
+ },
123487
+ "message": {
123488
+ "type": "string"
123489
+ }
123490
+ }
123491
+ }
123492
+ }
123493
+ }
123494
+ },
123495
+ "503": {
123496
+ "description": "Service unavailable",
123497
+ "content": {
123498
+ "application/json": {
123499
+ "schema": {
123500
+ "additionalProperties": false,
123501
+ "type": "object",
123502
+ "required": [
123503
+ "error"
123504
+ ],
123505
+ "properties": {
123506
+ "code": {
123507
+ "type": "string"
123508
+ },
122450
123509
  "error": {
122451
123510
  "type": "string"
122452
123511
  },
@@ -122611,6 +123670,9 @@
122611
123670
  "error"
122612
123671
  ],
122613
123672
  "properties": {
123673
+ "code": {
123674
+ "type": "string"
123675
+ },
122614
123676
  "error": {
122615
123677
  "type": "string"
122616
123678
  },
@@ -122633,6 +123695,9 @@
122633
123695
  "error"
122634
123696
  ],
122635
123697
  "properties": {
123698
+ "code": {
123699
+ "type": "string"
123700
+ },
122636
123701
  "error": {
122637
123702
  "type": "string"
122638
123703
  },
@@ -176863,7 +177928,7 @@
176863
177928
  "tags": [
176864
177929
  "reports"
176865
177930
  ],
176866
- "description": "Returns the current job status and, when COMPLETED, a freshly signed S3 download URL with its `expires_at` timestamp (~7 days). Access follows the current workspace for team-stamped runs; legacy runs without a team stamp remain original-owner only. The URL is regenerated on demand from the stored S3 key, so completed runs remain re-downloadable for the lifetime of the underlying object.",
177931
+ "description": "Returns the current job status and, when COMPLETED, a freshly signed S3 download URL with its `expires_at` timestamp (~7 days). Accepts both on-demand exports and scheduled sends. Access follows the current workspace for team-stamped runs; legacy runs without a team stamp remain original-owner only. The URL is regenerated on demand from the stored S3 key, so completed runs remain re-downloadable for the lifetime of the underlying object.",
176867
177932
  "parameters": [
176868
177933
  {
176869
177934
  "schema": {
@@ -177000,7 +178065,7 @@
177000
178065
  "tags": [
177001
178066
  "reports"
177002
178067
  ],
177003
- "description": "Persistent history of recent PDF/CSV report exports visible to the authenticated caller, ordered newest first. Team-stamped runs follow current workspace access; legacy runs without a team stamp remain original-owner only. Reads worker_run rows joined on the enqueued worker_run_event metadata so the Download Center UI can re-hydrate after a page refresh without losing track of completed exports whose presigned URLs have already expired.",
178068
+ "description": "Persistent history of recent PDF/CSV report exports visible to the authenticated caller, ordered newest first, covering both on-demand exports and scheduled sends. Team-stamped runs follow current workspace access; legacy runs without a team stamp remain original-owner only. Reads worker_run rows joined on the enqueued worker_run_event metadata so the Download Center UI can re-hydrate after a page refresh without losing track of completed exports whose presigned URLs have already expired.",
177004
178069
  "parameters": [
177005
178070
  {
177006
178071
  "schema": {
@@ -177046,7 +178111,9 @@
177046
178111
  "to_date",
177047
178112
  "created_at",
177048
178113
  "completed_at",
177049
- "error_message"
178114
+ "error_message",
178115
+ "origin",
178116
+ "retryable"
177050
178117
  ],
177051
178118
  "properties": {
177052
178119
  "id": {
@@ -177153,6 +178220,27 @@
177153
178220
  "type": "null"
177154
178221
  }
177155
178222
  ]
178223
+ },
178224
+ "origin": {
178225
+ "description": "Who asked for this artifact: `on_demand` = the caller pressed Export; `scheduled` = a recurring send produced it. The UI must not treat a scheduled artifact as a download the user is waiting on.",
178226
+ "anyOf": [
178227
+ {
178228
+ "type": "string",
178229
+ "enum": [
178230
+ "on_demand"
178231
+ ]
178232
+ },
178233
+ {
178234
+ "type": "string",
178235
+ "enum": [
178236
+ "scheduled"
178237
+ ]
178238
+ }
178239
+ ]
178240
+ },
178241
+ "retryable": {
178242
+ "description": "Whether POST /api/v1/reports/{id}/retry accepts this run. Only on-demand exports carry the stored request payload a retry replays; a scheduled send is re-run from its schedule instead.",
178243
+ "type": "boolean"
177156
178244
  }
177157
178245
  }
177158
178246
  }
@@ -177247,6 +178335,8 @@
177247
178335
  "recipients",
177248
178336
  "format",
177249
178337
  "ad_account_ids",
178338
+ "platforms",
178339
+ "period",
177250
178340
  "is_active",
177251
178341
  "last_run_at",
177252
178342
  "next_run_at",
@@ -177364,6 +178454,54 @@
177364
178454
  "type": "string"
177365
178455
  }
177366
178456
  },
178457
+ "platforms": {
178458
+ "type": "array",
178459
+ "items": {
178460
+ "type": "string"
178461
+ }
178462
+ },
178463
+ "period": {
178464
+ "anyOf": [
178465
+ {
178466
+ "description": "Rolling window recomputed at every run. Omitted/null falls back to the template period, else last 7 days.",
178467
+ "anyOf": [
178468
+ {
178469
+ "type": "string",
178470
+ "enum": [
178471
+ "last7d"
178472
+ ]
178473
+ },
178474
+ {
178475
+ "type": "string",
178476
+ "enum": [
178477
+ "last14d"
178478
+ ]
178479
+ },
178480
+ {
178481
+ "type": "string",
178482
+ "enum": [
178483
+ "last30d"
178484
+ ]
178485
+ },
178486
+ {
178487
+ "type": "string",
178488
+ "enum": [
178489
+ "last90d"
178490
+ ]
178491
+ },
178492
+ {
178493
+ "type": "string",
178494
+ "enum": [
178495
+ "mtd"
178496
+ ]
178497
+ }
178498
+ ]
178499
+ },
178500
+ {
178501
+ "type": "null"
178502
+ }
178503
+ ]
178504
+ },
177367
178505
  "is_active": {
177368
178506
  "type": "boolean"
177369
178507
  },
@@ -177428,6 +178566,33 @@
177428
178566
  }
177429
178567
  }
177430
178568
  }
178569
+ },
178570
+ "503": {
178571
+ "description": "Scheduled reports are not enabled for this account.",
178572
+ "content": {
178573
+ "application/json": {
178574
+ "schema": {
178575
+ "additionalProperties": false,
178576
+ "description": "Scheduled reports are not enabled for this account.",
178577
+ "type": "object",
178578
+ "required": [
178579
+ "error",
178580
+ "code"
178581
+ ],
178582
+ "properties": {
178583
+ "error": {
178584
+ "type": "string"
178585
+ },
178586
+ "code": {
178587
+ "type": "string",
178588
+ "enum": [
178589
+ "FEATURE_DISABLED"
178590
+ ]
178591
+ }
178592
+ }
178593
+ }
178594
+ }
178595
+ }
177431
178596
  }
177432
178597
  }
177433
178598
  },
@@ -177447,7 +178612,8 @@
177447
178612
  "type": "object",
177448
178613
  "required": [
177449
178614
  "name",
177450
- "frequency"
178615
+ "frequency",
178616
+ "recipients"
177451
178617
  ],
177452
178618
  "properties": {
177453
178619
  "name": {
@@ -177518,6 +178684,9 @@
177518
178684
  "type": "integer"
177519
178685
  },
177520
178686
  "recipients": {
178687
+ "minItems": 1,
178688
+ "maxItems": 10,
178689
+ "description": "Destination inboxes. Up to 10 on paid plans; lower plans are capped further and may be restricted to the owner's own address.",
177521
178690
  "type": "array",
177522
178691
  "items": {
177523
178692
  "additionalProperties": false,
@@ -177554,12 +178723,66 @@
177554
178723
  ]
177555
178724
  },
177556
178725
  "ad_account_ids": {
178726
+ "maxItems": 50,
178727
+ "description": "Ad accounts included in the export. Empty/omitted = every account in scope.",
177557
178728
  "type": "array",
177558
178729
  "items": {
177559
178730
  "minLength": 1,
177560
178731
  "type": "string"
177561
178732
  }
177562
178733
  },
178734
+ "platforms": {
178735
+ "maxItems": 10,
178736
+ "description": "Restricts the export to these ad platforms (meta, google, tiktok, taboola, snapchat, outbrain). Empty = every platform, and the export gains a Platform column.",
178737
+ "type": "array",
178738
+ "items": {
178739
+ "minLength": 1,
178740
+ "maxLength": 20,
178741
+ "type": "string"
178742
+ }
178743
+ },
178744
+ "period": {
178745
+ "anyOf": [
178746
+ {
178747
+ "description": "Rolling window recomputed at every run. Omitted/null falls back to the template period, else last 7 days.",
178748
+ "anyOf": [
178749
+ {
178750
+ "type": "string",
178751
+ "enum": [
178752
+ "last7d"
178753
+ ]
178754
+ },
178755
+ {
178756
+ "type": "string",
178757
+ "enum": [
178758
+ "last14d"
178759
+ ]
178760
+ },
178761
+ {
178762
+ "type": "string",
178763
+ "enum": [
178764
+ "last30d"
178765
+ ]
178766
+ },
178767
+ {
178768
+ "type": "string",
178769
+ "enum": [
178770
+ "last90d"
178771
+ ]
178772
+ },
178773
+ {
178774
+ "type": "string",
178775
+ "enum": [
178776
+ "mtd"
178777
+ ]
178778
+ }
178779
+ ]
178780
+ },
178781
+ {
178782
+ "type": "null"
178783
+ }
178784
+ ]
178785
+ },
177563
178786
  "is_active": {
177564
178787
  "type": "boolean"
177565
178788
  }
@@ -177606,6 +178829,8 @@
177606
178829
  "recipients",
177607
178830
  "format",
177608
178831
  "ad_account_ids",
178832
+ "platforms",
178833
+ "period",
177609
178834
  "is_active",
177610
178835
  "last_run_at",
177611
178836
  "next_run_at",
@@ -177723,6 +178948,54 @@
177723
178948
  "type": "string"
177724
178949
  }
177725
178950
  },
178951
+ "platforms": {
178952
+ "type": "array",
178953
+ "items": {
178954
+ "type": "string"
178955
+ }
178956
+ },
178957
+ "period": {
178958
+ "anyOf": [
178959
+ {
178960
+ "description": "Rolling window recomputed at every run. Omitted/null falls back to the template period, else last 7 days.",
178961
+ "anyOf": [
178962
+ {
178963
+ "type": "string",
178964
+ "enum": [
178965
+ "last7d"
178966
+ ]
178967
+ },
178968
+ {
178969
+ "type": "string",
178970
+ "enum": [
178971
+ "last14d"
178972
+ ]
178973
+ },
178974
+ {
178975
+ "type": "string",
178976
+ "enum": [
178977
+ "last30d"
178978
+ ]
178979
+ },
178980
+ {
178981
+ "type": "string",
178982
+ "enum": [
178983
+ "last90d"
178984
+ ]
178985
+ },
178986
+ {
178987
+ "type": "string",
178988
+ "enum": [
178989
+ "mtd"
178990
+ ]
178991
+ }
178992
+ ]
178993
+ },
178994
+ {
178995
+ "type": "null"
178996
+ }
178997
+ ]
178998
+ },
177726
178999
  "is_active": {
177727
179000
  "type": "boolean"
177728
179001
  },
@@ -177801,6 +179074,29 @@
177801
179074
  ]
177802
179075
  }
177803
179076
  }
179077
+ },
179078
+ {
179079
+ "description": "The request failed schema validation.",
179080
+ "type": "object",
179081
+ "required": [
179082
+ "statusCode",
179083
+ "error",
179084
+ "message"
179085
+ ],
179086
+ "properties": {
179087
+ "statusCode": {
179088
+ "type": "number"
179089
+ },
179090
+ "error": {
179091
+ "type": "string"
179092
+ },
179093
+ "message": {
179094
+ "type": "string"
179095
+ },
179096
+ "code": {
179097
+ "type": "string"
179098
+ }
179099
+ }
177804
179100
  }
177805
179101
  ]
177806
179102
  }
@@ -177916,6 +179212,33 @@
177916
179212
  }
177917
179213
  }
177918
179214
  }
179215
+ },
179216
+ "503": {
179217
+ "description": "Scheduled reports are not enabled for this account.",
179218
+ "content": {
179219
+ "application/json": {
179220
+ "schema": {
179221
+ "additionalProperties": false,
179222
+ "description": "Scheduled reports are not enabled for this account.",
179223
+ "type": "object",
179224
+ "required": [
179225
+ "error",
179226
+ "code"
179227
+ ],
179228
+ "properties": {
179229
+ "error": {
179230
+ "type": "string"
179231
+ },
179232
+ "code": {
179233
+ "type": "string",
179234
+ "enum": [
179235
+ "FEATURE_DISABLED"
179236
+ ]
179237
+ }
179238
+ }
179239
+ }
179240
+ }
179241
+ }
177919
179242
  }
177920
179243
  }
177921
179244
  }
@@ -177975,6 +179298,8 @@
177975
179298
  "recipients",
177976
179299
  "format",
177977
179300
  "ad_account_ids",
179301
+ "platforms",
179302
+ "period",
177978
179303
  "is_active",
177979
179304
  "last_run_at",
177980
179305
  "next_run_at",
@@ -178092,6 +179417,54 @@
178092
179417
  "type": "string"
178093
179418
  }
178094
179419
  },
179420
+ "platforms": {
179421
+ "type": "array",
179422
+ "items": {
179423
+ "type": "string"
179424
+ }
179425
+ },
179426
+ "period": {
179427
+ "anyOf": [
179428
+ {
179429
+ "description": "Rolling window recomputed at every run. Omitted/null falls back to the template period, else last 7 days.",
179430
+ "anyOf": [
179431
+ {
179432
+ "type": "string",
179433
+ "enum": [
179434
+ "last7d"
179435
+ ]
179436
+ },
179437
+ {
179438
+ "type": "string",
179439
+ "enum": [
179440
+ "last14d"
179441
+ ]
179442
+ },
179443
+ {
179444
+ "type": "string",
179445
+ "enum": [
179446
+ "last30d"
179447
+ ]
179448
+ },
179449
+ {
179450
+ "type": "string",
179451
+ "enum": [
179452
+ "last90d"
179453
+ ]
179454
+ },
179455
+ {
179456
+ "type": "string",
179457
+ "enum": [
179458
+ "mtd"
179459
+ ]
179460
+ }
179461
+ ]
179462
+ },
179463
+ {
179464
+ "type": "null"
179465
+ }
179466
+ ]
179467
+ },
178095
179468
  "is_active": {
178096
179469
  "type": "boolean"
178097
179470
  },
@@ -178171,6 +179544,33 @@
178171
179544
  }
178172
179545
  }
178173
179546
  }
179547
+ },
179548
+ "503": {
179549
+ "description": "Scheduled reports are not enabled for this account.",
179550
+ "content": {
179551
+ "application/json": {
179552
+ "schema": {
179553
+ "additionalProperties": false,
179554
+ "description": "Scheduled reports are not enabled for this account.",
179555
+ "type": "object",
179556
+ "required": [
179557
+ "error",
179558
+ "code"
179559
+ ],
179560
+ "properties": {
179561
+ "error": {
179562
+ "type": "string"
179563
+ },
179564
+ "code": {
179565
+ "type": "string",
179566
+ "enum": [
179567
+ "FEATURE_DISABLED"
179568
+ ]
179569
+ }
179570
+ }
179571
+ }
179572
+ }
179573
+ }
178174
179574
  }
178175
179575
  }
178176
179576
  },
@@ -178180,7 +179580,7 @@
178180
179580
  "tags": [
178181
179581
  "reports"
178182
179582
  ],
178183
- "description": "Partially updates the schedule. Any subset of mutable fields may be supplied. Recomputes `next_run_at` if cadence (frequency / day_of_week / day_of_month / hour_utc) changes. Returns 400 if `template_id` is reassigned to a template not owned by the session.",
179583
+ "description": "Partially updates the schedule. Any subset of mutable fields may be supplied. Recomputes `next_run_at` if cadence (frequency / day_of_week / day_of_month / hour_utc) changes. Returns 400 if `template_id` is reassigned to a template not owned by the session. Responds 503 when scheduled reports are disabled for the caller, EXCEPT for a body of exactly `{\"is_active\": false}` - pausing your own sends is always allowed.",
178184
179584
  "requestBody": {
178185
179585
  "required": true,
178186
179586
  "content": {
@@ -178257,6 +179657,9 @@
178257
179657
  "type": "integer"
178258
179658
  },
178259
179659
  "recipients": {
179660
+ "minItems": 1,
179661
+ "maxItems": 10,
179662
+ "description": "Destination inboxes. Up to 10 on paid plans; lower plans are capped further and may be restricted to the owner's own address.",
178260
179663
  "type": "array",
178261
179664
  "items": {
178262
179665
  "additionalProperties": false,
@@ -178293,12 +179696,66 @@
178293
179696
  ]
178294
179697
  },
178295
179698
  "ad_account_ids": {
179699
+ "maxItems": 50,
179700
+ "description": "Ad accounts included in the export. Empty/omitted = every account in scope.",
179701
+ "type": "array",
179702
+ "items": {
179703
+ "minLength": 1,
179704
+ "type": "string"
179705
+ }
179706
+ },
179707
+ "platforms": {
179708
+ "maxItems": 10,
179709
+ "description": "Restricts the export to these ad platforms (meta, google, tiktok, taboola, snapchat, outbrain). Empty = every platform, and the export gains a Platform column.",
178296
179710
  "type": "array",
178297
179711
  "items": {
178298
179712
  "minLength": 1,
179713
+ "maxLength": 20,
178299
179714
  "type": "string"
178300
179715
  }
178301
179716
  },
179717
+ "period": {
179718
+ "anyOf": [
179719
+ {
179720
+ "description": "Rolling window recomputed at every run. Omitted/null falls back to the template period, else last 7 days.",
179721
+ "anyOf": [
179722
+ {
179723
+ "type": "string",
179724
+ "enum": [
179725
+ "last7d"
179726
+ ]
179727
+ },
179728
+ {
179729
+ "type": "string",
179730
+ "enum": [
179731
+ "last14d"
179732
+ ]
179733
+ },
179734
+ {
179735
+ "type": "string",
179736
+ "enum": [
179737
+ "last30d"
179738
+ ]
179739
+ },
179740
+ {
179741
+ "type": "string",
179742
+ "enum": [
179743
+ "last90d"
179744
+ ]
179745
+ },
179746
+ {
179747
+ "type": "string",
179748
+ "enum": [
179749
+ "mtd"
179750
+ ]
179751
+ }
179752
+ ]
179753
+ },
179754
+ {
179755
+ "type": "null"
179756
+ }
179757
+ ]
179758
+ },
178302
179759
  "is_active": {
178303
179760
  "type": "boolean"
178304
179761
  }
@@ -178354,6 +179811,8 @@
178354
179811
  "recipients",
178355
179812
  "format",
178356
179813
  "ad_account_ids",
179814
+ "platforms",
179815
+ "period",
178357
179816
  "is_active",
178358
179817
  "last_run_at",
178359
179818
  "next_run_at",
@@ -178471,6 +179930,54 @@
178471
179930
  "type": "string"
178472
179931
  }
178473
179932
  },
179933
+ "platforms": {
179934
+ "type": "array",
179935
+ "items": {
179936
+ "type": "string"
179937
+ }
179938
+ },
179939
+ "period": {
179940
+ "anyOf": [
179941
+ {
179942
+ "description": "Rolling window recomputed at every run. Omitted/null falls back to the template period, else last 7 days.",
179943
+ "anyOf": [
179944
+ {
179945
+ "type": "string",
179946
+ "enum": [
179947
+ "last7d"
179948
+ ]
179949
+ },
179950
+ {
179951
+ "type": "string",
179952
+ "enum": [
179953
+ "last14d"
179954
+ ]
179955
+ },
179956
+ {
179957
+ "type": "string",
179958
+ "enum": [
179959
+ "last30d"
179960
+ ]
179961
+ },
179962
+ {
179963
+ "type": "string",
179964
+ "enum": [
179965
+ "last90d"
179966
+ ]
179967
+ },
179968
+ {
179969
+ "type": "string",
179970
+ "enum": [
179971
+ "mtd"
179972
+ ]
179973
+ }
179974
+ ]
179975
+ },
179976
+ {
179977
+ "type": "null"
179978
+ }
179979
+ ]
179980
+ },
178474
179981
  "is_active": {
178475
179982
  "type": "boolean"
178476
179983
  },
@@ -178512,6 +180019,7 @@
178512
180019
  "schema": {
178513
180020
  "anyOf": [
178514
180021
  {
180022
+ "additionalProperties": false,
178515
180023
  "type": "object",
178516
180024
  "required": [
178517
180025
  "error"
@@ -178548,6 +180056,29 @@
178548
180056
  ]
178549
180057
  }
178550
180058
  }
180059
+ },
180060
+ {
180061
+ "description": "The request failed schema validation.",
180062
+ "type": "object",
180063
+ "required": [
180064
+ "statusCode",
180065
+ "error",
180066
+ "message"
180067
+ ],
180068
+ "properties": {
180069
+ "statusCode": {
180070
+ "type": "number"
180071
+ },
180072
+ "error": {
180073
+ "type": "string"
180074
+ },
180075
+ "message": {
180076
+ "type": "string"
180077
+ },
180078
+ "code": {
180079
+ "type": "string"
180080
+ }
180081
+ }
178551
180082
  }
178552
180083
  ]
178553
180084
  }
@@ -178617,6 +180148,33 @@
178617
180148
  }
178618
180149
  }
178619
180150
  }
180151
+ },
180152
+ "503": {
180153
+ "description": "Scheduled reports are not enabled for this account.",
180154
+ "content": {
180155
+ "application/json": {
180156
+ "schema": {
180157
+ "additionalProperties": false,
180158
+ "description": "Scheduled reports are not enabled for this account.",
180159
+ "type": "object",
180160
+ "required": [
180161
+ "error",
180162
+ "code"
180163
+ ],
180164
+ "properties": {
180165
+ "error": {
180166
+ "type": "string"
180167
+ },
180168
+ "code": {
180169
+ "type": "string",
180170
+ "enum": [
180171
+ "FEATURE_DISABLED"
180172
+ ]
180173
+ }
180174
+ }
180175
+ }
180176
+ }
180177
+ }
178620
180178
  }
178621
180179
  }
178622
180180
  },
@@ -178626,7 +180184,7 @@
178626
180184
  "tags": [
178627
180185
  "reports"
178628
180186
  ],
178629
- "description": "Marks the schedule as deleted (sets deleted_at) so the cron loop stops picking it up. Idempotent: returns 404 if the schedule was already deleted or never existed.",
180187
+ "description": "Marks the schedule as deleted (sets deleted_at) so the cron loop stops picking it up. Idempotent: returns 404 if the schedule was already deleted or never existed. Not gated by the scheduled-reports feature flag: stopping your own sends must stay possible while the feature is switched off.",
178630
180188
  "parameters": [
178631
180189
  {
178632
180190
  "schema": {
@@ -178661,35 +180219,74 @@
178661
180219
  "description": "No content"
178662
180220
  },
178663
180221
  "400": {
178664
- "description": "Explicit destination workspace required: send the x-team-id header or activate a team scope for this operation.",
180222
+ "description": "Invalid request - schema validation failed",
178665
180223
  "content": {
178666
180224
  "application/json": {
178667
180225
  "schema": {
178668
- "description": "Explicit destination workspace required: send the x-team-id header or activate a team scope for this operation.",
178669
- "additionalProperties": false,
178670
- "type": "object",
178671
- "required": [
178672
- "statusCode",
178673
- "error",
178674
- "message"
178675
- ],
178676
- "properties": {
178677
- "statusCode": {
178678
- "type": "number"
178679
- },
178680
- "error": {
178681
- "type": "string"
180226
+ "anyOf": [
180227
+ {
180228
+ "additionalProperties": false,
180229
+ "type": "object",
180230
+ "required": [
180231
+ "error"
180232
+ ],
180233
+ "properties": {
180234
+ "error": {
180235
+ "type": "string"
180236
+ }
180237
+ }
178682
180238
  },
178683
- "message": {
178684
- "type": "string"
180239
+ {
180240
+ "description": "Explicit destination workspace required: send the x-team-id header or activate a team scope for this operation.",
180241
+ "additionalProperties": false,
180242
+ "type": "object",
180243
+ "required": [
180244
+ "statusCode",
180245
+ "error",
180246
+ "message"
180247
+ ],
180248
+ "properties": {
180249
+ "statusCode": {
180250
+ "type": "number"
180251
+ },
180252
+ "error": {
180253
+ "type": "string"
180254
+ },
180255
+ "message": {
180256
+ "type": "string"
180257
+ },
180258
+ "code": {
180259
+ "type": "string",
180260
+ "enum": [
180261
+ "SCOPE_TEAM_REQUIRED"
180262
+ ]
180263
+ }
180264
+ }
178685
180265
  },
178686
- "code": {
178687
- "type": "string",
178688
- "enum": [
178689
- "SCOPE_TEAM_REQUIRED"
178690
- ]
180266
+ {
180267
+ "description": "The request failed schema validation.",
180268
+ "type": "object",
180269
+ "required": [
180270
+ "statusCode",
180271
+ "error",
180272
+ "message"
180273
+ ],
180274
+ "properties": {
180275
+ "statusCode": {
180276
+ "type": "number"
180277
+ },
180278
+ "error": {
180279
+ "type": "string"
180280
+ },
180281
+ "message": {
180282
+ "type": "string"
180283
+ },
180284
+ "code": {
180285
+ "type": "string"
180286
+ }
180287
+ }
178691
180288
  }
178692
- }
180289
+ ]
178693
180290
  }
178694
180291
  }
178695
180292
  }
@@ -178768,7 +180365,7 @@
178768
180365
  "tags": [
178769
180366
  "reports"
178770
180367
  ],
178771
- "description": "Enqueues a one-off GENERATE_SCHEDULED_REPORT job for the given schedule, bypassing the cron cadence. The job emails the artifact to the schedule recipients and records a manual-trigger audit event. Returns the canonical async-job envelope (worker_run_id mirrored as job_id).",
180368
+ "description": "Enqueues a one-off GENERATE_SCHEDULED_REPORT job for the given schedule, bypassing the cron cadence. The job emails the artifact to the schedule recipients and records a manual-trigger audit event. Returns the canonical async-job envelope (worker_run_id mirrored as job_id). Rate limited to 5 calls per 1 hour per user: one call is a PDF render plus an email fan-out, not a download.",
178772
180369
  "parameters": [
178773
180370
  {
178774
180371
  "schema": {
@@ -178846,6 +180443,79 @@
178846
180443
  }
178847
180444
  }
178848
180445
  },
180446
+ "400": {
180447
+ "description": "Invalid request - schema validation failed",
180448
+ "content": {
180449
+ "application/json": {
180450
+ "schema": {
180451
+ "anyOf": [
180452
+ {
180453
+ "additionalProperties": false,
180454
+ "type": "object",
180455
+ "required": [
180456
+ "error"
180457
+ ],
180458
+ "properties": {
180459
+ "error": {
180460
+ "type": "string"
180461
+ }
180462
+ }
180463
+ },
180464
+ {
180465
+ "description": "Explicit destination workspace required: send the x-team-id header or activate a team scope for this operation.",
180466
+ "additionalProperties": false,
180467
+ "type": "object",
180468
+ "required": [
180469
+ "statusCode",
180470
+ "error",
180471
+ "message"
180472
+ ],
180473
+ "properties": {
180474
+ "statusCode": {
180475
+ "type": "number"
180476
+ },
180477
+ "error": {
180478
+ "type": "string"
180479
+ },
180480
+ "message": {
180481
+ "type": "string"
180482
+ },
180483
+ "code": {
180484
+ "type": "string",
180485
+ "enum": [
180486
+ "SCOPE_TEAM_REQUIRED"
180487
+ ]
180488
+ }
180489
+ }
180490
+ },
180491
+ {
180492
+ "description": "The request failed schema validation.",
180493
+ "type": "object",
180494
+ "required": [
180495
+ "statusCode",
180496
+ "error",
180497
+ "message"
180498
+ ],
180499
+ "properties": {
180500
+ "statusCode": {
180501
+ "type": "number"
180502
+ },
180503
+ "error": {
180504
+ "type": "string"
180505
+ },
180506
+ "message": {
180507
+ "type": "string"
180508
+ },
180509
+ "code": {
180510
+ "type": "string"
180511
+ }
180512
+ }
180513
+ }
180514
+ ]
180515
+ }
180516
+ }
180517
+ }
180518
+ },
178849
180519
  "401": {
178850
180520
  "description": "Unauthorized - missing or invalid bearer token",
178851
180521
  "content": {
@@ -178856,6 +180526,24 @@
178856
180526
  }
178857
180527
  }
178858
180528
  },
180529
+ "403": {
180530
+ "description": "Forbidden - caller lacks the required role/permission",
180531
+ "content": {
180532
+ "application/json": {
180533
+ "schema": {
180534
+ "type": "object",
180535
+ "required": [
180536
+ "error"
180537
+ ],
180538
+ "properties": {
180539
+ "error": {
180540
+ "type": "string"
180541
+ }
180542
+ }
180543
+ }
180544
+ }
180545
+ }
180546
+ },
178859
180547
  "404": {
178860
180548
  "description": "Resource not found",
178861
180549
  "content": {
@@ -178874,6 +180562,24 @@
178874
180562
  }
178875
180563
  }
178876
180564
  },
180565
+ "429": {
180566
+ "description": "Too many requests - rate limit exceeded",
180567
+ "content": {
180568
+ "application/json": {
180569
+ "schema": {
180570
+ "type": "object",
180571
+ "required": [
180572
+ "error"
180573
+ ],
180574
+ "properties": {
180575
+ "error": {
180576
+ "type": "string"
180577
+ }
180578
+ }
180579
+ }
180580
+ }
180581
+ }
180582
+ },
178877
180583
  "500": {
178878
180584
  "description": "Internal server error",
178879
180585
  "content": {
@@ -178891,6 +180597,33 @@
178891
180597
  }
178892
180598
  }
178893
180599
  }
180600
+ },
180601
+ "503": {
180602
+ "description": "Scheduled reports are not enabled for this account.",
180603
+ "content": {
180604
+ "application/json": {
180605
+ "schema": {
180606
+ "additionalProperties": false,
180607
+ "description": "Scheduled reports are not enabled for this account.",
180608
+ "type": "object",
180609
+ "required": [
180610
+ "error",
180611
+ "code"
180612
+ ],
180613
+ "properties": {
180614
+ "error": {
180615
+ "type": "string"
180616
+ },
180617
+ "code": {
180618
+ "type": "string",
180619
+ "enum": [
180620
+ "FEATURE_DISABLED"
180621
+ ]
180622
+ }
180623
+ }
180624
+ }
180625
+ }
180626
+ }
178894
180627
  }
178895
180628
  }
178896
180629
  }