@automate.ax/integration-contracts 0.146.1 → 0.147.1

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.
@@ -0,0 +1,2859 @@
1
+ /* eslint-disable */
2
+ /* oxlint-disable -- Generated from Tally's externally versioned OpenAPI document. */
3
+ /**
4
+ * Generated from https://developers.tally.so/api-reference/openapi.json. Source
5
+ * SHA-256: 28b98ea5fb21692746d85f8bb8110c74d3826c6e15d33dd0ccf1aa0e92f1db7b.
6
+ */
7
+ export interface components {
8
+ schemas: {
9
+ /**
10
+ * Deleting a form is done through DELETE /forms/{formId}, which moves it to
11
+ * the trash so it can be restored.
12
+ *
13
+ * @enum {string}
14
+ */
15
+ FormStatus: "BLANK" | "DRAFT" | "PUBLISHED"
16
+ /**
17
+ * Format: uuid
18
+ *
19
+ * Unique identifier for this block.
20
+ */
21
+ BlockUuid: string
22
+ /**
23
+ * Format: uuid
24
+ *
25
+ * Groups related blocks together. For standalone blocks, use the block's
26
+ * own uuid. For child blocks (e.g., dropdown options, multiple choice
27
+ * options), use the parent block's uuid so all children share the same
28
+ * groupUuid.
29
+ */
30
+ GroupUuid: string
31
+ /**
32
+ * When true, hides the field from respondents. Hidden fields don't appear
33
+ * on the form but can be shown via conditional logic.
34
+ */
35
+ IsHidden: boolean
36
+ /**
37
+ * When true, collapses the question group in the form builder UI, hiding
38
+ * child blocks while showing a count indicator. Only applies to Title and
39
+ * Label blocks.
40
+ */
41
+ IsFolded: boolean
42
+ /**
43
+ * When true, the field must be filled out before the form can be submitted.
44
+ * Respondents will see a required indicator.
45
+ */
46
+ IsRequired: boolean
47
+ /**
48
+ * When true, the field is pre-populated with the value from defaultAnswer
49
+ * when the form loads.
50
+ */
51
+ HasDefaultAnswer: boolean
52
+ /**
53
+ * Set to true to enable minCharacters validation. When true, minCharacters
54
+ * must be provided.
55
+ */
56
+ HasMinCharacters: boolean
57
+ /**
58
+ * The minimum number of characters allowed. Required when hasMinCharacters
59
+ * is true.
60
+ */
61
+ MinCharacters: number
62
+ /**
63
+ * Set to true to enable maxCharacters validation. When true, maxCharacters
64
+ * must be provided.
65
+ */
66
+ HasMaxCharacters: boolean
67
+ /**
68
+ * The maximum number of characters allowed. Required when hasMaxCharacters
69
+ * is true.
70
+ */
71
+ MaxCharacters: number
72
+ /**
73
+ * Set to true to enable minChoices validation. When true, minChoices must
74
+ * be provided.
75
+ */
76
+ HasMinChoices: boolean
77
+ /**
78
+ * Minimum number of selections required. Required when hasMinChoices is
79
+ * true.
80
+ */
81
+ MinChoices: number
82
+ /**
83
+ * Set to true to enable maxChoices validation. When true, maxChoices must
84
+ * be provided.
85
+ */
86
+ HasMaxChoices: boolean
87
+ /**
88
+ * Maximum number of selections allowed. Required when hasMaxChoices is
89
+ * true.
90
+ */
91
+ MaxChoices: number
92
+ /** Position of this option within the group (0-indexed). */
93
+ OptionIndex: number
94
+ /** True if this is the first option in the group. */
95
+ IsFirstOption: boolean
96
+ /** True if this is the last option in the group. */
97
+ IsLastOption: boolean
98
+ /**
99
+ * Allow selecting multiple options. Only needs to be set on the first
100
+ * option in the group.
101
+ */
102
+ AllowMultiple: boolean
103
+ /**
104
+ * Enable color-coded options display. Only needs to be set on the first
105
+ * option in the group.
106
+ */
107
+ ColorCodeOptions: boolean
108
+ /**
109
+ * Color name for this option when colorCodeOptions is enabled.
110
+ *
111
+ * @enum {string}
112
+ */
113
+ OptionColor:
114
+ | "red"
115
+ | "orange"
116
+ | "yellow"
117
+ | "green"
118
+ | "blue"
119
+ | "purple"
120
+ | "pink"
121
+ | "gray"
122
+ /**
123
+ * The default value for this field. Can be either a raw string value or a
124
+ * Field reference to dynamically populate from another field's answer.
125
+ */
126
+ DefaultAnswerString: components["schemas"]["Field"] | string
127
+ /**
128
+ * The default value for this field. Can be either a raw number value or a
129
+ * Field reference to dynamically populate from another field's answer.
130
+ */
131
+ DefaultAnswerNumber: components["schemas"]["Field"] | number
132
+ /** Customizes the button text for form navigation. */
133
+ Button: {
134
+ /** The text displayed on the button (e.g., "Start", "Next", "Submit"). */
135
+ label?: string
136
+ }
137
+ /**
138
+ * Optional identifier for this block. Can be used to reference the block in
139
+ * integrations or conditional logic.
140
+ */
141
+ Name: string
142
+ /**
143
+ * Rich text content. Supports basic formatting: bold, italic, underline,
144
+ * links, and mentions.
145
+ */
146
+ Html: string
147
+ /** Rich text value represented as HTML with optional field mentions. */
148
+ RichText: {
149
+ html: components["schemas"]["Html"]
150
+ mentions?: components["schemas"]["Mention"][]
151
+ } | null
152
+ /**
153
+ * The name of the content provider. Auto-detected from the URL via oEmbed
154
+ * protocol or pattern matching. Common values include: YouTube, Loom,
155
+ * Twitch, Twitter, Canva, Google Maps, Imgur, JSFiddle, GitHub Gist, Video,
156
+ * Audio, Image, PDF. May also be any other oEmbed-supported provider.
157
+ */
158
+ EmbedProvider: string
159
+ /**
160
+ * Format: uri
161
+ *
162
+ * The URL of the content to embed. Supports video platforms (YouTube, Loom,
163
+ * Twitch, etc.) and audio platforms. The URL is used to auto-detect the
164
+ * provider and fetch embed data via oEmbed.
165
+ */
166
+ EmbedUrl: string
167
+ FormSettings: {
168
+ language?: string | null
169
+ /** @default false */
170
+ isClosed: boolean
171
+ closeMessageTitle?: string | null
172
+ closeMessageDescription?: string | null
173
+ closeTimezone?: string | null
174
+ closeDate?: string | null
175
+ closeTime?: string | null
176
+ /** Format: int64 */
177
+ submissionsLimit?: number | null
178
+ uniqueSubmissionKey?: components["schemas"]["RichText"]
179
+ redirectOnCompletion?: components["schemas"]["RichText"]
180
+ /** @default false */
181
+ hasSelfEmailNotifications: boolean
182
+ selfEmailTo?: components["schemas"]["RichText"]
183
+ selfEmailReplyTo?: components["schemas"]["RichText"]
184
+ selfEmailSubject?: components["schemas"]["RichText"]
185
+ selfEmailFromName?: components["schemas"]["RichText"]
186
+ selfEmailBody?: components["schemas"]["RichText"]
187
+ /** @default false */
188
+ hasRespondentEmailNotifications: boolean
189
+ respondentEmailTo?: components["schemas"]["RichText"]
190
+ respondentEmailReplyTo?: components["schemas"]["RichText"]
191
+ respondentEmailSubject?: components["schemas"]["RichText"]
192
+ respondentEmailFromName?: components["schemas"]["RichText"]
193
+ respondentEmailBody?: components["schemas"]["RichText"]
194
+ /** @default false */
195
+ hasProgressBar: boolean
196
+ /** @default false */
197
+ hasPartialSubmissions: boolean
198
+ /** @default false */
199
+ pageAutoJump: boolean
200
+ /** @default true */
201
+ saveForLater: boolean
202
+ styles?: string | null
203
+ password?: string | null
204
+ /** Format: int64 */
205
+ submissionsDataRetentionDuration?: number | null
206
+ submissionsDataRetentionUnit?: string | null
207
+ }
208
+ Form: {
209
+ id: string
210
+ name: string | null
211
+ workspaceId: string
212
+ status: components["schemas"]["FormStatus"]
213
+ numberOfSubmissions: number
214
+ isClosed: boolean
215
+ payments?: {
216
+ amount?: number
217
+ currency?: string
218
+ }[]
219
+ /** Format: date-time */
220
+ createdAt: string
221
+ /** Format: date-time */
222
+ updatedAt: string
223
+ }
224
+ Block:
225
+ | components["schemas"]["FormTitleBlock"]
226
+ | components["schemas"]["TitleBlock"]
227
+ | components["schemas"]["TextBlock"]
228
+ | components["schemas"]["LabelBlock"]
229
+ | components["schemas"]["Heading1Block"]
230
+ | components["schemas"]["Heading2Block"]
231
+ | components["schemas"]["Heading3Block"]
232
+ | components["schemas"]["ImageBlock"]
233
+ | components["schemas"]["EmbedBlock"]
234
+ | components["schemas"]["EmbedVideoBlock"]
235
+ | components["schemas"]["EmbedAudioBlock"]
236
+ | components["schemas"]["DividerBlock"]
237
+ | components["schemas"]["PageBreakBlock"]
238
+ | components["schemas"]["InputTextBlock"]
239
+ | components["schemas"]["TextareaBlock"]
240
+ | components["schemas"]["InputNumberBlock"]
241
+ | components["schemas"]["InputEmailBlock"]
242
+ | components["schemas"]["InputLinkBlock"]
243
+ | components["schemas"]["InputPhoneNumberBlock"]
244
+ | components["schemas"]["InputDateBlock"]
245
+ | components["schemas"]["InputTimeBlock"]
246
+ | components["schemas"]["MultipleChoiceOptionBlock"]
247
+ | components["schemas"]["CheckboxBlock"]
248
+ | components["schemas"]["DropdownOptionBlock"]
249
+ | components["schemas"]["RankingOptionBlock"]
250
+ | components["schemas"]["MultiSelectOptionBlock"]
251
+ | components["schemas"]["LinearScaleBlock"]
252
+ | components["schemas"]["RatingBlock"]
253
+ | components["schemas"]["MatrixBlock"]
254
+ | components["schemas"]["MatrixRowBlock"]
255
+ | components["schemas"]["MatrixColumnBlock"]
256
+ | components["schemas"]["FileUploadBlock"]
257
+ | components["schemas"]["SignatureBlock"]
258
+ | components["schemas"]["PaymentBlock"]
259
+ | components["schemas"]["HiddenFieldsBlock"]
260
+ | components["schemas"]["ConditionalLogicBlock"]
261
+ | components["schemas"]["CalculatedFieldsBlock"]
262
+ | components["schemas"]["CaptchaBlock"]
263
+ | components["schemas"]["RespondentCountryBlock"]
264
+ CalculatedField: {
265
+ /** Format: uuid */
266
+ uuid: string
267
+ /**
268
+ * Name your calculated field to easily retrieve it in calculations later
269
+ * on.
270
+ */
271
+ name?: components["schemas"]["Name"]
272
+ type?: components["schemas"]["CalculatedFieldType"]
273
+ /**
274
+ * An initial value as a starting point of your calculation. This can be
275
+ * zero (for numbers) or left blank (for text).
276
+ */
277
+ value?: string | number
278
+ }
279
+ HiddenField: {
280
+ /** Format: uuid */
281
+ uuid: string
282
+ name?: components["schemas"]["Name"]
283
+ }
284
+ /** @enum {string} */
285
+ EventType: "FORM_RESPONSE"
286
+ User: {
287
+ id?: string
288
+ firstName?: string
289
+ lastName?: string
290
+ fullName?: string
291
+ email?: string
292
+ /** Format: uri */
293
+ avatarUrl?: string | null
294
+ organizationId?: string
295
+ isDeleted?: boolean
296
+ hasTwoFactorEnabled?: boolean
297
+ /** Format: date-time */
298
+ createdAt?: string
299
+ /** Format: date-time */
300
+ updatedAt?: string
301
+ /** @enum {string} */
302
+ subscriptionPlan?: "FREE" | "PRO" | "BUSINESS"
303
+ }
304
+ Folder: {
305
+ id: string
306
+ name: string
307
+ workspaceId: string
308
+ parentId: string | null
309
+ createdByUserId: string
310
+ /** Format: date-time */
311
+ createdAt: string
312
+ /** Format: date-time */
313
+ updatedAt: string
314
+ }
315
+ Workspace: {
316
+ id: string
317
+ name: string | null
318
+ index: number
319
+ members?: components["schemas"]["User"][]
320
+ invites?: {
321
+ id?: string
322
+ email?: string
323
+ workspaceIds?: string[]
324
+ }[]
325
+ folders?: components["schemas"]["Folder"][]
326
+ createdByUserId: string
327
+ /** Format: date-time */
328
+ createdAt: string
329
+ /** Format: date-time */
330
+ updatedAt: string
331
+ }
332
+ Invite: {
333
+ id: string
334
+ /** Format: email */
335
+ email: string
336
+ /** Format: date-time */
337
+ createdAt: string
338
+ /** Format: date-time */
339
+ updatedAt: string
340
+ }
341
+ QuestionField: {
342
+ /** Format: uuid */
343
+ uuid?: string
344
+ type?: components["schemas"]["FieldType"]
345
+ /** Format: uuid */
346
+ blockGroupUuid?: string
347
+ title?: string
348
+ questionType?: components["schemas"]["FieldQuestionType"]
349
+ }
350
+ Question: {
351
+ id?: string
352
+ type?: components["schemas"]["BlockType"]
353
+ title?: string
354
+ isTitleModifiedByUser?: boolean
355
+ formId?: string
356
+ isDeleted?: boolean
357
+ numberOfResponses?: number
358
+ /** Format: date-time */
359
+ createdAt?: string
360
+ /** Format: date-time */
361
+ updatedAt?: string
362
+ fields?: components["schemas"]["QuestionField"][]
363
+ }
364
+ /**
365
+ * A reference to a form field, used to dynamically access another field's
366
+ * value (e.g., for default answers or mentions).
367
+ */
368
+ Field: {
369
+ /**
370
+ * Unique identifier of the referenced field. A UUID for regular fields,
371
+ * or a UtilityUuid value when type is UTILITY.
372
+ */
373
+ uuid: string | components["schemas"]["UtilityUuid"]
374
+ /** The category of field being referenced. */
375
+ type: components["schemas"]["FieldType"]
376
+ /** The block type of the referenced field. */
377
+ questionType: components["schemas"]["FieldQuestionType"]
378
+ /**
379
+ * Identifier of the block group containing the referenced field. A UUID
380
+ * for regular fields, or a UtilityUuid value when type is UTILITY.
381
+ */
382
+ blockGroupUuid: string | components["schemas"]["UtilityUuid"]
383
+ /** Display title of the referenced field. */
384
+ title: string
385
+ /** For calculated fields, specifies whether the result is NUMBER or TEXT. */
386
+ calculatedFieldType?: components["schemas"]["CalculatedFieldType"]
387
+ /**
388
+ * Additional configuration for utility fields. Only present when type is
389
+ * UTILITY.
390
+ */
391
+ payload?: Record<string, never>
392
+ }
393
+ /**
394
+ * The category of a field reference.
395
+ *
396
+ * @enum {string}
397
+ */
398
+ FieldType:
399
+ | "INPUT_FIELD"
400
+ | "CALCULATED_FIELD"
401
+ | "HIDDEN_FIELD"
402
+ | "UTILITY"
403
+ | "PLACEHOLDER"
404
+ | "METADATA"
405
+ /**
406
+ * Identifier used as uuid and blockGroupUuid for utility field references.
407
+ *
408
+ * @enum {string}
409
+ */
410
+ UtilityUuid: "utility::today()"
411
+ /**
412
+ * Block types that produce answer values and can be referenced as field
413
+ * sources.
414
+ *
415
+ * @enum {string}
416
+ */
417
+ FieldQuestionType:
418
+ | "INPUT_TEXT"
419
+ | "INPUT_NUMBER"
420
+ | "INPUT_EMAIL"
421
+ | "INPUT_LINK"
422
+ | "INPUT_PHONE_NUMBER"
423
+ | "INPUT_DATE"
424
+ | "INPUT_TIME"
425
+ | "TEXTAREA"
426
+ | "RATING"
427
+ | "LINEAR_SCALE"
428
+ | "CHECKBOX"
429
+ | "MULTIPLE_CHOICE_OPTION"
430
+ | "DROPDOWN_OPTION"
431
+ | "RANKING_OPTION"
432
+ | "MULTI_SELECT_OPTION"
433
+ | "HIDDEN_FIELDS"
434
+ | "CALCULATED_FIELDS"
435
+ /**
436
+ * Choose whether the value will be text or a numeric value (number).
437
+ *
438
+ * @enum {string}
439
+ */
440
+ CalculatedFieldType: "NUMBER" | "TEXT"
441
+ /**
442
+ * A dynamic placeholder that references another field's value. Used to
443
+ * personalize form content (e.g., "Hello @name").
444
+ */
445
+ Mention: {
446
+ /**
447
+ * Format: uuid
448
+ *
449
+ * Unique identifier for this mention.
450
+ */
451
+ uuid: string
452
+ /**
453
+ * The field being referenced. Its value replaces the mention placeholder
454
+ * at runtime.
455
+ */
456
+ field: components["schemas"]["Field"]
457
+ /** Fallback value displayed when the referenced field has no data. */
458
+ defaultValue?: unknown
459
+ }
460
+ /** @enum {string} */
461
+ BlockType:
462
+ | "FORM_TITLE"
463
+ | "TEXT"
464
+ | "LABEL"
465
+ | "TITLE"
466
+ | "HEADING_1"
467
+ | "HEADING_2"
468
+ | "HEADING_3"
469
+ | "DIVIDER"
470
+ | "PAGE_BREAK"
471
+ | "IMAGE"
472
+ | "EMBED"
473
+ | "EMBED_VIDEO"
474
+ | "EMBED_AUDIO"
475
+ | "QUESTION"
476
+ | "MATRIX"
477
+ | "INPUT_TEXT"
478
+ | "INPUT_NUMBER"
479
+ | "INPUT_EMAIL"
480
+ | "INPUT_LINK"
481
+ | "INPUT_PHONE_NUMBER"
482
+ | "INPUT_DATE"
483
+ | "INPUT_TIME"
484
+ | "TEXTAREA"
485
+ | "FILE_UPLOAD"
486
+ | "LINEAR_SCALE"
487
+ | "RATING"
488
+ | "HIDDEN_FIELDS"
489
+ | "MULTIPLE_CHOICE_OPTION"
490
+ | "CHECKBOX"
491
+ | "DROPDOWN_OPTION"
492
+ | "RANKING_OPTION"
493
+ | "MULTI_SELECT_OPTION"
494
+ | "PAYMENT"
495
+ | "SIGNATURE"
496
+ | "MATRIX_ROW"
497
+ | "MATRIX_COLUMN"
498
+ | "CONDITIONAL_LOGIC"
499
+ | "CALCULATED_FIELDS"
500
+ | "CAPTCHA"
501
+ | "RESPONDENT_COUNTRY"
502
+ /**
503
+ * Days or date ranges to disable in the date picker.
504
+ *
505
+ * @enum {string}
506
+ */
507
+ DisableDays:
508
+ | "IN_THE_PAST"
509
+ | "IN_THE_FUTURE"
510
+ | "MONDAYS"
511
+ | "TUESDAYS"
512
+ | "WEDNESDAYS"
513
+ | "THURSDAYS"
514
+ | "FRIDAYS"
515
+ | "SATURDAYS"
516
+ | "SUNDAYS"
517
+ /**
518
+ * The literal character used as decimal separator.
519
+ *
520
+ * @enum {string}
521
+ */
522
+ DecimalSeparator: "." | ","
523
+ /**
524
+ * The literal character used as thousands separator. An empty string means
525
+ * no separator.
526
+ *
527
+ * @enum {string}
528
+ */
529
+ ThousandsSeparator: "" | "." | "," | " "
530
+ /** @enum {string} */
531
+ NumberFormat:
532
+ | "NUMBER"
533
+ | "PERCENT"
534
+ | "US_DOLLAR"
535
+ | "EURO"
536
+ | "POUND"
537
+ | "CUSTOM"
538
+ /** @enum {string} */
539
+ Currency:
540
+ | "AED"
541
+ | "AUD"
542
+ | "BGN"
543
+ | "BRL"
544
+ | "CAD"
545
+ | "CHF"
546
+ | "CNY"
547
+ | "CZK"
548
+ | "DKK"
549
+ | "EUR"
550
+ | "GBP"
551
+ | "HKD"
552
+ | "HRK"
553
+ | "HUF"
554
+ | "IDR"
555
+ | "ILS"
556
+ | "INR"
557
+ | "ISK"
558
+ | "JPY"
559
+ | "KRW"
560
+ | "MAD"
561
+ | "MXN"
562
+ | "MYR"
563
+ | "NOK"
564
+ | "NZD"
565
+ | "PHP"
566
+ | "PLN"
567
+ | "RON"
568
+ | "RSD"
569
+ | "RUB"
570
+ | "SAR"
571
+ | "SEK"
572
+ | "SGD"
573
+ | "THB"
574
+ | "TRY"
575
+ | "TWD"
576
+ | "UAH"
577
+ | "USD"
578
+ | "VND"
579
+ | "ZAR"
580
+ /**
581
+ * Allowed file types for upload. Keys are MIME type categories, values are
582
+ * arrays of file extensions or ['*'] for all types in that category.
583
+ *
584
+ * @example
585
+ * { "image/*": [".png", ".jpg", ".gif"], "application/*": [".pdf"] }
586
+ */
587
+ AllowedFiles: {
588
+ /** Image file extensions or ['*'] for all image types. */
589
+ "image/*"?: (
590
+ | "*"
591
+ | ".jpg"
592
+ | ".jpeg"
593
+ | ".png"
594
+ | ".gif"
595
+ | ".svg"
596
+ | ".heic"
597
+ | ".webp"
598
+ | ".bmp"
599
+ | ".psd"
600
+ )[]
601
+ /** Video file extensions or ['*'] for all video types. */
602
+ "video/*"?: ("*" | ".mp4" | ".mov" | ".webm")[]
603
+ /** Audio file extensions or ['*'] for all audio types. */
604
+ "audio/*"?: ("*" | ".mp3" | ".wav" | ".m4a")[]
605
+ /** Text file extensions or ['*'] for all text types. */
606
+ "text/*"?: ("*" | ".txt" | ".csv" | ".html" | ".xml")[]
607
+ /**
608
+ * Application/document file extensions or ['*'] for all application
609
+ * types.
610
+ */
611
+ "application/*"?: (
612
+ | "*"
613
+ | ".pdf"
614
+ | ".doc"
615
+ | ".docx"
616
+ | ".xls"
617
+ | ".xlsx"
618
+ | ".ppt"
619
+ | ".pptx"
620
+ | ".zip"
621
+ | ".rar"
622
+ | ".json"
623
+ | ".gzip"
624
+ | ".odt"
625
+ )[]
626
+ }
627
+ SingleConditional: {
628
+ /** Format: uuid */
629
+ uuid: string
630
+ /** @enum {string} */
631
+ type: "SINGLE"
632
+ /** Single condition comparing one field to a value. */
633
+ payload: {
634
+ field: components["schemas"]["Field"]
635
+ /**
636
+ * Comparison operator for the condition.
637
+ *
638
+ * @enum {string}
639
+ */
640
+ comparison:
641
+ | "IS"
642
+ | "IS_NOT"
643
+ | "IS_ANY_OF"
644
+ | "IS_NOT_ANY_OF"
645
+ | "IS_EVERY_OF"
646
+ | "CONTAINS"
647
+ | "DOES_NOT_CONTAIN"
648
+ | "STARTS_WITH"
649
+ | "DOES_NOT_START_WITH"
650
+ | "ENDS_WITH"
651
+ | "DOES_NOT_END_WITH"
652
+ | "IS_EMPTY"
653
+ | "IS_NOT_EMPTY"
654
+ | "EQUAL"
655
+ | "NOT_EQUAL"
656
+ | "GREATER_THAN"
657
+ | "LESS_THAN"
658
+ | "GREATER_OR_EQUAL_THAN"
659
+ | "LESS_OR_EQUAL_THAN"
660
+ | "IS_BEFORE"
661
+ | "IS_AFTER"
662
+ /** Comparison value or field reference. Nullable for empty checks. */
663
+ value:
664
+ | (string | number | string[] | components["schemas"]["Field"])
665
+ | null
666
+ }
667
+ }
668
+ GroupConditional: {
669
+ /** Format: uuid */
670
+ uuid: string
671
+ /** @enum {string} */
672
+ type: "GROUP"
673
+ /** Group of conditions combined with AND/OR. */
674
+ payload: {
675
+ /**
676
+ * How to combine child conditions (AND/OR).
677
+ *
678
+ * @enum {string}
679
+ */
680
+ logicalOperator: "AND" | "OR"
681
+ /** Child conditions in this group. */
682
+ conditionals: components["schemas"]["Conditional"][]
683
+ }
684
+ }
685
+ /** Union of single and group conditionals. */
686
+ Conditional:
687
+ | components["schemas"]["SingleConditional"]
688
+ | components["schemas"]["GroupConditional"]
689
+ /** Conditional action wrapper. */
690
+ ConditionalAction: {
691
+ /** Format: uuid */
692
+ uuid: string
693
+ /**
694
+ * Action type; determines which payload fields are relevant.
695
+ *
696
+ * @enum {string}
697
+ */
698
+ type:
699
+ | "JUMP_TO_PAGE"
700
+ | "CALCULATE"
701
+ | "REQUIRE_ANSWER"
702
+ | "SHOW_BLOCKS"
703
+ | "HIDE_BLOCKS"
704
+ | "HIDE_BUTTON_TO_DISABLE_COMPLETION"
705
+ /** Action details executed when conditions match. */
706
+ payload?: {
707
+ /** Target page number or page UUID to jump to. */
708
+ jumpToPage?: string | number
709
+ /** Block UUIDs to show when condition matches. */
710
+ showBlocks?: string[]
711
+ /** Block UUIDs to hide when condition matches. */
712
+ hideBlocks?: string[]
713
+ /**
714
+ * Format: uuid
715
+ *
716
+ * Block UUID to mark as required when condition matches.
717
+ */
718
+ requireAnswer?: string
719
+ /** Calculation to apply when condition matches. */
720
+ calculate?: {
721
+ field: components["schemas"]["Field"]
722
+ /**
723
+ * Math or assignment operator.
724
+ *
725
+ * @enum {string}
726
+ */
727
+ operator:
728
+ | "ADDITION"
729
+ | "SUBTRACTION"
730
+ | "MULTIPLICATION"
731
+ | "DIVISION"
732
+ | "ASSIGNMENT"
733
+ /** Value or field reference used in the calculation. */
734
+ value: string | number | string[] | components["schemas"]["Field"]
735
+ }
736
+ }
737
+ }
738
+ BlockPayload:
739
+ | components["schemas"]["FormTitlePayload"]
740
+ | components["schemas"]["TextPayload"]
741
+ | components["schemas"]["LabelPayload"]
742
+ | components["schemas"]["TitlePayload"]
743
+ | components["schemas"]["Heading1Payload"]
744
+ | components["schemas"]["Heading2Payload"]
745
+ | components["schemas"]["Heading3Payload"]
746
+ | components["schemas"]["DividerPayload"]
747
+ | components["schemas"]["PageBreakPayload"]
748
+ | components["schemas"]["ImagePayload"]
749
+ | components["schemas"]["EmbedPayload"]
750
+ | components["schemas"]["EmbedVideoPayload"]
751
+ | components["schemas"]["EmbedAudioPayload"]
752
+ | components["schemas"]["MatrixPayload"]
753
+ | components["schemas"]["InputTextPayload"]
754
+ | components["schemas"]["InputNumberPayload"]
755
+ | components["schemas"]["InputEmailPayload"]
756
+ | components["schemas"]["InputLinkPayload"]
757
+ | components["schemas"]["InputPhoneNumberPayload"]
758
+ | components["schemas"]["InputDatePayload"]
759
+ | components["schemas"]["InputTimePayload"]
760
+ | components["schemas"]["TextareaPayload"]
761
+ | components["schemas"]["FileUploadPayload"]
762
+ | components["schemas"]["LinearScalePayload"]
763
+ | components["schemas"]["RatingPayload"]
764
+ | components["schemas"]["HiddenFieldsPayload"]
765
+ | components["schemas"]["MultipleChoiceOptionPayload"]
766
+ | components["schemas"]["CheckboxPayload"]
767
+ | components["schemas"]["DropdownOptionPayload"]
768
+ | components["schemas"]["RankingOptionPayload"]
769
+ | components["schemas"]["MultiSelectOptionPayload"]
770
+ | components["schemas"]["PaymentPayload"]
771
+ | components["schemas"]["SignaturePayload"]
772
+ | components["schemas"]["MatrixRowPayload"]
773
+ | components["schemas"]["MatrixColumnPayload"]
774
+ | components["schemas"]["ConditionalLogicPayload"]
775
+ | components["schemas"]["CalculatedFieldsPayload"]
776
+ | components["schemas"]["CaptchaPayload"]
777
+ | components["schemas"]["RespondentCountryPayload"]
778
+ /**
779
+ * FormTitlePayload
780
+ *
781
+ * Payload for FORM_TITLE block type. Used for the main form title with
782
+ * optional logo and cover image.
783
+ */
784
+ FormTitlePayload: {
785
+ html?: components["schemas"]["Html"]
786
+ /** Plain-text form title. Used as the form name when provided. */
787
+ title?: string | null
788
+ /**
789
+ * Format: uri
790
+ *
791
+ * URL of the logo image displayed as form branding. Recommended size:
792
+ * 200x200 pixels. Rendered as a circular image.
793
+ */
794
+ logo?: string
795
+ /**
796
+ * Format: uri
797
+ *
798
+ * URL of a full-width cover image displayed at the top of the form.
799
+ * Recommended minimum width: 1500 pixels.
800
+ */
801
+ cover?: string
802
+ coverSettings?: {
803
+ /**
804
+ * Vertical position of the cover image as a percentage. Controls the
805
+ * CSS object-position property. 0 shows the top edge, 50 centers the
806
+ * image, and 100 shows the bottom edge.
807
+ *
808
+ * @default 50
809
+ */
810
+ objectPositionYPercent: number
811
+ }
812
+ mentions?: components["schemas"]["Mention"][]
813
+ button?: components["schemas"]["Button"]
814
+ }
815
+ /**
816
+ * TextPayload
817
+ *
818
+ * Payload for TEXT block type. Used for text content blocks.
819
+ */
820
+ TextPayload: {
821
+ html?: components["schemas"]["Html"]
822
+ isHidden?: components["schemas"]["IsHidden"]
823
+ columnListUuid?: components["schemas"]["ColumnListUuid"]
824
+ columnUuid?: components["schemas"]["ColumnUuid"]
825
+ columnRatio?: components["schemas"]["ColumnRatio"]
826
+ }
827
+ /**
828
+ * LabelPayload
829
+ *
830
+ * Payload for LABEL block type. Used for label elements.
831
+ */
832
+ LabelPayload: {
833
+ html?: components["schemas"]["Html"]
834
+ isHidden?: components["schemas"]["IsHidden"]
835
+ isFolded?: components["schemas"]["IsFolded"]
836
+ columnListUuid?: components["schemas"]["ColumnListUuid"]
837
+ columnUuid?: components["schemas"]["ColumnUuid"]
838
+ columnRatio?: components["schemas"]["ColumnRatio"]
839
+ }
840
+ /**
841
+ * TitlePayload
842
+ *
843
+ * Payload for TITLE block type. Used for title elements.
844
+ */
845
+ TitlePayload: {
846
+ html?: components["schemas"]["Html"]
847
+ isHidden?: components["schemas"]["IsHidden"]
848
+ isFolded?: components["schemas"]["IsFolded"]
849
+ columnListUuid?: components["schemas"]["ColumnListUuid"]
850
+ columnUuid?: components["schemas"]["ColumnUuid"]
851
+ columnRatio?: components["schemas"]["ColumnRatio"]
852
+ }
853
+ /**
854
+ * Heading1Payload
855
+ *
856
+ * Payload for HEADING_1 block type. Used for H1 headings.
857
+ */
858
+ Heading1Payload: {
859
+ html?: components["schemas"]["Html"]
860
+ isHidden?: components["schemas"]["IsHidden"]
861
+ columnListUuid?: components["schemas"]["ColumnListUuid"]
862
+ columnUuid?: components["schemas"]["ColumnUuid"]
863
+ columnRatio?: components["schemas"]["ColumnRatio"]
864
+ }
865
+ /**
866
+ * Heading2Payload
867
+ *
868
+ * Payload for HEADING_2 block type. Used for H2 headings.
869
+ */
870
+ Heading2Payload: {
871
+ html?: components["schemas"]["Html"]
872
+ isHidden?: components["schemas"]["IsHidden"]
873
+ columnListUuid?: components["schemas"]["ColumnListUuid"]
874
+ columnUuid?: components["schemas"]["ColumnUuid"]
875
+ columnRatio?: components["schemas"]["ColumnRatio"]
876
+ }
877
+ /**
878
+ * Heading3Payload
879
+ *
880
+ * Payload for HEADING_3 block type. Used for H3 headings.
881
+ */
882
+ Heading3Payload: {
883
+ html?: components["schemas"]["Html"]
884
+ isHidden?: components["schemas"]["IsHidden"]
885
+ columnListUuid?: components["schemas"]["ColumnListUuid"]
886
+ columnUuid?: components["schemas"]["ColumnUuid"]
887
+ columnRatio?: components["schemas"]["ColumnRatio"]
888
+ }
889
+ /**
890
+ * DividerPayload
891
+ *
892
+ * Payload for DIVIDER block type. Used for visual separators.
893
+ */
894
+ DividerPayload: {
895
+ isHidden?: components["schemas"]["IsHidden"]
896
+ columnListUuid?: components["schemas"]["ColumnListUuid"]
897
+ columnUuid?: components["schemas"]["ColumnUuid"]
898
+ columnRatio?: components["schemas"]["ColumnRatio"]
899
+ }
900
+ /**
901
+ * PageBreakPayload
902
+ *
903
+ * Payload for PAGE_BREAK block type. Used for multi-page form navigation.
904
+ */
905
+ PageBreakPayload: {
906
+ /**
907
+ * Sequential position of this page break within the form, starting from
908
+ * 0.
909
+ */
910
+ index?: number
911
+ /** When true, indicates this is the first page break in the form. */
912
+ isFirst?: boolean
913
+ /** When true, indicates this is the last page break in the form. */
914
+ isLast?: boolean
915
+ name?: components["schemas"]["Name"]
916
+ /**
917
+ * When true, indicates this page break represents a custom thank-you page
918
+ * shown after form submission.
919
+ */
920
+ isThankYouPage?: boolean
921
+ /** When true, indicates this page is collapsed in the form builder. */
922
+ isFolded?: boolean
923
+ /** When true, this page qualifies as the thank-you page target. */
924
+ isQualifiedForThankYouPage?: boolean
925
+ /**
926
+ * Customizes the button text for form navigation. When provided, label is
927
+ * required.
928
+ */
929
+ button?: {
930
+ /** The text displayed on the button (e.g., "Start", "Next", "Submit"). */
931
+ label: string
932
+ }
933
+ }
934
+ /**
935
+ * ImagePayload
936
+ *
937
+ * Payload for IMAGE block type. Used for displaying images.
938
+ */
939
+ ImagePayload: {
940
+ images?: {
941
+ /** The filename of the image. */
942
+ name: string
943
+ /** Format: uri */
944
+ url: string
945
+ }[]
946
+ /**
947
+ * Set to true to enable caption; caption must be present if hasCaption is
948
+ * true.
949
+ */
950
+ hasCaption?: boolean
951
+ /** The caption text to display below the image. */
952
+ caption?: string
953
+ /** Set to true to enable link; link must be present if hasLink is true. */
954
+ hasLink?: boolean
955
+ /**
956
+ * Format: uri
957
+ *
958
+ * The URL to link to when the image is clicked.
959
+ */
960
+ link?: string
961
+ /**
962
+ * Set to true to enable alt text; altText must be present if hasAltText
963
+ * is true.
964
+ */
965
+ hasAltText?: boolean
966
+ /** The alternative text for the image. */
967
+ altText?: string
968
+ isHidden?: components["schemas"]["IsHidden"]
969
+ columnListUuid?: components["schemas"]["ColumnListUuid"]
970
+ columnUuid?: components["schemas"]["ColumnUuid"]
971
+ columnRatio?: components["schemas"]["ColumnRatio"]
972
+ }
973
+ /**
974
+ * EmbedPayload
975
+ *
976
+ * Payload for EMBED block type. Used for embedding external content.
977
+ */
978
+ EmbedPayload: {
979
+ isHidden?: components["schemas"]["IsHidden"]
980
+ /** @enum {string} */
981
+ type:
982
+ | "rich"
983
+ | "video"
984
+ | "photo"
985
+ | "link"
986
+ | "pdf"
987
+ | "gist"
988
+ | "image/*"
989
+ | "video/*"
990
+ | "audio/*"
991
+ provider: components["schemas"]["EmbedProvider"]
992
+ title: string
993
+ /** Format: uri */
994
+ inputUrl: string
995
+ display: {
996
+ /** Format: uri */
997
+ url?: string
998
+ }
999
+ width?: string | number
1000
+ height?: string | number
1001
+ columnListUuid?: components["schemas"]["ColumnListUuid"]
1002
+ columnUuid?: components["schemas"]["ColumnUuid"]
1003
+ columnRatio?: components["schemas"]["ColumnRatio"]
1004
+ }
1005
+ /**
1006
+ * EmbedVideoPayload
1007
+ *
1008
+ * Payload for EMBED_VIDEO block type. Used for embedding video content.
1009
+ */
1010
+ EmbedVideoPayload: {
1011
+ isHidden?: components["schemas"]["IsHidden"]
1012
+ /** @enum {string} */
1013
+ type: "video" | "video/*"
1014
+ provider: components["schemas"]["EmbedProvider"]
1015
+ title: string
1016
+ inputUrl: components["schemas"]["EmbedUrl"]
1017
+ display: {
1018
+ /** Format: uri */
1019
+ url?: string
1020
+ }
1021
+ width?: string | number
1022
+ height?: string | number
1023
+ columnListUuid?: components["schemas"]["ColumnListUuid"]
1024
+ columnUuid?: components["schemas"]["ColumnUuid"]
1025
+ columnRatio?: components["schemas"]["ColumnRatio"]
1026
+ }
1027
+ /**
1028
+ * EmbedAudioPayload
1029
+ *
1030
+ * Payload for EMBED_AUDIO block type. Used for embedding audio content.
1031
+ */
1032
+ EmbedAudioPayload: {
1033
+ isHidden?: components["schemas"]["IsHidden"]
1034
+ /** @enum {string} */
1035
+ type: "audio/*" | "rich"
1036
+ provider: components["schemas"]["EmbedProvider"]
1037
+ title: string
1038
+ inputUrl: components["schemas"]["EmbedUrl"]
1039
+ display: {
1040
+ /** Format: uri */
1041
+ url?: string
1042
+ }
1043
+ width?: string | number
1044
+ height?: string | number
1045
+ columnListUuid?: components["schemas"]["ColumnListUuid"]
1046
+ columnUuid?: components["schemas"]["ColumnUuid"]
1047
+ columnRatio?: components["schemas"]["ColumnRatio"]
1048
+ }
1049
+ /**
1050
+ * MatrixPayload
1051
+ *
1052
+ * Payload for MATRIX block type. Used for matrix/grid questions.
1053
+ */
1054
+ MatrixPayload: {
1055
+ isRequired?: components["schemas"]["IsRequired"]
1056
+ isHidden?: components["schemas"]["IsHidden"]
1057
+ hasDefaultAnswer?: components["schemas"]["HasDefaultAnswer"]
1058
+ defaultAnswer?: components["schemas"]["DefaultAnswerString"]
1059
+ name?: components["schemas"]["Name"]
1060
+ }
1061
+ /**
1062
+ * InputTextPayload
1063
+ *
1064
+ * Payload for INPUT_TEXT block type. Used for short text input fields.
1065
+ */
1066
+ InputTextPayload: {
1067
+ isHidden?: components["schemas"]["IsHidden"]
1068
+ isRequired?: components["schemas"]["IsRequired"]
1069
+ hasDefaultAnswer?: components["schemas"]["HasDefaultAnswer"]
1070
+ defaultAnswer?: components["schemas"]["DefaultAnswerString"]
1071
+ placeholder?: string
1072
+ hasMinCharacters?: components["schemas"]["HasMinCharacters"]
1073
+ minCharacters?: components["schemas"]["MinCharacters"]
1074
+ hasMaxCharacters?: components["schemas"]["HasMaxCharacters"]
1075
+ maxCharacters?: components["schemas"]["MaxCharacters"]
1076
+ columnListUuid?: components["schemas"]["ColumnListUuid"]
1077
+ columnUuid?: components["schemas"]["ColumnUuid"]
1078
+ columnRatio?: components["schemas"]["ColumnRatio"]
1079
+ name?: components["schemas"]["Name"]
1080
+ }
1081
+ /**
1082
+ * InputNumberPayload
1083
+ *
1084
+ * Payload for INPUT_NUMBER block type. Used for numeric input fields.
1085
+ */
1086
+ InputNumberPayload: {
1087
+ isHidden?: components["schemas"]["IsHidden"]
1088
+ isRequired?: components["schemas"]["IsRequired"]
1089
+ hasDefaultAnswer?: components["schemas"]["HasDefaultAnswer"]
1090
+ defaultAnswer?: components["schemas"]["DefaultAnswerNumber"]
1091
+ placeholder?: string
1092
+ /**
1093
+ * Set to true to enable minNumber; minNumber must be present if
1094
+ * hasMinNumber is true.
1095
+ */
1096
+ hasMinNumber?: boolean
1097
+ /** The minimum allowed value (required if hasMinNumber is true). */
1098
+ minNumber?: number
1099
+ /**
1100
+ * Set to true to enable maxNumber; maxNumber must be present if
1101
+ * hasMaxNumber is true.
1102
+ */
1103
+ hasMaxNumber?: boolean
1104
+ /** The maximum allowed value (required if hasMaxNumber is true). */
1105
+ maxNumber?: number
1106
+ decimalSeparator?: components["schemas"]["DecimalSeparator"]
1107
+ thousandsSeparator?: components["schemas"]["ThousandsSeparator"]
1108
+ format?: components["schemas"]["NumberFormat"]
1109
+ /**
1110
+ * Custom prefix to display before the number (e.g., currency symbol).
1111
+ * Used with NumberFormat.Custom.
1112
+ */
1113
+ prefix?: string
1114
+ /**
1115
+ * Custom suffix to display after the number (e.g., unit). Used with
1116
+ * NumberFormat.Custom.
1117
+ */
1118
+ suffix?: string
1119
+ columnListUuid?: components["schemas"]["ColumnListUuid"]
1120
+ columnUuid?: components["schemas"]["ColumnUuid"]
1121
+ columnRatio?: components["schemas"]["ColumnRatio"]
1122
+ name?: components["schemas"]["Name"]
1123
+ }
1124
+ /**
1125
+ * InputEmailPayload
1126
+ *
1127
+ * Payload for INPUT_EMAIL block type. Used for email input fields.
1128
+ */
1129
+ InputEmailPayload: {
1130
+ isHidden?: components["schemas"]["IsHidden"]
1131
+ isRequired?: components["schemas"]["IsRequired"]
1132
+ hasDefaultAnswer?: components["schemas"]["HasDefaultAnswer"]
1133
+ defaultAnswer?: components["schemas"]["DefaultAnswerString"]
1134
+ /**
1135
+ * When true, respondents must verify their email address before
1136
+ * submitting.
1137
+ */
1138
+ requireVerification?: boolean
1139
+ placeholder?: string
1140
+ columnListUuid?: components["schemas"]["ColumnListUuid"]
1141
+ columnUuid?: components["schemas"]["ColumnUuid"]
1142
+ columnRatio?: components["schemas"]["ColumnRatio"]
1143
+ name?: components["schemas"]["Name"]
1144
+ }
1145
+ /**
1146
+ * InputLinkPayload
1147
+ *
1148
+ * Payload for INPUT_LINK block type. Used for URL input fields.
1149
+ */
1150
+ InputLinkPayload: {
1151
+ isHidden?: components["schemas"]["IsHidden"]
1152
+ isRequired?: components["schemas"]["IsRequired"]
1153
+ hasDefaultAnswer?: components["schemas"]["HasDefaultAnswer"]
1154
+ defaultAnswer?: components["schemas"]["DefaultAnswerString"]
1155
+ placeholder?: string
1156
+ columnListUuid?: components["schemas"]["ColumnListUuid"]
1157
+ columnUuid?: components["schemas"]["ColumnUuid"]
1158
+ columnRatio?: components["schemas"]["ColumnRatio"]
1159
+ name?: components["schemas"]["Name"]
1160
+ }
1161
+ /**
1162
+ * InputPhoneNumberPayload
1163
+ *
1164
+ * Payload for INPUT_PHONE_NUMBER block type. Used for phone number input
1165
+ * fields.
1166
+ */
1167
+ InputPhoneNumberPayload: {
1168
+ isHidden?: components["schemas"]["IsHidden"]
1169
+ isRequired?: components["schemas"]["IsRequired"]
1170
+ hasDefaultAnswer?: components["schemas"]["HasDefaultAnswer"]
1171
+ defaultAnswer?: components["schemas"]["DefaultAnswerString"]
1172
+ placeholder?: string
1173
+ /**
1174
+ * When true, allows international phone numbers from any country. When
1175
+ * false, restricts input to the default country.
1176
+ */
1177
+ internationalFormat?: boolean
1178
+ /**
1179
+ * ISO 3166-1 alpha-2 country code (e.g., 'US', 'GB', 'DE') that sets the
1180
+ * default country for the phone number input.
1181
+ */
1182
+ defaultCountryCode?: string
1183
+ columnListUuid?: components["schemas"]["ColumnListUuid"]
1184
+ columnUuid?: components["schemas"]["ColumnUuid"]
1185
+ columnRatio?: components["schemas"]["ColumnRatio"]
1186
+ name?: components["schemas"]["Name"]
1187
+ }
1188
+ /**
1189
+ * InputDatePayload
1190
+ *
1191
+ * Payload for INPUT_DATE block type. Used for date picker fields.
1192
+ */
1193
+ InputDatePayload: {
1194
+ isHidden?: components["schemas"]["IsHidden"]
1195
+ isRequired?: components["schemas"]["IsRequired"]
1196
+ hasDefaultAnswer?: components["schemas"]["HasDefaultAnswer"]
1197
+ defaultAnswer?: components["schemas"]["DefaultAnswerString"]
1198
+ placeholder?: string
1199
+ /** Array of days or date ranges to disable in the date picker. */
1200
+ disableDays?: components["schemas"]["DisableDays"][]
1201
+ /**
1202
+ * Display format for the date.
1203
+ *
1204
+ * @enum {string}
1205
+ */
1206
+ format?:
1207
+ | "MM/dd/yyyy"
1208
+ | "dd/MM/yyyy"
1209
+ | "yyyy/MM/dd"
1210
+ | "dd.MM.yyyy"
1211
+ | "yyyy-MM-dd"
1212
+ /**
1213
+ * Format: date
1214
+ *
1215
+ * Disable dates before this date.
1216
+ */
1217
+ beforeDate?: string
1218
+ /**
1219
+ * Format: date
1220
+ *
1221
+ * Disable dates after this date.
1222
+ */
1223
+ afterDate?: string
1224
+ /** Restrict selectable dates to a specific range. */
1225
+ dateRange?: {
1226
+ /**
1227
+ * Format: date
1228
+ *
1229
+ * Start date of the allowed range.
1230
+ */
1231
+ from?: string
1232
+ /**
1233
+ * Format: date
1234
+ *
1235
+ * End date of the allowed range.
1236
+ */
1237
+ to?: string
1238
+ }
1239
+ /** Array of specific dates to disable. */
1240
+ specificDates?: string[]
1241
+ /**
1242
+ * Day the week starts on in the calendar view. 0=Sunday, 1=Monday,
1243
+ * 2=Tuesday, 3=Wednesday, 4=Thursday, 5=Friday, 6=Saturday.
1244
+ *
1245
+ * @enum {string}
1246
+ */
1247
+ startWeekOn?: "0" | "1" | "2" | "3" | "4" | "5" | "6"
1248
+ columnListUuid?: components["schemas"]["ColumnListUuid"]
1249
+ columnUuid?: components["schemas"]["ColumnUuid"]
1250
+ columnRatio?: components["schemas"]["ColumnRatio"]
1251
+ name?: components["schemas"]["Name"]
1252
+ }
1253
+ /**
1254
+ * InputTimePayload
1255
+ *
1256
+ * Payload for INPUT_TIME block type. Used for time picker fields.
1257
+ */
1258
+ InputTimePayload: {
1259
+ isHidden?: components["schemas"]["IsHidden"]
1260
+ isRequired?: components["schemas"]["IsRequired"]
1261
+ hasDefaultAnswer?: components["schemas"]["HasDefaultAnswer"]
1262
+ defaultAnswer?: components["schemas"]["DefaultAnswerString"]
1263
+ placeholder?: string
1264
+ columnListUuid?: components["schemas"]["ColumnListUuid"]
1265
+ columnUuid?: components["schemas"]["ColumnUuid"]
1266
+ columnRatio?: components["schemas"]["ColumnRatio"]
1267
+ name?: components["schemas"]["Name"]
1268
+ }
1269
+ /**
1270
+ * TextareaPayload
1271
+ *
1272
+ * Payload for TEXTAREA block type. Used for long text input fields.
1273
+ */
1274
+ TextareaPayload: {
1275
+ isHidden?: components["schemas"]["IsHidden"]
1276
+ isRequired?: components["schemas"]["IsRequired"]
1277
+ hasDefaultAnswer?: components["schemas"]["HasDefaultAnswer"]
1278
+ defaultAnswer?: components["schemas"]["DefaultAnswerString"]
1279
+ placeholder?: string
1280
+ hasMinCharacters?: components["schemas"]["HasMinCharacters"]
1281
+ minCharacters?: components["schemas"]["MinCharacters"]
1282
+ hasMaxCharacters?: components["schemas"]["HasMaxCharacters"]
1283
+ maxCharacters?: components["schemas"]["MaxCharacters"]
1284
+ columnListUuid?: components["schemas"]["ColumnListUuid"]
1285
+ columnUuid?: components["schemas"]["ColumnUuid"]
1286
+ columnRatio?: components["schemas"]["ColumnRatio"]
1287
+ name?: components["schemas"]["Name"]
1288
+ }
1289
+ /**
1290
+ * FileUploadPayload
1291
+ *
1292
+ * Payload for FILE_UPLOAD block type. Used for file upload fields.
1293
+ */
1294
+ FileUploadPayload: {
1295
+ isHidden?: components["schemas"]["IsHidden"]
1296
+ isRequired?: components["schemas"]["IsRequired"]
1297
+ /** When true, allows uploading multiple files. */
1298
+ hasMultipleFiles?: boolean
1299
+ /**
1300
+ * Set to true to enable minFiles validation. When true, minFiles must be
1301
+ * provided.
1302
+ */
1303
+ hasMinFiles?: boolean
1304
+ /** Minimum number of files required. Required when hasMinFiles is true. */
1305
+ minFiles?: number
1306
+ /**
1307
+ * Set to true to enable maxFiles validation. When true, maxFiles must be
1308
+ * provided.
1309
+ */
1310
+ hasMaxFiles?: boolean
1311
+ /** Maximum number of files allowed. Required when hasMaxFiles is true. */
1312
+ maxFiles?: number
1313
+ /**
1314
+ * Set to true to enable maxFileSize validation. When true, maxFileSize
1315
+ * and maxFileSizeUnit must be provided.
1316
+ */
1317
+ hasMaxFileSize?: boolean
1318
+ /** Maximum file size. Required when hasMaxFileSize is true. */
1319
+ maxFileSize?: number
1320
+ /**
1321
+ * Unit for maxFileSize. Required when hasMaxFileSize is true.
1322
+ *
1323
+ * @enum {string}
1324
+ */
1325
+ maxFileSizeUnit?: "KB" | "MB" | "GB"
1326
+ allowedFiles?: components["schemas"]["AllowedFiles"]
1327
+ columnListUuid?: components["schemas"]["ColumnListUuid"]
1328
+ columnUuid?: components["schemas"]["ColumnUuid"]
1329
+ columnRatio?: components["schemas"]["ColumnRatio"]
1330
+ name?: components["schemas"]["Name"]
1331
+ }
1332
+ /**
1333
+ * LinearScalePayload
1334
+ *
1335
+ * Payload for LINEAR_SCALE block type. Used for scale/slider questions.
1336
+ */
1337
+ LinearScalePayload: {
1338
+ isHidden?: components["schemas"]["IsHidden"]
1339
+ isRequired?: components["schemas"]["IsRequired"]
1340
+ hasDefaultAnswer?: components["schemas"]["HasDefaultAnswer"]
1341
+ /** Default selected value. Must be within the start-end range. */
1342
+ defaultAnswer?: number
1343
+ /** Starting value of the scale (0-100). Defaults to 0. */
1344
+ start?: number
1345
+ /** Ending value of the scale (0-100). Must be >= start. Defaults to 10. */
1346
+ end?: number
1347
+ /** Step increment between scale values. Must be >= 1. Defaults to 1. */
1348
+ step?: number
1349
+ /** When true, leftLabel must be provided. */
1350
+ hasLeftLabel?: boolean
1351
+ /**
1352
+ * Label displayed at the start of the scale. Required when hasLeftLabel
1353
+ * is true.
1354
+ */
1355
+ leftLabel?: string
1356
+ /** When true, centerLabel must be provided. */
1357
+ hasCenterLabel?: boolean
1358
+ /**
1359
+ * Label displayed at the center of the scale. Required when
1360
+ * hasCenterLabel is true.
1361
+ */
1362
+ centerLabel?: string
1363
+ /** When true, rightLabel must be provided. */
1364
+ hasRightLabel?: boolean
1365
+ /**
1366
+ * Label displayed at the end of the scale. Required when hasRightLabel is
1367
+ * true.
1368
+ */
1369
+ rightLabel?: string
1370
+ columnListUuid?: components["schemas"]["ColumnListUuid"]
1371
+ columnUuid?: components["schemas"]["ColumnUuid"]
1372
+ columnRatio?: components["schemas"]["ColumnRatio"]
1373
+ name?: components["schemas"]["Name"]
1374
+ }
1375
+ /**
1376
+ * RatingPayload
1377
+ *
1378
+ * Payload for RATING block type. Used for star rating questions.
1379
+ */
1380
+ RatingPayload: {
1381
+ isHidden?: components["schemas"]["IsHidden"]
1382
+ isRequired?: components["schemas"]["IsRequired"]
1383
+ hasDefaultAnswer?: components["schemas"]["HasDefaultAnswer"]
1384
+ defaultAnswer?: components["schemas"]["DefaultAnswerNumber"]
1385
+ /** Number of stars for the rating scale (1-10). Defaults to 5. */
1386
+ stars?: number
1387
+ columnListUuid?: components["schemas"]["ColumnListUuid"]
1388
+ columnUuid?: components["schemas"]["ColumnUuid"]
1389
+ columnRatio?: components["schemas"]["ColumnRatio"]
1390
+ name?: components["schemas"]["Name"]
1391
+ }
1392
+ /**
1393
+ * HiddenFieldsPayload
1394
+ *
1395
+ * Payload for HIDDEN_FIELDS block type. Used for hidden form fields.
1396
+ */
1397
+ HiddenFieldsPayload: {
1398
+ /**
1399
+ * Array of hidden fields. Each hidden field captures a value from URL
1400
+ * query parameters matching the field name.
1401
+ */
1402
+ hiddenFields: components["schemas"]["HiddenField"][]
1403
+ }
1404
+ /**
1405
+ * MultipleChoiceOptionPayload
1406
+ *
1407
+ * Payload for MULTIPLE_CHOICE_OPTION block type. Used for single-select
1408
+ * radio questions.
1409
+ */
1410
+ MultipleChoiceOptionPayload: {
1411
+ isHidden?: components["schemas"]["IsHidden"]
1412
+ isRequired?: components["schemas"]["IsRequired"]
1413
+ hasDefaultAnswer?: components["schemas"]["HasDefaultAnswer"]
1414
+ defaultAnswer?: components["schemas"]["DefaultAnswerString"]
1415
+ index: components["schemas"]["OptionIndex"]
1416
+ isFirst: components["schemas"]["IsFirstOption"]
1417
+ isLast: components["schemas"]["IsLastOption"]
1418
+ allowMultiple?: components["schemas"]["AllowMultiple"]
1419
+ hasMinChoices?: components["schemas"]["HasMinChoices"]
1420
+ minChoices?: components["schemas"]["MinChoices"]
1421
+ hasMaxChoices?: components["schemas"]["HasMaxChoices"]
1422
+ maxChoices?: components["schemas"]["MaxChoices"]
1423
+ colorCodeOptions?: components["schemas"]["ColorCodeOptions"]
1424
+ color?: components["schemas"]["OptionColor"]
1425
+ /**
1426
+ * Enable option badges (numbers or letters). Only needs to be set on the
1427
+ * first option in the group.
1428
+ */
1429
+ hasBadge?: boolean
1430
+ /**
1431
+ * Badge display type. Only needs to be set on the first option in the
1432
+ * group.
1433
+ *
1434
+ * @enum {string}
1435
+ */
1436
+ badgeType?: "OFF" | "NUMBERS" | "LETTERS"
1437
+ /** True if the question group has an 'Other' option enabled. */
1438
+ hasOtherOption?: boolean
1439
+ /** True if this specific option is the 'Other' free-text field. */
1440
+ isOtherOption?: boolean
1441
+ /**
1442
+ * Randomize option order. Only needs to be set on the first option in the
1443
+ * group.
1444
+ */
1445
+ randomize?: boolean
1446
+ /**
1447
+ * Array of option UUIDs that should stay in their original position when
1448
+ * randomize is enabled. Only needs to be set on the first option in the
1449
+ * group.
1450
+ */
1451
+ lockInPlace?: string[]
1452
+ /** URL of an image to display alongside the option. */
1453
+ image?: string
1454
+ name?: components["schemas"]["Name"]
1455
+ /** The display text of the option. */
1456
+ text?: string
1457
+ columnListUuid?: components["schemas"]["ColumnListUuid"]
1458
+ columnUuid?: components["schemas"]["ColumnUuid"]
1459
+ columnRatio?: components["schemas"]["ColumnRatio"]
1460
+ }
1461
+ /**
1462
+ * CheckboxPayload
1463
+ *
1464
+ * Payload for CHECKBOX block type. Used for individual checkbox options
1465
+ * within a checkbox group.
1466
+ */
1467
+ CheckboxPayload: {
1468
+ isHidden?: components["schemas"]["IsHidden"]
1469
+ isRequired?: components["schemas"]["IsRequired"]
1470
+ hasDefaultAnswer?: components["schemas"]["HasDefaultAnswer"]
1471
+ defaultAnswer?: components["schemas"]["DefaultAnswerString"]
1472
+ index: components["schemas"]["OptionIndex"]
1473
+ isFirst: components["schemas"]["IsFirstOption"]
1474
+ isLast: components["schemas"]["IsLastOption"]
1475
+ /**
1476
+ * Format: uri
1477
+ *
1478
+ * URL of an image displayed alongside this checkbox option.
1479
+ */
1480
+ image?: string
1481
+ hasMinChoices?: components["schemas"]["HasMinChoices"]
1482
+ minChoices?: components["schemas"]["MinChoices"]
1483
+ hasMaxChoices?: components["schemas"]["HasMaxChoices"]
1484
+ maxChoices?: components["schemas"]["MaxChoices"]
1485
+ /** True if the question group has an 'Other' option enabled. */
1486
+ hasOtherOption?: boolean
1487
+ /** True if this specific option is the 'Other' free-text field. */
1488
+ isOtherOption?: boolean
1489
+ /**
1490
+ * Randomize option order. Only needs to be set on the first option in the
1491
+ * group.
1492
+ */
1493
+ randomize?: boolean
1494
+ /**
1495
+ * Array of option UUIDs that stay in their original position when
1496
+ * randomize is enabled.
1497
+ */
1498
+ lockInPlace?: string[]
1499
+ name?: components["schemas"]["Name"]
1500
+ /** The display text of the checkbox option. */
1501
+ text?: string
1502
+ columnListUuid?: components["schemas"]["ColumnListUuid"]
1503
+ columnUuid?: components["schemas"]["ColumnUuid"]
1504
+ columnRatio?: components["schemas"]["ColumnRatio"]
1505
+ }
1506
+ /**
1507
+ * DropdownOptionPayload
1508
+ *
1509
+ * Payload for DROPDOWN_OPTION block type. Used for dropdown select
1510
+ * questions.
1511
+ */
1512
+ DropdownOptionPayload: {
1513
+ isHidden?: components["schemas"]["IsHidden"]
1514
+ isRequired?: components["schemas"]["IsRequired"]
1515
+ hasDefaultAnswer?: components["schemas"]["HasDefaultAnswer"]
1516
+ defaultAnswer?: components["schemas"]["DefaultAnswerString"]
1517
+ placeholder?: string
1518
+ index: components["schemas"]["OptionIndex"]
1519
+ isFirst: components["schemas"]["IsFirstOption"]
1520
+ isLast: components["schemas"]["IsLastOption"]
1521
+ allowMultiple?: components["schemas"]["AllowMultiple"]
1522
+ hasMinChoices?: components["schemas"]["HasMinChoices"]
1523
+ minChoices?: components["schemas"]["MinChoices"]
1524
+ hasMaxChoices?: components["schemas"]["HasMaxChoices"]
1525
+ maxChoices?: components["schemas"]["MaxChoices"]
1526
+ /** True if the question group has an 'Other' option enabled. */
1527
+ hasOtherOption?: boolean
1528
+ /** True if this specific option is the 'Other' free-text field. */
1529
+ isOtherOption?: boolean
1530
+ /**
1531
+ * Randomize option order. Only needs to be set on the first option in the
1532
+ * group.
1533
+ */
1534
+ randomize?: boolean
1535
+ /**
1536
+ * Array of option UUIDs that should stay in their original position when
1537
+ * randomize is enabled. Only needs to be set on the first option in the
1538
+ * group.
1539
+ */
1540
+ lockInPlace?: string[]
1541
+ name?: components["schemas"]["Name"]
1542
+ /** The display text of the dropdown option. */
1543
+ text?: string
1544
+ columnListUuid?: components["schemas"]["ColumnListUuid"]
1545
+ columnUuid?: components["schemas"]["ColumnUuid"]
1546
+ columnRatio?: components["schemas"]["ColumnRatio"]
1547
+ }
1548
+ /**
1549
+ * RankingOptionPayload
1550
+ *
1551
+ * Payload for RANKING_OPTION block type. Used for ranking/ordering
1552
+ * questions.
1553
+ */
1554
+ RankingOptionPayload: {
1555
+ isHidden?: components["schemas"]["IsHidden"]
1556
+ isRequired?: components["schemas"]["IsRequired"]
1557
+ hasDefaultAnswer?: components["schemas"]["HasDefaultAnswer"]
1558
+ defaultAnswer?: components["schemas"]["DefaultAnswerString"]
1559
+ index: components["schemas"]["OptionIndex"]
1560
+ isFirst: components["schemas"]["IsFirstOption"]
1561
+ isLast: components["schemas"]["IsLastOption"]
1562
+ columnListUuid?: components["schemas"]["ColumnListUuid"]
1563
+ columnUuid?: components["schemas"]["ColumnUuid"]
1564
+ columnRatio?: components["schemas"]["ColumnRatio"]
1565
+ name?: components["schemas"]["Name"]
1566
+ html?: components["schemas"]["Html"]
1567
+ /** The text of the ranking option. */
1568
+ text?: string
1569
+ /** The image of the ranking option. */
1570
+ image?: string
1571
+ /**
1572
+ * Whether to randomize the ranking options. Only needs to be set on the
1573
+ * first option in the group.
1574
+ */
1575
+ randomize?: boolean
1576
+ /**
1577
+ * Array of option UUIDs that should stay in their original position when
1578
+ * randomize is enabled. Only needs to be set on the first option in the
1579
+ * group.
1580
+ */
1581
+ lockInPlace?: string[]
1582
+ }
1583
+ /**
1584
+ * MultiSelectOptionPayload
1585
+ *
1586
+ * Payload for MULTI_SELECT_OPTION block type. Used for multi-select
1587
+ * checkbox questions.
1588
+ */
1589
+ MultiSelectOptionPayload: {
1590
+ isHidden?: components["schemas"]["IsHidden"]
1591
+ isRequired?: components["schemas"]["IsRequired"]
1592
+ hasDefaultAnswer?: components["schemas"]["HasDefaultAnswer"]
1593
+ defaultAnswer?: components["schemas"]["DefaultAnswerString"]
1594
+ index: components["schemas"]["OptionIndex"]
1595
+ isFirst: components["schemas"]["IsFirstOption"]
1596
+ isLast: components["schemas"]["IsLastOption"]
1597
+ color?: components["schemas"]["OptionColor"]
1598
+ /** True if the question group has an 'Other' option enabled. */
1599
+ hasOtherOption?: boolean
1600
+ /** True if this specific option is the 'Other' free-text field. */
1601
+ isOtherOption?: boolean
1602
+ /**
1603
+ * Randomize option order. Only needs to be set on the first option in the
1604
+ * group.
1605
+ */
1606
+ randomize?: boolean
1607
+ /**
1608
+ * Array of option UUIDs that should stay in their original position when
1609
+ * randomize is enabled. Only needs to be set on the first option in the
1610
+ * group.
1611
+ */
1612
+ lockInPlace?: string[]
1613
+ hasMinChoices?: components["schemas"]["HasMinChoices"]
1614
+ minChoices?: components["schemas"]["MinChoices"]
1615
+ hasMaxChoices?: components["schemas"]["HasMaxChoices"]
1616
+ maxChoices?: components["schemas"]["MaxChoices"]
1617
+ /** Display text for this option. */
1618
+ text?: string
1619
+ /** Placeholder text for the 'Other' option input field. */
1620
+ placeholder?: string
1621
+ columnListUuid?: components["schemas"]["ColumnListUuid"]
1622
+ columnUuid?: components["schemas"]["ColumnUuid"]
1623
+ columnRatio?: components["schemas"]["ColumnRatio"]
1624
+ name?: components["schemas"]["Name"]
1625
+ }
1626
+ /**
1627
+ * PaymentPayload
1628
+ *
1629
+ * Payload for PAYMENT block type. Used for payment collection.
1630
+ */
1631
+ PaymentPayload: {
1632
+ isHidden?: components["schemas"]["IsHidden"]
1633
+ isRequired?: components["schemas"]["IsRequired"]
1634
+ /**
1635
+ * Payment amount. Can be a fixed number or a Field reference for dynamic
1636
+ * pricing based on another form field's value.
1637
+ */
1638
+ amount?: number | components["schemas"]["Field"]
1639
+ currency: components["schemas"]["Currency"]
1640
+ /**
1641
+ * True once the payment block is connected to a payment provider (e.g.,
1642
+ * Stripe).
1643
+ */
1644
+ isConfigured: boolean
1645
+ /** Format: uuid */
1646
+ stateUuid?: string
1647
+ columnListUuid?: components["schemas"]["ColumnListUuid"]
1648
+ columnUuid?: components["schemas"]["ColumnUuid"]
1649
+ columnRatio?: components["schemas"]["ColumnRatio"]
1650
+ name?: components["schemas"]["Name"]
1651
+ }
1652
+ /**
1653
+ * SignaturePayload
1654
+ *
1655
+ * Payload for SIGNATURE block type. Used for signature collection.
1656
+ */
1657
+ SignaturePayload: {
1658
+ isHidden?: components["schemas"]["IsHidden"]
1659
+ isRequired?: components["schemas"]["IsRequired"]
1660
+ columnListUuid?: components["schemas"]["ColumnListUuid"]
1661
+ columnUuid?: components["schemas"]["ColumnUuid"]
1662
+ columnRatio?: components["schemas"]["ColumnRatio"]
1663
+ name?: components["schemas"]["Name"]
1664
+ /** Custom label text displayed below the signature pad. */
1665
+ label?: string
1666
+ }
1667
+ /**
1668
+ * MatrixRowPayload
1669
+ *
1670
+ * Payload for MATRIX_ROW block type. Used for matrix question rows.
1671
+ */
1672
+ MatrixRowPayload: {
1673
+ isHidden?: components["schemas"]["IsHidden"]
1674
+ isRequired?: components["schemas"]["IsRequired"]
1675
+ index: components["schemas"]["OptionIndex"]
1676
+ isFirst: components["schemas"]["IsFirstOption"]
1677
+ isLast: components["schemas"]["IsLastOption"]
1678
+ /** True if respondents can select multiple columns per row. */
1679
+ allowMultiple?: boolean
1680
+ /** True if the matrix rows are shown in random order. */
1681
+ randomizeRows?: boolean
1682
+ name?: components["schemas"]["Name"]
1683
+ html?: components["schemas"]["Html"]
1684
+ /** Display text for this matrix row. */
1685
+ text?: string
1686
+ }
1687
+ /**
1688
+ * MatrixColumnPayload
1689
+ *
1690
+ * Payload for MATRIX_COLUMN block type. Used for matrix question columns.
1691
+ */
1692
+ MatrixColumnPayload: {
1693
+ isHidden?: components["schemas"]["IsHidden"]
1694
+ isRequired?: components["schemas"]["IsRequired"]
1695
+ index: components["schemas"]["OptionIndex"]
1696
+ isFirst: components["schemas"]["IsFirstOption"]
1697
+ isLast: components["schemas"]["IsLastOption"]
1698
+ /** True if respondents can select multiple columns per row. */
1699
+ allowMultiple?: boolean
1700
+ /** True if the matrix rows are shown in random order. */
1701
+ randomizeRows?: boolean
1702
+ name?: components["schemas"]["Name"]
1703
+ html?: components["schemas"]["Html"]
1704
+ /** Display text for this matrix column. */
1705
+ text?: string
1706
+ }
1707
+ /**
1708
+ * ConditionalLogicPayload
1709
+ *
1710
+ * Payload for CONDITIONAL_LOGIC block type. Used for form logic and
1711
+ * branching.
1712
+ */
1713
+ ConditionalLogicPayload: {
1714
+ /** Conditions that must be satisfied before actions run. */
1715
+ conditionals: components["schemas"]["Conditional"][]
1716
+ /** Actions executed when conditions are satisfied. */
1717
+ actions: components["schemas"]["ConditionalAction"][]
1718
+ /**
1719
+ * How to combine top-level conditions (AND/OR).
1720
+ *
1721
+ * @enum {string}
1722
+ */
1723
+ logicalOperator: "AND" | "OR"
1724
+ /**
1725
+ * Format: uuid
1726
+ *
1727
+ * UUID of the logic block being updated; null when creating.
1728
+ */
1729
+ updateUuid?: string | null
1730
+ }
1731
+ /**
1732
+ * CalculatedFieldsPayload
1733
+ *
1734
+ * Payload for CALCULATED_FIELDS block type. Used for computed/calculated
1735
+ * values.
1736
+ */
1737
+ CalculatedFieldsPayload: {
1738
+ calculatedFields: components["schemas"]["CalculatedField"][]
1739
+ }
1740
+ /**
1741
+ * CaptchaPayload
1742
+ *
1743
+ * Payload for CAPTCHA block type. Used for bot protection.
1744
+ */
1745
+ CaptchaPayload: {
1746
+ columnListUuid?: components["schemas"]["ColumnListUuid"]
1747
+ columnUuid?: components["schemas"]["ColumnUuid"]
1748
+ columnRatio?: components["schemas"]["ColumnRatio"]
1749
+ }
1750
+ /**
1751
+ * RespondentCountryPayload
1752
+ *
1753
+ * Payload for RESPONDENT_COUNTRY block type. Used for capturing respondent
1754
+ * location.
1755
+ */
1756
+ RespondentCountryPayload: Record<string, never>
1757
+ /**
1758
+ * The width percentage of a column within a column layout row. Valid values
1759
+ * range from 10 to 90, where the sum of all column ratios in a row should
1760
+ * equal 100.
1761
+ */
1762
+ ColumnRatio: number
1763
+ /**
1764
+ * Format: uuid
1765
+ *
1766
+ * Groups blocks into a column layout row. Blocks sharing the same
1767
+ * columnListUuid are displayed side-by-side.
1768
+ */
1769
+ ColumnListUuid: string
1770
+ /**
1771
+ * Format: uuid
1772
+ *
1773
+ * Identifies which column within a row this block belongs to. Blocks with
1774
+ * the same columnUuid stack vertically within that column.
1775
+ */
1776
+ ColumnUuid: string
1777
+ /**
1778
+ * FormTitleBlock
1779
+ *
1780
+ * A block with type FORM_TITLE. Used for the main form title with optional
1781
+ * logo and cover image.
1782
+ */
1783
+ FormTitleBlock: {
1784
+ uuid: components["schemas"]["BlockUuid"]
1785
+ /** @enum {string} */
1786
+ type: "FORM_TITLE"
1787
+ groupUuid: components["schemas"]["GroupUuid"]
1788
+ /** @enum {string} */
1789
+ groupType: "FORM_TITLE" | "TEXT"
1790
+ payload: components["schemas"]["FormTitlePayload"]
1791
+ }
1792
+ /**
1793
+ * TitleBlock
1794
+ *
1795
+ * A block with type TITLE. Used for section titles within the form.
1796
+ */
1797
+ TitleBlock: {
1798
+ uuid: components["schemas"]["BlockUuid"]
1799
+ /** @enum {string} */
1800
+ type: "TITLE"
1801
+ groupUuid: components["schemas"]["GroupUuid"]
1802
+ /** @enum {string} */
1803
+ groupType: "TITLE" | "QUESTION"
1804
+ payload: components["schemas"]["TitlePayload"]
1805
+ }
1806
+ /**
1807
+ * TextBlock
1808
+ *
1809
+ * A block with type TEXT. Used for rich text content within the form.
1810
+ */
1811
+ TextBlock: {
1812
+ uuid: components["schemas"]["BlockUuid"]
1813
+ /** @enum {string} */
1814
+ type: "TEXT"
1815
+ groupUuid: components["schemas"]["GroupUuid"]
1816
+ /** @enum {string} */
1817
+ groupType: "TEXT" | "PAGE_BREAK" | "DIVIDER"
1818
+ payload: components["schemas"]["TextPayload"]
1819
+ }
1820
+ /**
1821
+ * LabelBlock
1822
+ *
1823
+ * A block with type LABEL. Used for form field labels.
1824
+ */
1825
+ LabelBlock: {
1826
+ uuid: components["schemas"]["BlockUuid"]
1827
+ /** @enum {string} */
1828
+ type: "LABEL"
1829
+ groupUuid: components["schemas"]["GroupUuid"]
1830
+ /** @enum {string} */
1831
+ groupType: "LABEL"
1832
+ payload: components["schemas"]["LabelPayload"]
1833
+ }
1834
+ /**
1835
+ * Heading1Block
1836
+ *
1837
+ * A block with type HEADING_1. Used for large headings.
1838
+ */
1839
+ Heading1Block: {
1840
+ uuid: components["schemas"]["BlockUuid"]
1841
+ /** @enum {string} */
1842
+ type: "HEADING_1"
1843
+ groupUuid: components["schemas"]["GroupUuid"]
1844
+ /** @enum {string} */
1845
+ groupType: "HEADING_1"
1846
+ payload: components["schemas"]["Heading1Payload"]
1847
+ }
1848
+ /**
1849
+ * Heading2Block
1850
+ *
1851
+ * A block with type HEADING_2. Used for medium headings.
1852
+ */
1853
+ Heading2Block: {
1854
+ uuid: components["schemas"]["BlockUuid"]
1855
+ /** @enum {string} */
1856
+ type: "HEADING_2"
1857
+ groupUuid: components["schemas"]["GroupUuid"]
1858
+ /** @enum {string} */
1859
+ groupType: "HEADING_2"
1860
+ payload: components["schemas"]["Heading2Payload"]
1861
+ }
1862
+ /**
1863
+ * Heading3Block
1864
+ *
1865
+ * A block with type HEADING_3. Used for small headings.
1866
+ */
1867
+ Heading3Block: {
1868
+ uuid: components["schemas"]["BlockUuid"]
1869
+ /** @enum {string} */
1870
+ type: "HEADING_3"
1871
+ groupUuid: components["schemas"]["GroupUuid"]
1872
+ /** @enum {string} */
1873
+ groupType: "HEADING_3"
1874
+ payload: components["schemas"]["Heading3Payload"]
1875
+ }
1876
+ /**
1877
+ * ImageBlock
1878
+ *
1879
+ * A block with type IMAGE. Used for displaying images in the form.
1880
+ */
1881
+ ImageBlock: {
1882
+ uuid: components["schemas"]["BlockUuid"]
1883
+ /** @enum {string} */
1884
+ type: "IMAGE"
1885
+ groupUuid: components["schemas"]["GroupUuid"]
1886
+ /** @enum {string} */
1887
+ groupType: "IMAGE"
1888
+ payload: components["schemas"]["ImagePayload"]
1889
+ }
1890
+ /**
1891
+ * EmbedBlock
1892
+ *
1893
+ * A block with type EMBED. Used for embedding external content.
1894
+ */
1895
+ EmbedBlock: {
1896
+ uuid: components["schemas"]["BlockUuid"]
1897
+ /** @enum {string} */
1898
+ type: "EMBED"
1899
+ groupUuid: components["schemas"]["GroupUuid"]
1900
+ /** @enum {string} */
1901
+ groupType: "EMBED"
1902
+ payload: components["schemas"]["EmbedPayload"]
1903
+ }
1904
+ /**
1905
+ * EmbedVideoBlock
1906
+ *
1907
+ * A block with type EMBED_VIDEO. Used for embedding video content.
1908
+ */
1909
+ EmbedVideoBlock: {
1910
+ uuid: components["schemas"]["BlockUuid"]
1911
+ /** @enum {string} */
1912
+ type: "EMBED_VIDEO"
1913
+ groupUuid: components["schemas"]["GroupUuid"]
1914
+ /** @enum {string} */
1915
+ groupType: "EMBED_VIDEO"
1916
+ payload: components["schemas"]["EmbedVideoPayload"]
1917
+ }
1918
+ /**
1919
+ * EmbedAudioBlock
1920
+ *
1921
+ * A block with type EMBED_AUDIO. Used for embedding audio content.
1922
+ */
1923
+ EmbedAudioBlock: {
1924
+ uuid: components["schemas"]["BlockUuid"]
1925
+ /** @enum {string} */
1926
+ type: "EMBED_AUDIO"
1927
+ groupUuid: components["schemas"]["GroupUuid"]
1928
+ /** @enum {string} */
1929
+ groupType: "EMBED_AUDIO"
1930
+ payload: components["schemas"]["EmbedAudioPayload"]
1931
+ }
1932
+ /**
1933
+ * DividerBlock
1934
+ *
1935
+ * A block with type DIVIDER. Used for visual separation between sections.
1936
+ */
1937
+ DividerBlock: {
1938
+ uuid: components["schemas"]["BlockUuid"]
1939
+ /** @enum {string} */
1940
+ type: "DIVIDER"
1941
+ groupUuid: components["schemas"]["GroupUuid"]
1942
+ /** @enum {string} */
1943
+ groupType: "DIVIDER"
1944
+ payload: components["schemas"]["DividerPayload"]
1945
+ }
1946
+ /**
1947
+ * PageBreakBlock
1948
+ *
1949
+ * A block with type PAGE_BREAK. Used for creating multi-page forms.
1950
+ */
1951
+ PageBreakBlock: {
1952
+ uuid: components["schemas"]["BlockUuid"]
1953
+ /** @enum {string} */
1954
+ type: "PAGE_BREAK"
1955
+ groupUuid: components["schemas"]["GroupUuid"]
1956
+ /** @enum {string} */
1957
+ groupType: "PAGE_BREAK"
1958
+ payload: components["schemas"]["PageBreakPayload"]
1959
+ }
1960
+ /**
1961
+ * InputTextBlock
1962
+ *
1963
+ * A block with type INPUT_TEXT. Used for single-line text input.
1964
+ */
1965
+ InputTextBlock: {
1966
+ uuid: components["schemas"]["BlockUuid"]
1967
+ /** @enum {string} */
1968
+ type: "INPUT_TEXT"
1969
+ groupUuid: components["schemas"]["GroupUuid"]
1970
+ /** @enum {string} */
1971
+ groupType: "INPUT_TEXT"
1972
+ payload: components["schemas"]["InputTextPayload"]
1973
+ }
1974
+ /**
1975
+ * TextareaBlock
1976
+ *
1977
+ * A block with type TEXTAREA. Used for multi-line text input.
1978
+ */
1979
+ TextareaBlock: {
1980
+ uuid: components["schemas"]["BlockUuid"]
1981
+ /** @enum {string} */
1982
+ type: "TEXTAREA"
1983
+ groupUuid: components["schemas"]["GroupUuid"]
1984
+ /** @enum {string} */
1985
+ groupType: "TEXTAREA"
1986
+ payload: components["schemas"]["TextareaPayload"]
1987
+ }
1988
+ /**
1989
+ * InputNumberBlock
1990
+ *
1991
+ * A block with type INPUT_NUMBER. Used for numeric input.
1992
+ */
1993
+ InputNumberBlock: {
1994
+ uuid: components["schemas"]["BlockUuid"]
1995
+ /** @enum {string} */
1996
+ type: "INPUT_NUMBER"
1997
+ groupUuid: components["schemas"]["GroupUuid"]
1998
+ /** @enum {string} */
1999
+ groupType: "INPUT_NUMBER"
2000
+ payload: components["schemas"]["InputNumberPayload"]
2001
+ }
2002
+ /**
2003
+ * InputEmailBlock
2004
+ *
2005
+ * A block with type INPUT_EMAIL. Used for email address input.
2006
+ */
2007
+ InputEmailBlock: {
2008
+ uuid: components["schemas"]["BlockUuid"]
2009
+ /** @enum {string} */
2010
+ type: "INPUT_EMAIL"
2011
+ groupUuid: components["schemas"]["GroupUuid"]
2012
+ /** @enum {string} */
2013
+ groupType: "INPUT_EMAIL"
2014
+ payload: components["schemas"]["InputEmailPayload"]
2015
+ }
2016
+ /**
2017
+ * InputLinkBlock
2018
+ *
2019
+ * A block with type INPUT_LINK. Used for URL input.
2020
+ */
2021
+ InputLinkBlock: {
2022
+ uuid: components["schemas"]["BlockUuid"]
2023
+ /** @enum {string} */
2024
+ type: "INPUT_LINK"
2025
+ groupUuid: components["schemas"]["GroupUuid"]
2026
+ /** @enum {string} */
2027
+ groupType: "INPUT_LINK"
2028
+ payload: components["schemas"]["InputLinkPayload"]
2029
+ }
2030
+ /**
2031
+ * InputPhoneNumberBlock
2032
+ *
2033
+ * A block with type INPUT_PHONE_NUMBER. Used for phone number input.
2034
+ */
2035
+ InputPhoneNumberBlock: {
2036
+ uuid: components["schemas"]["BlockUuid"]
2037
+ /** @enum {string} */
2038
+ type: "INPUT_PHONE_NUMBER"
2039
+ groupUuid: components["schemas"]["GroupUuid"]
2040
+ /** @enum {string} */
2041
+ groupType: "INPUT_PHONE_NUMBER"
2042
+ payload: components["schemas"]["InputPhoneNumberPayload"]
2043
+ }
2044
+ /**
2045
+ * InputDateBlock
2046
+ *
2047
+ * A block with type INPUT_DATE. Used for date selection.
2048
+ */
2049
+ InputDateBlock: {
2050
+ uuid: components["schemas"]["BlockUuid"]
2051
+ /** @enum {string} */
2052
+ type: "INPUT_DATE"
2053
+ groupUuid: components["schemas"]["GroupUuid"]
2054
+ /** @enum {string} */
2055
+ groupType: "INPUT_DATE"
2056
+ payload: components["schemas"]["InputDatePayload"]
2057
+ }
2058
+ /**
2059
+ * InputTimeBlock
2060
+ *
2061
+ * A block with type INPUT_TIME. Used for time selection.
2062
+ */
2063
+ InputTimeBlock: {
2064
+ uuid: components["schemas"]["BlockUuid"]
2065
+ /** @enum {string} */
2066
+ type: "INPUT_TIME"
2067
+ groupUuid: components["schemas"]["GroupUuid"]
2068
+ /** @enum {string} */
2069
+ groupType: "INPUT_TIME"
2070
+ payload: components["schemas"]["InputTimePayload"]
2071
+ }
2072
+ /**
2073
+ * MultipleChoiceOptionBlock
2074
+ *
2075
+ * A block with type MULTIPLE_CHOICE_OPTION. Individual option within a
2076
+ * multiple choice question.
2077
+ */
2078
+ MultipleChoiceOptionBlock: {
2079
+ uuid: components["schemas"]["BlockUuid"]
2080
+ /** @enum {string} */
2081
+ type: "MULTIPLE_CHOICE_OPTION"
2082
+ groupUuid: components["schemas"]["GroupUuid"]
2083
+ /** @enum {string} */
2084
+ groupType: "MULTIPLE_CHOICE"
2085
+ payload: components["schemas"]["MultipleChoiceOptionPayload"]
2086
+ }
2087
+ /**
2088
+ * CheckboxBlock
2089
+ *
2090
+ * A block with type CHECKBOX. Individual checkbox option within a
2091
+ * checkboxes group.
2092
+ */
2093
+ CheckboxBlock: {
2094
+ uuid: components["schemas"]["BlockUuid"]
2095
+ /** @enum {string} */
2096
+ type: "CHECKBOX"
2097
+ groupUuid: components["schemas"]["GroupUuid"]
2098
+ /** @enum {string} */
2099
+ groupType: "CHECKBOXES"
2100
+ payload: components["schemas"]["CheckboxPayload"]
2101
+ }
2102
+ /**
2103
+ * DropdownOptionBlock
2104
+ *
2105
+ * A block with type DROPDOWN_OPTION. Individual option within a dropdown.
2106
+ */
2107
+ DropdownOptionBlock: {
2108
+ uuid: components["schemas"]["BlockUuid"]
2109
+ /** @enum {string} */
2110
+ type: "DROPDOWN_OPTION"
2111
+ groupUuid: components["schemas"]["GroupUuid"]
2112
+ /** @enum {string} */
2113
+ groupType: "DROPDOWN"
2114
+ payload: components["schemas"]["DropdownOptionPayload"]
2115
+ }
2116
+ /**
2117
+ * RankingOptionBlock
2118
+ *
2119
+ * A block with type RANKING_OPTION. Individual option within a ranking
2120
+ * question.
2121
+ */
2122
+ RankingOptionBlock: {
2123
+ uuid: components["schemas"]["BlockUuid"]
2124
+ /** @enum {string} */
2125
+ type: "RANKING_OPTION"
2126
+ groupUuid: components["schemas"]["GroupUuid"]
2127
+ /** @enum {string} */
2128
+ groupType: "RANKING"
2129
+ payload: components["schemas"]["RankingOptionPayload"]
2130
+ }
2131
+ /**
2132
+ * MultiSelectOptionBlock
2133
+ *
2134
+ * A block with type MULTI_SELECT_OPTION. Individual option within a
2135
+ * multi-select dropdown.
2136
+ */
2137
+ MultiSelectOptionBlock: {
2138
+ uuid: components["schemas"]["BlockUuid"]
2139
+ /** @enum {string} */
2140
+ type: "MULTI_SELECT_OPTION"
2141
+ groupUuid: components["schemas"]["GroupUuid"]
2142
+ /** @enum {string} */
2143
+ groupType: "MULTI_SELECT"
2144
+ payload: components["schemas"]["MultiSelectOptionPayload"]
2145
+ }
2146
+ /**
2147
+ * LinearScaleBlock
2148
+ *
2149
+ * A block with type LINEAR_SCALE. Used for numeric scale ratings (e.g.,
2150
+ * 1-10).
2151
+ */
2152
+ LinearScaleBlock: {
2153
+ uuid: components["schemas"]["BlockUuid"]
2154
+ /** @enum {string} */
2155
+ type: "LINEAR_SCALE"
2156
+ groupUuid: components["schemas"]["GroupUuid"]
2157
+ /** @enum {string} */
2158
+ groupType: "LINEAR_SCALE"
2159
+ payload: components["schemas"]["LinearScalePayload"]
2160
+ }
2161
+ /**
2162
+ * RatingBlock
2163
+ *
2164
+ * A block with type RATING. Used for star/emoji ratings.
2165
+ */
2166
+ RatingBlock: {
2167
+ uuid: components["schemas"]["BlockUuid"]
2168
+ /** @enum {string} */
2169
+ type: "RATING"
2170
+ groupUuid: components["schemas"]["GroupUuid"]
2171
+ /** @enum {string} */
2172
+ groupType: "RATING"
2173
+ payload: components["schemas"]["RatingPayload"]
2174
+ }
2175
+ /**
2176
+ * MatrixBlock
2177
+ *
2178
+ * A block with type MATRIX. Container for matrix/grid questions.
2179
+ */
2180
+ MatrixBlock: {
2181
+ uuid: components["schemas"]["BlockUuid"]
2182
+ /** @enum {string} */
2183
+ type: "MATRIX"
2184
+ groupUuid: components["schemas"]["GroupUuid"]
2185
+ /** @enum {string} */
2186
+ groupType: "MATRIX"
2187
+ payload: components["schemas"]["MatrixPayload"]
2188
+ }
2189
+ /**
2190
+ * MatrixRowBlock
2191
+ *
2192
+ * A block with type MATRIX_ROW. Row within a matrix question.
2193
+ */
2194
+ MatrixRowBlock: {
2195
+ uuid: components["schemas"]["BlockUuid"]
2196
+ /** @enum {string} */
2197
+ type: "MATRIX_ROW"
2198
+ groupUuid: components["schemas"]["GroupUuid"]
2199
+ /** @enum {string} */
2200
+ groupType: "MATRIX"
2201
+ payload: components["schemas"]["MatrixRowPayload"]
2202
+ }
2203
+ /**
2204
+ * MatrixColumnBlock
2205
+ *
2206
+ * A block with type MATRIX_COLUMN. Column within a matrix question.
2207
+ */
2208
+ MatrixColumnBlock: {
2209
+ uuid: components["schemas"]["BlockUuid"]
2210
+ /** @enum {string} */
2211
+ type: "MATRIX_COLUMN"
2212
+ groupUuid: components["schemas"]["GroupUuid"]
2213
+ /** @enum {string} */
2214
+ groupType: "MATRIX"
2215
+ payload: components["schemas"]["MatrixColumnPayload"]
2216
+ }
2217
+ /**
2218
+ * FileUploadBlock
2219
+ *
2220
+ * A block with type FILE_UPLOAD. Used for file upload input.
2221
+ */
2222
+ FileUploadBlock: {
2223
+ uuid: components["schemas"]["BlockUuid"]
2224
+ /** @enum {string} */
2225
+ type: "FILE_UPLOAD"
2226
+ groupUuid: components["schemas"]["GroupUuid"]
2227
+ /** @enum {string} */
2228
+ groupType: "FILE_UPLOAD"
2229
+ payload: components["schemas"]["FileUploadPayload"]
2230
+ }
2231
+ /**
2232
+ * SignatureBlock
2233
+ *
2234
+ * A block with type SIGNATURE. Used for capturing signatures.
2235
+ */
2236
+ SignatureBlock: {
2237
+ uuid: components["schemas"]["BlockUuid"]
2238
+ /** @enum {string} */
2239
+ type: "SIGNATURE"
2240
+ groupUuid: components["schemas"]["GroupUuid"]
2241
+ /** @enum {string} */
2242
+ groupType: "SIGNATURE"
2243
+ payload: components["schemas"]["SignaturePayload"]
2244
+ }
2245
+ /**
2246
+ * PaymentBlock
2247
+ *
2248
+ * A block with type PAYMENT. Used for payment collection.
2249
+ */
2250
+ PaymentBlock: {
2251
+ uuid: components["schemas"]["BlockUuid"]
2252
+ /** @enum {string} */
2253
+ type: "PAYMENT"
2254
+ groupUuid: components["schemas"]["GroupUuid"]
2255
+ /** @enum {string} */
2256
+ groupType: "PAYMENT"
2257
+ payload: components["schemas"]["PaymentPayload"]
2258
+ }
2259
+ /**
2260
+ * HiddenFieldsBlock
2261
+ *
2262
+ * A block with type HIDDEN_FIELDS. Used for hidden form fields.
2263
+ */
2264
+ HiddenFieldsBlock: {
2265
+ uuid: components["schemas"]["BlockUuid"]
2266
+ /** @enum {string} */
2267
+ type: "HIDDEN_FIELDS"
2268
+ groupUuid: components["schemas"]["GroupUuid"]
2269
+ /** @enum {string} */
2270
+ groupType: "HIDDEN_FIELDS"
2271
+ payload: components["schemas"]["HiddenFieldsPayload"]
2272
+ }
2273
+ /**
2274
+ * ConditionalLogicBlock
2275
+ *
2276
+ * A block with type CONDITIONAL_LOGIC. Used for form branching logic.
2277
+ */
2278
+ ConditionalLogicBlock: {
2279
+ uuid: components["schemas"]["BlockUuid"]
2280
+ /** @enum {string} */
2281
+ type: "CONDITIONAL_LOGIC"
2282
+ groupUuid: components["schemas"]["GroupUuid"]
2283
+ /** @enum {string} */
2284
+ groupType: "CONDITIONAL_LOGIC"
2285
+ payload: components["schemas"]["ConditionalLogicPayload"]
2286
+ }
2287
+ /**
2288
+ * CalculatedFieldsBlock
2289
+ *
2290
+ * A block with type CALCULATED_FIELDS. Used for computed/calculated values.
2291
+ */
2292
+ CalculatedFieldsBlock: {
2293
+ uuid: components["schemas"]["BlockUuid"]
2294
+ /** @enum {string} */
2295
+ type: "CALCULATED_FIELDS"
2296
+ groupUuid: components["schemas"]["GroupUuid"]
2297
+ /** @enum {string} */
2298
+ groupType: "CALCULATED_FIELDS"
2299
+ payload: components["schemas"]["CalculatedFieldsPayload"]
2300
+ }
2301
+ /**
2302
+ * CaptchaBlock
2303
+ *
2304
+ * A block with type CAPTCHA. Used for bot protection.
2305
+ */
2306
+ CaptchaBlock: {
2307
+ uuid: components["schemas"]["BlockUuid"]
2308
+ /** @enum {string} */
2309
+ type: "CAPTCHA"
2310
+ groupUuid: components["schemas"]["GroupUuid"]
2311
+ /** @enum {string} */
2312
+ groupType: "CAPTCHA"
2313
+ payload: components["schemas"]["CaptchaPayload"]
2314
+ }
2315
+ /**
2316
+ * RespondentCountryBlock
2317
+ *
2318
+ * A block with type RESPONDENT_COUNTRY. Used for capturing respondent
2319
+ * location.
2320
+ */
2321
+ RespondentCountryBlock: {
2322
+ uuid: components["schemas"]["BlockUuid"]
2323
+ /** @enum {string} */
2324
+ type: "RESPONDENT_COUNTRY"
2325
+ groupUuid: components["schemas"]["GroupUuid"]
2326
+ /** @enum {string} */
2327
+ groupType: "RESPONDENT_COUNTRY"
2328
+ payload: components["schemas"]["RespondentCountryPayload"]
2329
+ }
2330
+ GetFormsResponse: {
2331
+ items: components["schemas"]["Form"][]
2332
+ /** Current page number */
2333
+ page: number
2334
+ /** Number of items per page */
2335
+ limit: number
2336
+ /** Total number of items */
2337
+ total: number
2338
+ /** Whether there are more pages available */
2339
+ hasMore: boolean
2340
+ }
2341
+ PostFormsRequest: {
2342
+ /**
2343
+ * ID of the workspace to create the form in. If not provided, uses the
2344
+ * user's default workspace
2345
+ */
2346
+ workspaceId?: string
2347
+ /** ID of the template to base the form on */
2348
+ templateId?: string
2349
+ /**
2350
+ * ID of the folder to place the form in. Must belong to the target
2351
+ * workspace.
2352
+ */
2353
+ folderId?: string
2354
+ /** Initial status of the form */
2355
+ status: components["schemas"]["FormStatus"]
2356
+ blocks: components["schemas"]["Block"][]
2357
+ settings?: components["schemas"]["FormSettings"]
2358
+ }
2359
+ PostFormsResponse: components["schemas"]["Form"]
2360
+ GetFormsFormIdResponse: components["schemas"]["Form"] & {
2361
+ settings?: components["schemas"]["FormSettings"] | null
2362
+ blocks?: components["schemas"]["Block"][]
2363
+ }
2364
+ PatchFormsFormIdRequest: {
2365
+ /** New name for the form */
2366
+ name?: string
2367
+ /** New status for the form */
2368
+ status?: components["schemas"]["FormStatus"]
2369
+ /** Updated blocks for the form */
2370
+ blocks?: components["schemas"]["Block"][]
2371
+ /** Updated settings for the form */
2372
+ settings?: components["schemas"]["FormSettings"]
2373
+ }
2374
+ PatchFormsFormIdResponse: components["schemas"]["Form"]
2375
+ GetUsersMeResponse: {
2376
+ subscriptionPlan?: string
2377
+ } & components["schemas"]["User"]
2378
+ GetWorkspacesResponse: {
2379
+ items: components["schemas"]["Workspace"][]
2380
+ /** Current page number */
2381
+ page: number
2382
+ /** Number of items per page */
2383
+ limit: number
2384
+ /** Total number of items */
2385
+ total: number
2386
+ /** Whether there are more pages available */
2387
+ hasMore: boolean
2388
+ }
2389
+ PostWorkspacesRequest: {
2390
+ /** The name of the workspace */
2391
+ name: string
2392
+ }
2393
+ PostWorkspacesResponse: components["schemas"]["Workspace"]
2394
+ GetWorkspacesWorkspaceIdResponse: components["schemas"]["Workspace"]
2395
+ PatchWorkspacesWorkspaceIdRequest: {
2396
+ /** The new name for the workspace */
2397
+ name: string
2398
+ }
2399
+ GetWorkspacesWorkspaceIdFoldersResponse: components["schemas"]["Folder"][]
2400
+ PostWorkspacesWorkspaceIdFoldersRequest: {
2401
+ /** The name of the folder */
2402
+ name: string
2403
+ /** The ID of the parent folder to nest this folder under */
2404
+ parentId?: string
2405
+ }
2406
+ PostWorkspacesWorkspaceIdFoldersResponse: components["schemas"]["Folder"]
2407
+ PatchWorkspacesWorkspaceIdFoldersIdRequest: {
2408
+ /** The new name for the folder */
2409
+ name: string
2410
+ }
2411
+ GetOrganizationsOrganizationIdUsersResponse: components["schemas"]["User"][]
2412
+ GetOrganizationsOrganizationIdInvitesResponse: {
2413
+ id?: string
2414
+ organizationId?: string
2415
+ email?: string
2416
+ /** Format: date-time */
2417
+ createdAt?: string
2418
+ /** Format: date-time */
2419
+ updatedAt?: string
2420
+ }[]
2421
+ PostOrganizationsOrganizationIdInvitesRequest: {
2422
+ /** Array of workspace IDs to invite users to */
2423
+ workspaceIds: string[]
2424
+ /** Comma or semicolon separated list of email addresses to invite */
2425
+ emails: string
2426
+ }
2427
+ GetFormsFormIdQuestionsResponse: {
2428
+ questions?: components["schemas"]["Question"][]
2429
+ hasResponses?: boolean
2430
+ }
2431
+ PatchFormsFormIdQuestionsQuestionIdRequest: {
2432
+ /** The new title for the question */
2433
+ title?: string
2434
+ }
2435
+ PatchFormsFormIdQuestionsQuestionIdResponse: components["schemas"]["Question"]
2436
+ GetFormsFormIdBlocksResponse: {
2437
+ id?: string
2438
+ name?: string
2439
+ blocks?: components["schemas"]["Block"][]
2440
+ }
2441
+ PatchFormsFormIdBlocksRequest: {
2442
+ blocks: components["schemas"]["Block"][]
2443
+ settings?: components["schemas"]["FormSettings"] | null
2444
+ }
2445
+ PatchFormsFormIdBlocksResponse: components["schemas"]["Form"]
2446
+ GetFormsFormIdSubmissionsResponse: {
2447
+ /** Current page number */
2448
+ page?: number
2449
+ /** Number of submissions per page */
2450
+ limit?: number
2451
+ /** Whether there are more pages available */
2452
+ hasMore?: boolean
2453
+ totalNumberOfSubmissionsPerFilter?: {
2454
+ /** Total number of all submissions */
2455
+ all?: number
2456
+ /** Total number of completed submissions */
2457
+ completed?: number
2458
+ /** Total number of partial submissions */
2459
+ partial?: number
2460
+ }
2461
+ /** List of form questions */
2462
+ questions?: components["schemas"]["Question"][]
2463
+ /** List of form submissions */
2464
+ submissions?: {
2465
+ /** Submission ID */
2466
+ id?: string
2467
+ /** Form ID */
2468
+ formId?: string
2469
+ /** Whether the submission is completed */
2470
+ isCompleted?: boolean
2471
+ /**
2472
+ * Format: date-time
2473
+ *
2474
+ * When the submission was submitted
2475
+ */
2476
+ submittedAt?: string
2477
+ /**
2478
+ * Format: uri
2479
+ *
2480
+ * Signed URL to view the submission in a browser. Includes an access
2481
+ * token, no expiry.
2482
+ */
2483
+ previewUrl?: string
2484
+ /**
2485
+ * Format: uri
2486
+ *
2487
+ * Signed URL to download the submission as a PDF. Includes an access
2488
+ * token, no expiry.
2489
+ */
2490
+ pdfUrl?: string
2491
+ /**
2492
+ * List of responses to form questions. Note: Only questions that have
2493
+ * been answered will appear in this array.
2494
+ */
2495
+ responses?: {
2496
+ /** Response ID */
2497
+ id: string
2498
+ /** Form ID */
2499
+ formId: string
2500
+ /** Question ID */
2501
+ questionId: string
2502
+ /** Respondent ID */
2503
+ respondentId: string
2504
+ /** Submission ID */
2505
+ submissionId?: string | null
2506
+ /**
2507
+ * Format: uuid
2508
+ *
2509
+ * Session UUID
2510
+ */
2511
+ sessionUuid: string
2512
+ /**
2513
+ * The answer value for this question. Type varies based on question
2514
+ * type.
2515
+ */
2516
+ answer:
2517
+ | (string | number | boolean | unknown[] | Record<string, never>)
2518
+ | null
2519
+ /** Formatted answer (e.g., for number inputs with custom formatting) */
2520
+ formattedAnswer?: string
2521
+ /**
2522
+ * Format: date-time
2523
+ *
2524
+ * When the response was created
2525
+ */
2526
+ createdAt: string
2527
+ /**
2528
+ * Format: date-time
2529
+ *
2530
+ * When the response was last updated
2531
+ */
2532
+ updatedAt: string
2533
+ }[]
2534
+ }[]
2535
+ }
2536
+ GetFormsFormIdSubmissionsSubmissionIdResponse: {
2537
+ /** List of form questions with their fields */
2538
+ questions?: components["schemas"]["Question"][]
2539
+ /** The form submission with responses */
2540
+ submission?: {
2541
+ /** Submission ID */
2542
+ id?: string
2543
+ /** Form ID */
2544
+ formId?: string
2545
+ /** Whether the submission is completed */
2546
+ isCompleted?: boolean
2547
+ /**
2548
+ * Format: date-time
2549
+ *
2550
+ * When the submission was submitted
2551
+ */
2552
+ submittedAt?: string
2553
+ /**
2554
+ * Format: date-time
2555
+ *
2556
+ * When the submission was created
2557
+ */
2558
+ createdAt?: string
2559
+ /**
2560
+ * Format: date-time
2561
+ *
2562
+ * When the submission was last updated
2563
+ */
2564
+ updatedAt?: string
2565
+ /**
2566
+ * Format: uri
2567
+ *
2568
+ * Signed URL to view the submission in a browser. Includes an access
2569
+ * token, no expiry.
2570
+ */
2571
+ previewUrl?: string
2572
+ /**
2573
+ * Format: uri
2574
+ *
2575
+ * Signed URL to download the submission as a PDF. Includes an access
2576
+ * token, no expiry.
2577
+ */
2578
+ pdfUrl?: string
2579
+ /**
2580
+ * List of responses to form questions. Note: Only questions that have
2581
+ * been answered will appear in this array.
2582
+ */
2583
+ responses?: {
2584
+ /** Response ID */
2585
+ id: string
2586
+ /** Form ID */
2587
+ formId: string
2588
+ /** Question ID */
2589
+ questionId: string
2590
+ /** Respondent ID */
2591
+ respondentId: string
2592
+ /** Submission ID */
2593
+ submissionId?: string | null
2594
+ /**
2595
+ * Format: uuid
2596
+ *
2597
+ * Session UUID
2598
+ */
2599
+ sessionUuid: string
2600
+ /**
2601
+ * The answer value for this question. Type varies based on question
2602
+ * type.
2603
+ */
2604
+ answer:
2605
+ | (string | number | boolean | unknown[] | Record<string, never>)
2606
+ | null
2607
+ /** Formatted answer (e.g., for number inputs with custom formatting) */
2608
+ formattedAnswer?: string
2609
+ /**
2610
+ * Format: date-time
2611
+ *
2612
+ * When the response was created
2613
+ */
2614
+ createdAt: string
2615
+ /**
2616
+ * Format: date-time
2617
+ *
2618
+ * When the response was last updated
2619
+ */
2620
+ updatedAt: string
2621
+ }[]
2622
+ }
2623
+ }
2624
+ GetFormsFormIdAnalyticsMetricsResponse: {
2625
+ visits?: number
2626
+ visitDuration?: number
2627
+ submissions?: number
2628
+ uniqueRespondents?: number
2629
+ totalViews?: number
2630
+ starts?: number
2631
+ completions?: number
2632
+ completionDuration?: number
2633
+ completionRate?: number
2634
+ }
2635
+ GetFormsFormIdAnalyticsVisitsResponse: {
2636
+ data?: {
2637
+ [key: string]: {
2638
+ totalVisits?: number
2639
+ }
2640
+ }
2641
+ interval?: number
2642
+ }
2643
+ GetFormsFormIdAnalyticsSubmissionsResponse: {
2644
+ data?: {
2645
+ [key: string]: {
2646
+ completed?: number
2647
+ partial?: number
2648
+ }
2649
+ }
2650
+ interval?: number
2651
+ }
2652
+ GetFormsFormIdAnalyticsDimensionsResponse: {
2653
+ source?: {
2654
+ [key: string]: number
2655
+ }
2656
+ browser?: {
2657
+ [key: string]: number
2658
+ }
2659
+ os?: {
2660
+ [key: string]: number
2661
+ }
2662
+ device?: {
2663
+ [key: string]: number
2664
+ }
2665
+ country?: {
2666
+ [key: string]: number
2667
+ }
2668
+ city?: {
2669
+ [key: string]: number
2670
+ }
2671
+ }
2672
+ GetFormsFormIdAnalyticsDropOffResponse: {
2673
+ stats?: {
2674
+ totalVisitors?: number
2675
+ formStarts?: number
2676
+ formCompletes?: number
2677
+ completionRate?: number
2678
+ completionTimeInSeconds?: number
2679
+ visitDurationInSeconds?: number
2680
+ }
2681
+ /** Format: date-time */
2682
+ dataAvailableSince?: string
2683
+ shouldShowDataCutoffNotice?: boolean
2684
+ data?: {
2685
+ blockGroupUuid?: string
2686
+ views?: number
2687
+ startedViews?: number
2688
+ answers?: number
2689
+ drops?: number
2690
+ title?: string
2691
+ type?: string
2692
+ answerRate?: number
2693
+ dropRate?: number
2694
+ isRequired?: boolean
2695
+ }[]
2696
+ hasConditionalLogic?: boolean
2697
+ } | null
2698
+ GetWebhooksResponse: {
2699
+ /** List of webhooks */
2700
+ webhooks?: {
2701
+ /** Webhook ID */
2702
+ id?: string
2703
+ /** Form ID the webhook is attached to */
2704
+ formId?: string
2705
+ /** The webhook endpoint URL */
2706
+ url?: string
2707
+ /** Secret used to sign webhook payloads */
2708
+ signingSecret?: string | null
2709
+ /** Custom HTTP headers to include in webhook requests */
2710
+ httpHeaders?:
2711
+ | {
2712
+ /** Header name */
2713
+ name?: string
2714
+ /** Header value */
2715
+ value?: string
2716
+ }[]
2717
+ | null
2718
+ /** Types of events this webhook subscribes to */
2719
+ eventTypes?: components["schemas"]["EventType"][]
2720
+ /** External subscriber identifier */
2721
+ externalSubscriber?: string | null
2722
+ /** Whether the webhook is enabled */
2723
+ isEnabled?: boolean
2724
+ /**
2725
+ * Format: date-time
2726
+ *
2727
+ * When the webhook was last synced
2728
+ */
2729
+ lastSyncedAt?: string | null
2730
+ /**
2731
+ * Format: date-time
2732
+ *
2733
+ * When the webhook was created
2734
+ */
2735
+ createdAt?: string
2736
+ /**
2737
+ * Format: date-time
2738
+ *
2739
+ * When the webhook was last updated
2740
+ */
2741
+ updatedAt?: string
2742
+ }[]
2743
+ /** Current page number */
2744
+ page?: number
2745
+ /** Number of webhooks per page */
2746
+ limit?: number
2747
+ /** Whether there are more pages available */
2748
+ hasMore?: boolean
2749
+ /** Total number of webhooks */
2750
+ totalCount?: number
2751
+ }
2752
+ PostWebhooksRequest: {
2753
+ /** The ID of the form to create the webhook for */
2754
+ formId: string
2755
+ /** The URL to send webhook events to */
2756
+ url: string
2757
+ /** Optional secret used to sign webhook payloads */
2758
+ signingSecret?: string | null
2759
+ /** Optional custom HTTP headers to include in webhook requests */
2760
+ httpHeaders?:
2761
+ | {
2762
+ /** The header name */
2763
+ name: string
2764
+ /** The header value */
2765
+ value: string
2766
+ }[]
2767
+ | null
2768
+ /** Types of events to receive */
2769
+ eventTypes: components["schemas"]["EventType"][]
2770
+ /** Optional identifier for the external subscriber */
2771
+ externalSubscriber?: string
2772
+ }
2773
+ PostWebhooksResponse: {
2774
+ id?: string
2775
+ url?: string
2776
+ eventTypes?: components["schemas"]["EventType"][]
2777
+ isEnabled?: boolean
2778
+ /** Format: date-time */
2779
+ createdAt?: string
2780
+ }
2781
+ PatchWebhooksWebhookIdRequest: {
2782
+ /** The ID of the form the webhook is for */
2783
+ formId: string
2784
+ /** The URL to send webhook events to */
2785
+ url: string
2786
+ /** Optional secret used to sign webhook payloads */
2787
+ signingSecret?: string | null
2788
+ /** Optional custom HTTP headers to include in webhook requests */
2789
+ httpHeaders?:
2790
+ | {
2791
+ /** The header name */
2792
+ name: string
2793
+ /** The header value */
2794
+ value: string
2795
+ }[]
2796
+ | null
2797
+ /** Types of events to receive */
2798
+ eventTypes: components["schemas"]["EventType"][]
2799
+ /** Whether the webhook is enabled */
2800
+ isEnabled: boolean
2801
+ }
2802
+ GetWebhooksWebhookIdEventsResponse: {
2803
+ /** Current page number */
2804
+ page?: number
2805
+ /** Number of events per page (25) */
2806
+ limit?: number
2807
+ /** Whether there are more pages available */
2808
+ hasMore?: boolean
2809
+ /** Total number of webhook events */
2810
+ totalNumberOfEvents?: number
2811
+ /** List of webhook events */
2812
+ events?: {
2813
+ /** Event ID */
2814
+ id?: string
2815
+ /** Webhook ID */
2816
+ webhookId?: string
2817
+ /** The URL the webhook was sent to */
2818
+ webhookUrl?: string
2819
+ /**
2820
+ * Type of event
2821
+ *
2822
+ * @enum {string}
2823
+ */
2824
+ eventType?: "FORM_RESPONSE"
2825
+ /**
2826
+ * Delivery status of the webhook
2827
+ *
2828
+ * @enum {string}
2829
+ */
2830
+ deliveryStatus?: "QUEUED" | "SUCCEEDED" | "FAILED" | "DROPPED"
2831
+ /** HTTP status code returned by the webhook endpoint */
2832
+ statusCode?: number | null
2833
+ /** Response body from the webhook endpoint */
2834
+ response?: string | null
2835
+ /** Number of retry attempts */
2836
+ retry?: number
2837
+ /** The webhook payload that was sent */
2838
+ payload?: Record<string, never>
2839
+ /**
2840
+ * Format: date-time
2841
+ *
2842
+ * When the event was created
2843
+ */
2844
+ createdAt?: string
2845
+ /**
2846
+ * Format: date-time
2847
+ *
2848
+ * When the event was last updated
2849
+ */
2850
+ updatedAt?: string
2851
+ }[]
2852
+ }
2853
+ }
2854
+ responses: never
2855
+ parameters: never
2856
+ requestBodies: never
2857
+ headers: never
2858
+ pathItems: never
2859
+ }