diff --git a/airbyte-integrations/connectors/source-jotform/README.md b/airbyte-integrations/connectors/source-jotform/README.md
new file mode 100644
index 000000000000..7e7364ae85c2
--- /dev/null
+++ b/airbyte-integrations/connectors/source-jotform/README.md
@@ -0,0 +1,33 @@
+# Jotform
+This directory contains the manifest-only connector for `source-jotform`.
+
+Jotform is a powerful online form builder that makes it easy to create robust forms and collect important data.
+
+## Usage
+There are multiple ways to use this connector:
+- You can use this connector as any other connector in Airbyte Marketplace.
+- You can load this connector in `pyairbyte` using `get_source`!
+- You can open this connector in Connector Builder, edit it, and publish to your workspaces.
+
+Please refer to the manifest-only connector documentation for more details.
+
+## Local Development
+We recommend you use the Connector Builder to edit this connector.
+
+But, if you want to develop this connector locally, you can use the following steps.
+
+### Environment Setup
+You will need `airbyte-ci` installed. You can find the documentation [here](airbyte-ci).
+
+### Build
+This will create a dev image (`source-jotform:dev`) that you can use to test the connector locally.
+```bash
+airbyte-ci connectors --name=source-jotform build
+```
+
+### Test
+This will run the acceptance tests for the connector.
+```bash
+airbyte-ci connectors --name=source-jotform test
+```
+
diff --git a/airbyte-integrations/connectors/source-jotform/acceptance-test-config.yml b/airbyte-integrations/connectors/source-jotform/acceptance-test-config.yml
new file mode 100644
index 000000000000..db63813da6e4
--- /dev/null
+++ b/airbyte-integrations/connectors/source-jotform/acceptance-test-config.yml
@@ -0,0 +1,17 @@
+# See [Connector Acceptance Tests](https://docs.airbyte.com/connector-development/testing-connectors/connector-acceptance-tests-reference)
+# for more information about how to configure these tests
+connector_image: airbyte/source-jotform:dev
+acceptance_tests:
+ spec:
+ tests:
+ - spec_path: "manifest.yaml"
+ connection:
+ bypass_reason: "This is a builder contribution, and we do not have secrets at this time"
+ discovery:
+ bypass_reason: "This is a builder contribution, and we do not have secrets at this time"
+ basic_read:
+ bypass_reason: "This is a builder contribution, and we do not have secrets at this time"
+ incremental:
+ bypass_reason: "This is a builder contribution, and we do not have secrets at this time"
+ full_refresh:
+ bypass_reason: "This is a builder contribution, and we do not have secrets at this time"
diff --git a/airbyte-integrations/connectors/source-jotform/icon.svg b/airbyte-integrations/connectors/source-jotform/icon.svg
new file mode 100644
index 000000000000..243fae56a071
--- /dev/null
+++ b/airbyte-integrations/connectors/source-jotform/icon.svg
@@ -0,0 +1,6 @@
+
diff --git a/airbyte-integrations/connectors/source-jotform/manifest.yaml b/airbyte-integrations/connectors/source-jotform/manifest.yaml
new file mode 100644
index 000000000000..1891100f5383
--- /dev/null
+++ b/airbyte-integrations/connectors/source-jotform/manifest.yaml
@@ -0,0 +1,2847 @@
+version: 4.6.2
+
+type: DeclarativeSource
+
+description: >-
+ Jotform is a powerful online form builder that makes it easy to create robust
+ forms and collect important data.
+
+check:
+ type: CheckStream
+ stream_names:
+ - submissions
+
+definitions:
+ streams:
+ forms:
+ type: DeclarativeStream
+ name: forms
+ retriever:
+ type: SimpleRetriever
+ paginator:
+ type: DefaultPaginator
+ page_size_option:
+ type: RequestOption
+ field_name: limit
+ inject_into: request_parameter
+ page_token_option:
+ type: RequestOption
+ field_name: offset
+ inject_into: request_parameter
+ pagination_strategy:
+ type: OffsetIncrement
+ page_size: 20
+ requester:
+ $ref: "#/definitions/base_requester"
+ path: /user/forms
+ http_method: GET
+ record_selector:
+ type: RecordSelector
+ extractor:
+ type: DpathExtractor
+ field_path:
+ - content
+ primary_key:
+ - id
+ schema_loader:
+ type: InlineSchemaLoader
+ schema:
+ $ref: "#/schemas/forms"
+ incremental_sync:
+ type: DatetimeBasedCursor
+ cursor_field: updated_at
+ end_datetime:
+ type: MinMaxDatetime
+ datetime: '{{ config["end_date"] }}'
+ datetime_format: "%Y-%m-%dT%H:%M:%SZ"
+ start_datetime:
+ type: MinMaxDatetime
+ datetime: '{{ config["start_date"] }}'
+ datetime_format: "%Y-%m-%dT%H:%M:%SZ"
+ datetime_format: "%Y-%m-%d %H:%M:%S"
+ cursor_datetime_formats:
+ - "%Y-%m-%d %H:%M:%S"
+ reports:
+ type: DeclarativeStream
+ name: reports
+ retriever:
+ type: SimpleRetriever
+ requester:
+ $ref: "#/definitions/base_requester"
+ path: /user/reports
+ http_method: GET
+ record_selector:
+ type: RecordSelector
+ extractor:
+ type: DpathExtractor
+ field_path:
+ - content
+ primary_key:
+ - id
+ schema_loader:
+ type: InlineSchemaLoader
+ schema:
+ $ref: "#/schemas/reports"
+ incremental_sync:
+ type: DatetimeBasedCursor
+ cursor_field: updated_at
+ end_datetime:
+ type: MinMaxDatetime
+ datetime: '{{ config["end_date"] }}'
+ datetime_format: "%Y-%m-%dT%H:%M:%SZ"
+ start_datetime:
+ type: MinMaxDatetime
+ datetime: '{{ config["start_date"] }}'
+ datetime_format: "%Y-%m-%dT%H:%M:%SZ"
+ datetime_format: "%Y-%m-%d %H:%M:%S"
+ cursor_datetime_formats:
+ - "%Y-%m-%d %H:%M:%S"
+ questions:
+ type: DeclarativeStream
+ name: questions
+ retriever:
+ type: SimpleRetriever
+ requester:
+ $ref: "#/definitions/base_requester"
+ path: /form//{{ stream_partition['form_id'] }}/questions
+ http_method: GET
+ record_selector:
+ type: RecordSelector
+ extractor:
+ type: DpathExtractor
+ field_path:
+ - content
+ - "*"
+ partition_router:
+ type: SubstreamPartitionRouter
+ parent_stream_configs:
+ - type: ParentStreamConfig
+ stream:
+ $ref: "#/definitions/streams/forms"
+ parent_key: id
+ partition_field: form_id
+ primary_key:
+ - form_id
+ - qid
+ schema_loader:
+ type: InlineSchemaLoader
+ schema:
+ $ref: "#/schemas/questions"
+ transformations:
+ - type: AddFields
+ fields:
+ - path:
+ - form_id
+ value: "{{ stream_partition['form_id'] }}"
+ form_files:
+ type: DeclarativeStream
+ name: form_files
+ retriever:
+ type: SimpleRetriever
+ requester:
+ $ref: "#/definitions/base_requester"
+ path: form/{{ stream_partition['form_id'] }}/files
+ http_method: GET
+ record_selector:
+ type: RecordSelector
+ extractor:
+ type: DpathExtractor
+ field_path:
+ - content
+ partition_router:
+ type: SubstreamPartitionRouter
+ parent_stream_configs:
+ - type: ParentStreamConfig
+ stream:
+ $ref: "#/definitions/streams/forms"
+ parent_key: id
+ partition_field: form_id
+ primary_key:
+ - url
+ schema_loader:
+ type: InlineSchemaLoader
+ schema:
+ $ref: "#/schemas/form_files"
+ incremental_sync:
+ type: DatetimeBasedCursor
+ cursor_field: date
+ end_datetime:
+ type: MinMaxDatetime
+ datetime: '{{ config["end_date"] }}'
+ datetime_format: "%Y-%m-%dT%H:%M:%SZ"
+ start_datetime:
+ type: MinMaxDatetime
+ datetime: '{{ config["start_date"] }}'
+ datetime_format: "%Y-%m-%dT%H:%M:%SZ"
+ datetime_format: "%Y-%m-%d %H:%M:%S"
+ cursor_datetime_formats:
+ - "%Y-%m-%d %H:%M:%S"
+ submissions:
+ type: DeclarativeStream
+ name: submissions
+ retriever:
+ type: SimpleRetriever
+ paginator:
+ type: DefaultPaginator
+ page_size_option:
+ type: RequestOption
+ field_name: limit
+ inject_into: request_parameter
+ page_token_option:
+ type: RequestOption
+ field_name: offset
+ inject_into: request_parameter
+ pagination_strategy:
+ type: OffsetIncrement
+ page_size: 20
+ requester:
+ $ref: "#/definitions/base_requester"
+ path: /user/submissions
+ http_method: GET
+ record_selector:
+ type: RecordSelector
+ extractor:
+ type: DpathExtractor
+ field_path:
+ - content
+ primary_key:
+ - id
+ schema_loader:
+ type: InlineSchemaLoader
+ schema:
+ $ref: "#/schemas/submissions"
+ incremental_sync:
+ type: DatetimeBasedCursor
+ cursor_field: created_at
+ end_datetime:
+ type: MinMaxDatetime
+ datetime: '{{ config["end_date"] }}'
+ datetime_format: "%Y-%m-%dT%H:%M:%SZ"
+ start_datetime:
+ type: MinMaxDatetime
+ datetime: '{{ config["start_date"] }}'
+ datetime_format: "%Y-%m-%dT%H:%M:%SZ"
+ datetime_format: "%Y-%m-%d %H:%M:%S"
+ cursor_datetime_formats:
+ - "%Y-%m-%d %H:%M:%S"
+ form_properties:
+ type: DeclarativeStream
+ name: form_properties
+ retriever:
+ type: SimpleRetriever
+ requester:
+ $ref: "#/definitions/base_requester"
+ path: form/{{ stream_partition['form_id'] }}/properties
+ http_method: GET
+ record_selector:
+ type: RecordSelector
+ extractor:
+ type: DpathExtractor
+ field_path:
+ - content
+ partition_router:
+ type: SubstreamPartitionRouter
+ parent_stream_configs:
+ - type: ParentStreamConfig
+ stream:
+ $ref: "#/definitions/streams/forms"
+ parent_key: id
+ partition_field: form_id
+ primary_key:
+ - id
+ schema_loader:
+ type: InlineSchemaLoader
+ schema:
+ $ref: "#/schemas/form_properties"
+ base_requester:
+ type: HttpRequester
+ url_base: >-
+ {{ config['api_endpoint']['enterprise_url'] if
+ config['api_endpoint']['enterprise_url'] else 'https://' ~ ('eu-' if
+ config['api_endpoint']['url_prefix'] == 'EU' else 'hipaa-' if
+ config['api_endpoint']['url_prefix'] == 'HIPAA' else '') ~
+ 'api.jotform.com' }}
+ authenticator:
+ type: ApiKeyAuthenticator
+ api_token: '{{ config["api_key"] }}'
+ inject_into:
+ type: RequestOption
+ field_name: apiKey
+ inject_into: request_parameter
+
+streams:
+ - $ref: "#/definitions/streams/submissions"
+ - $ref: "#/definitions/streams/reports"
+ - $ref: "#/definitions/streams/forms"
+ - $ref: "#/definitions/streams/questions"
+ - $ref: "#/definitions/streams/form_properties"
+ - $ref: "#/definitions/streams/form_files"
+
+spec:
+ type: Spec
+ connection_specification:
+ type: object
+ $schema: http://json-schema.org/draft-07/schema#
+ required:
+ - api_key
+ - api_endpoint
+ - start_date
+ - end_date
+ properties:
+ api_key:
+ type: string
+ order: 0
+ title: API Key
+ airbyte_secret: true
+ end_date:
+ type: string
+ order: 3
+ title: End date
+ format: date-time
+ pattern: ^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$
+ start_date:
+ type: string
+ order: 2
+ title: Start date
+ format: date-time
+ pattern: ^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$
+ api_endpoint:
+ type: object
+ oneOf:
+ - type: object
+ title: Basic
+ required:
+ - url_prefix
+ properties:
+ url_prefix:
+ type: string
+ description: >-
+ You can access our API through the following URLs - Standard
+ API Usage (Use the default API URL - https://api.jotform.com),
+ For EU (Use the EU API URL - https://eu-api.jotform.com), For
+ HIPAA (Use the HIPAA API URL - https://hipaa-api.jotform.com)
+ enum:
+ - Standard
+ - EU
+ - HIPAA
+ title: Base URL Prefix
+ default: Standard
+ api_endpoint:
+ type: string
+ const: basic
+ order: 0
+ - type: object
+ title: Enterprise
+ required:
+ - enterprise_url
+ properties:
+ api_endpoint:
+ type: string
+ const: enterprise
+ order: 0
+ enterprise_url:
+ type: string
+ description: >-
+ Upgrade to Enterprise to make your API url your-domain.com/API
+ or subdomain.jotform.com/API instead of api.jotform.com
+ title: Enterprise URL
+ order: 1
+ title: API Endpoint
+ additionalProperties: true
+
+metadata:
+ assist:
+ docsUrl: https://api.jotform.com/docs
+ testedStreams:
+ forms:
+ hasRecords: true
+ streamHash: 6bdcd7faad18f50e0b088ab2a0e943700537dec9
+ hasResponse: true
+ primaryKeysAreUnique: true
+ primaryKeysArePresent: true
+ responsesAreSuccessful: true
+ reports:
+ hasRecords: true
+ streamHash: 95e991d54dcc280a4d0893057b7c103a55695789
+ hasResponse: true
+ primaryKeysAreUnique: true
+ primaryKeysArePresent: true
+ responsesAreSuccessful: true
+ questions:
+ hasRecords: true
+ streamHash: fb275409b9ef317b3bcd02f660bb8882fc24e895
+ hasResponse: true
+ primaryKeysAreUnique: true
+ primaryKeysArePresent: true
+ responsesAreSuccessful: true
+ form_files:
+ hasRecords: true
+ streamHash: 07fad443eac64b92b04a9320bbabe44574e237dc
+ hasResponse: true
+ primaryKeysAreUnique: true
+ primaryKeysArePresent: true
+ responsesAreSuccessful: true
+ submissions:
+ hasRecords: true
+ streamHash: a633a65c8316b148a186f5dbf321007b2ce2969e
+ hasResponse: true
+ primaryKeysAreUnique: true
+ primaryKeysArePresent: true
+ responsesAreSuccessful: true
+ form_properties:
+ hasRecords: true
+ streamHash: eb840db392bc3a86b70bee41638aa469298cd000
+ hasResponse: true
+ primaryKeysAreUnique: true
+ primaryKeysArePresent: true
+ responsesAreSuccessful: true
+ autoImportSchema:
+ forms: true
+ reports: true
+ questions: true
+ form_files: true
+ submissions: true
+ form_properties: true
+
+schemas:
+ forms:
+ type: object
+ $schema: http://json-schema.org/schema#
+ required:
+ - id
+ - updated_at
+ properties:
+ type:
+ type:
+ - string
+ - "null"
+ id:
+ type: string
+ new:
+ type:
+ - string
+ - "null"
+ url:
+ type:
+ - string
+ - "null"
+ count:
+ type:
+ - string
+ - "null"
+ title:
+ type:
+ - string
+ - "null"
+ height:
+ type:
+ - string
+ - "null"
+ status:
+ type:
+ - string
+ - "null"
+ archived:
+ type:
+ - string
+ - "null"
+ favorite:
+ type:
+ - string
+ - "null"
+ username:
+ type:
+ - string
+ - "null"
+ created_at:
+ type:
+ - string
+ - "null"
+ hasPayment:
+ type:
+ - boolean
+ - "null"
+ updated_at:
+ type: string
+ paymentProps:
+ type:
+ - object
+ - "null"
+ properties:
+ type:
+ type:
+ - string
+ - "null"
+ gateway:
+ type:
+ - string
+ - "null"
+ question_id:
+ type:
+ - number
+ - "null"
+ last_submission:
+ type:
+ - string
+ - "null"
+ additionalProperties: true
+ reports:
+ type: object
+ $schema: http://json-schema.org/schema#
+ required:
+ - id
+ - updated_at
+ properties:
+ type:
+ type:
+ - string
+ - "null"
+ id:
+ type: string
+ url:
+ type:
+ - string
+ - "null"
+ share:
+ type:
+ - object
+ - "null"
+ properties:
+ shareLink:
+ type:
+ - string
+ - "null"
+ sharedWith:
+ type:
+ - array
+ - "null"
+ permissions:
+ type:
+ - array
+ - "null"
+ title:
+ type:
+ - string
+ - "null"
+ fields:
+ type:
+ - string
+ - "null"
+ status:
+ type:
+ - string
+ - "null"
+ form_id:
+ type:
+ - string
+ - "null"
+ form_url:
+ type:
+ - string
+ - "null"
+ settings:
+ type:
+ - string
+ - "null"
+ list_type:
+ type:
+ - string
+ - "null"
+ created_at:
+ type:
+ - string
+ - "null"
+ form_count:
+ type:
+ - number
+ - "null"
+ form_title:
+ type:
+ - string
+ - "null"
+ properties:
+ type:
+ - array
+ - "null"
+ updated_at:
+ type: string
+ isProtected:
+ type:
+ - boolean
+ - "null"
+ last_submission:
+ type:
+ - string
+ - "null"
+ additionalProperties: true
+ questions:
+ type: object
+ $schema: http://json-schema.org/schema#
+ required:
+ - form_id
+ - qid
+ properties:
+ type:
+ type:
+ - string
+ - "null"
+ description:
+ type:
+ - string
+ - "null"
+ alt:
+ type:
+ - string
+ - "null"
+ mde:
+ type:
+ - string
+ - "null"
+ qid:
+ type: string
+ cols:
+ type:
+ - string
+ - "null"
+ days:
+ type:
+ - string
+ - "null"
+ hint:
+ type:
+ - string
+ - "null"
+ name:
+ type:
+ - string
+ - "null"
+ rows:
+ type:
+ - string
+ - "null"
+ size:
+ type:
+ - string
+ - "null"
+ step:
+ type:
+ - string
+ - "null"
+ text:
+ type:
+ - string
+ - "null"
+ clear:
+ type:
+ - string
+ - "null"
+ order:
+ type:
+ - string
+ - "null"
+ print:
+ type:
+ - string
+ - "null"
+ today:
+ type:
+ - string
+ - "null"
+ width:
+ type:
+ - string
+ - "null"
+ format:
+ type:
+ - string
+ - "null"
+ middle:
+ type:
+ - string
+ - "null"
+ minAge:
+ type:
+ - string
+ - "null"
+ months:
+ type:
+ - string
+ - "null"
+ prefix:
+ type:
+ - string
+ - "null"
+ states:
+ type:
+ - string
+ - "null"
+ suffix:
+ type:
+ - string
+ - "null"
+ ccTitle:
+ type:
+ - string
+ - "null"
+ form_id:
+ type: number
+ maxsize:
+ type:
+ - string
+ - "null"
+ options:
+ type:
+ - string
+ - "null"
+ sandbox:
+ type:
+ - string
+ - "null"
+ showSPB:
+ type:
+ - string
+ - "null"
+ shuffle:
+ type:
+ - string
+ - "null"
+ special:
+ type:
+ - string
+ - "null"
+ wysiwyg:
+ type:
+ - string
+ - "null"
+ authOnly:
+ type:
+ - string
+ - "null"
+ currency:
+ type:
+ - string
+ - "null"
+ liteMode:
+ type:
+ - string
+ - "null"
+ multiple:
+ type:
+ - string
+ - "null"
+ paypalBt:
+ type:
+ - string
+ - "null"
+ readonly:
+ type:
+ - string
+ - "null"
+ required:
+ type:
+ - string
+ - "null"
+ subLabel:
+ type:
+ - string
+ - "null"
+ useImage:
+ type:
+ - string
+ - "null"
+ allowTime:
+ type:
+ - string
+ - "null"
+ autoFixed:
+ type:
+ - string
+ - "null"
+ clearText:
+ type:
+ - string
+ - "null"
+ inputMask:
+ type:
+ - string
+ - "null"
+ limitDate:
+ type:
+ - string
+ - "null"
+ nonprofit:
+ type:
+ - string
+ - "null"
+ otherText:
+ type:
+ - string
+ - "null"
+ printText:
+ type:
+ - string
+ - "null"
+ showTotal:
+ type:
+ - string
+ - "null"
+ styleSize:
+ type:
+ - string
+ - "null"
+ subHeader:
+ type:
+ - string
+ - "null"
+ subfields:
+ type:
+ - string
+ - "null"
+ sublabels:
+ type:
+ - object
+ - "null"
+ properties:
+ day:
+ type:
+ - string
+ - "null"
+ area:
+ type:
+ - string
+ - "null"
+ city:
+ type:
+ - string
+ - "null"
+ full:
+ type:
+ - string
+ - "null"
+ hour:
+ type:
+ - string
+ - "null"
+ last:
+ type:
+ - string
+ - "null"
+ year:
+ type:
+ - string
+ - "null"
+ first:
+ type:
+ - string
+ - "null"
+ month:
+ type:
+ - string
+ - "null"
+ phone:
+ type:
+ - string
+ - "null"
+ price:
+ type:
+ - string
+ - "null"
+ state:
+ type:
+ - string
+ - "null"
+ cc_ccv:
+ type:
+ - string
+ - "null"
+ masked:
+ type:
+ - string
+ - "null"
+ middle:
+ type:
+ - string
+ - "null"
+ postal:
+ type:
+ - string
+ - "null"
+ prefix:
+ type:
+ - string
+ - "null"
+ suffix:
+ type:
+ - string
+ - "null"
+ country:
+ type:
+ - string
+ - "null"
+ minutes:
+ type:
+ - string
+ - "null"
+ litemode:
+ type:
+ - string
+ - "null"
+ cc_number:
+ type:
+ - string
+ - "null"
+ addr_line1:
+ type:
+ - string
+ - "null"
+ addr_line2:
+ type:
+ - string
+ - "null"
+ debit_card:
+ type:
+ - string
+ - "null"
+ cc_exp_year:
+ type:
+ - string
+ - "null"
+ cc_lastName:
+ type:
+ - string
+ - "null"
+ cc_exp_month:
+ type:
+ - string
+ - "null"
+ cc_firstName:
+ type:
+ - string
+ - "null"
+ item_subtotal:
+ type:
+ - string
+ - "null"
+ cc_card_expiry:
+ type:
+ - string
+ - "null"
+ pay_with_paypal:
+ type:
+ - string
+ - "null"
+ pay_with_credit_card:
+ type:
+ - string
+ - "null"
+ textAlign:
+ type:
+ - string
+ - "null"
+ totalCost:
+ type:
+ - string
+ - "null"
+ allowOther:
+ type:
+ - string
+ - "null"
+ entryLimit:
+ type:
+ - string
+ - "null"
+ headerType:
+ type:
+ - string
+ - "null"
+ imageAlign:
+ type:
+ - string
+ - "null"
+ labelAlign:
+ type:
+ - string
+ - "null"
+ merchantId:
+ type:
+ - string
+ - "null"
+ onlyFuture:
+ type:
+ - string
+ - "null"
+ paymentCid:
+ type:
+ - string
+ - "null"
+ spreadCols:
+ type:
+ - string
+ - "null"
+ styleColor:
+ type:
+ - string
+ - "null"
+ styleLabel:
+ type:
+ - string
+ - "null"
+ styleShape:
+ type:
+ - string
+ - "null"
+ timeFormat:
+ type:
+ - string
+ - "null"
+ useDecimal:
+ type:
+ - string
+ - "null"
+ validation:
+ type:
+ - string
+ - "null"
+ buttonAlign:
+ type:
+ - string
+ - "null"
+ buttonStyle:
+ type:
+ - string
+ - "null"
+ countryCode:
+ type:
+ - string
+ - "null"
+ decimalMark:
+ type:
+ - string
+ - "null"
+ defaultDate:
+ type:
+ - string
+ - "null"
+ defaultTime:
+ type:
+ - string
+ - "null"
+ domainCheck:
+ type:
+ - string
+ - "null"
+ encryptIcon:
+ type:
+ - string
+ - "null"
+ headerImage:
+ type:
+ - string
+ - "null"
+ isValidated:
+ type:
+ - string
+ - "null"
+ paymentType:
+ type:
+ - string
+ - "null"
+ startWeekOn:
+ type:
+ - string
+ - "null"
+ styleLayout:
+ type:
+ - string
+ - "null"
+ autoCalendar:
+ type:
+ - string
+ - "null"
+ builderLabel:
+ type:
+ - string
+ - "null"
+ compoundHint:
+ type:
+ - string
+ - "null"
+ confirmation:
+ type:
+ - string
+ - "null"
+ defaultValue:
+ type:
+ - string
+ - "null"
+ disallowFree:
+ type:
+ - string
+ - "null"
+ donationText:
+ type:
+ - string
+ - "null"
+ orderSummary:
+ type:
+ - string
+ - "null"
+ billToAddress:
+ type:
+ - string
+ - "null"
+ dateSeparator:
+ type:
+ - string
+ - "null"
+ entryLimitMin:
+ type:
+ - string
+ - "null"
+ payLaterRatio:
+ type:
+ - string
+ - "null"
+ prefixChoices:
+ type:
+ - string
+ - "null"
+ allowedDomains:
+ type:
+ - string
+ - "null"
+ editButtonText:
+ type:
+ - string
+ - "null"
+ enableLightBox:
+ type:
+ - string
+ - "null"
+ hasGeolocation:
+ type:
+ - string
+ - "null"
+ inputMaskValue:
+ type:
+ - string
+ - "null"
+ nextButtonText:
+ type:
+ - string
+ - "null"
+ payLaterLayout:
+ type:
+ - string
+ - "null"
+ requiredInputs:
+ type:
+ - string
+ - "null"
+ showCardFields:
+ type:
+ - string
+ - "null"
+ ageVerification:
+ type:
+ - string
+ - "null"
+ donationOptions:
+ type:
+ - string
+ - "null"
+ hasAutocomplete:
+ type:
+ - string
+ - "null"
+ myBagButtonText:
+ type:
+ - string
+ - "null"
+ payLaterEnabled:
+ type:
+ - string
+ - "null"
+ confirmationHint:
+ type:
+ - string
+ - "null"
+ payLaterLogoType:
+ type:
+ - string
+ - "null"
+ payLaterTextSize:
+ type:
+ - string
+ - "null"
+ paymentFieldType:
+ type:
+ - string
+ - "null"
+ removeButtonText:
+ type:
+ - string
+ - "null"
+ updateButtonText:
+ type:
+ - string
+ - "null"
+ validateLiteDate:
+ type:
+ - string
+ - "null"
+ verificationCode:
+ type:
+ - string
+ - "null"
+ allowCustomAmount:
+ type:
+ - string
+ - "null"
+ payLaterTextColor:
+ type:
+ - string
+ - "null"
+ showQuestionCount:
+ type:
+ - string
+ - "null"
+ verticalTextAlign:
+ type:
+ - string
+ - "null"
+ allowCustomDomains:
+ type:
+ - string
+ - "null"
+ previousButtonText:
+ type:
+ - string
+ - "null"
+ donationAmountField:
+ type:
+ - string
+ - "null"
+ subscribeButtonText:
+ type:
+ - string
+ - "null"
+ backToListButtonText:
+ type:
+ - string
+ - "null"
+ confirmationSublabel:
+ type:
+ - string
+ - "null"
+ isOnlyConnectedToSPB:
+ type:
+ - string
+ - "null"
+ payLaterLogoPosition:
+ type:
+ - string
+ - "null"
+ customCountryDropdown:
+ type:
+ - string
+ - "null"
+ customValueDonationText:
+ type:
+ - string
+ - "null"
+ payLaterBackgroundColor:
+ type:
+ - string
+ - "null"
+ countryDropdownDefaultText:
+ type:
+ - string
+ - "null"
+ isPaymentStoreInBasicFields:
+ type:
+ - boolean
+ - "null"
+ showPredefinedDonationValues:
+ type:
+ - string
+ - "null"
+ additionalProperties: true
+ form_files:
+ type: object
+ $schema: http://json-schema.org/schema#
+ required:
+ - url
+ - date
+ properties:
+ type:
+ type:
+ - string
+ - "null"
+ id:
+ type:
+ - string
+ - "null"
+ url:
+ type: string
+ date:
+ type: string
+ name:
+ type:
+ - string
+ - "null"
+ size:
+ type:
+ - string
+ - "null"
+ form_id:
+ type:
+ - string
+ - "null"
+ uploaded:
+ type:
+ - string
+ - "null"
+ username:
+ type:
+ - string
+ - "null"
+ submission_id:
+ type:
+ - string
+ - "null"
+ additionalProperties: true
+ submissions:
+ type: object
+ $schema: http://json-schema.org/schema#
+ required:
+ - id
+ - created_at
+ properties:
+ id:
+ type: string
+ ip:
+ type:
+ - string
+ - "null"
+ new:
+ type:
+ - string
+ - "null"
+ flag:
+ type:
+ - string
+ - "null"
+ notes:
+ type:
+ - string
+ - "null"
+ status:
+ type:
+ - string
+ - "null"
+ answers:
+ type:
+ - object
+ - "null"
+ properties:
+ "1":
+ type:
+ - object
+ - "null"
+ properties:
+ type:
+ type:
+ - string
+ - "null"
+ name:
+ type:
+ - string
+ - "null"
+ text:
+ type:
+ - string
+ - "null"
+ order:
+ type:
+ - string
+ - "null"
+ "2":
+ type:
+ - object
+ - "null"
+ properties:
+ type:
+ type:
+ - string
+ - "null"
+ name:
+ type:
+ - string
+ - "null"
+ text:
+ type:
+ - string
+ - "null"
+ order:
+ type:
+ - string
+ - "null"
+ "3":
+ type:
+ - object
+ - "null"
+ properties:
+ type:
+ type:
+ - string
+ - "null"
+ name:
+ type:
+ - string
+ - "null"
+ text:
+ type:
+ - string
+ - "null"
+ order:
+ type:
+ - string
+ - "null"
+ "4":
+ type:
+ - object
+ - "null"
+ properties:
+ type:
+ type:
+ - string
+ - "null"
+ name:
+ type:
+ - string
+ - "null"
+ text:
+ type:
+ - string
+ - "null"
+ order:
+ type:
+ - string
+ - "null"
+ answer:
+ type:
+ - object
+ - "null"
+ properties:
+ last:
+ type:
+ - string
+ - "null"
+ first:
+ type:
+ - string
+ - "null"
+ sublabels:
+ type:
+ - string
+ - "null"
+ prettyFormat:
+ type:
+ - string
+ - "null"
+ "5":
+ type:
+ - object
+ - "null"
+ properties:
+ type:
+ type:
+ - string
+ - "null"
+ name:
+ type:
+ - string
+ - "null"
+ text:
+ type:
+ - string
+ - "null"
+ order:
+ type:
+ - string
+ - "null"
+ answer:
+ type:
+ - string
+ - "null"
+ "6":
+ type:
+ - object
+ - "null"
+ properties:
+ type:
+ type:
+ - string
+ - "null"
+ name:
+ type:
+ - string
+ - "null"
+ text:
+ type:
+ - string
+ - "null"
+ order:
+ type:
+ - string
+ - "null"
+ answer:
+ type:
+ - object
+ - "null"
+ properties:
+ full:
+ type:
+ - string
+ - "null"
+ inputMask:
+ type:
+ - string
+ - "null"
+ sublabels:
+ type:
+ - string
+ - "null"
+ countryCode:
+ type:
+ - string
+ - "null"
+ prettyFormat:
+ type:
+ - string
+ - "null"
+ inputMaskValue:
+ type:
+ - string
+ - "null"
+ "7":
+ type:
+ - object
+ - "null"
+ properties:
+ type:
+ type:
+ - string
+ - "null"
+ name:
+ type:
+ - string
+ - "null"
+ text:
+ type:
+ - string
+ - "null"
+ order:
+ type:
+ - string
+ - "null"
+ answer:
+ type:
+ - object
+ - "null"
+ properties:
+ day:
+ type:
+ - string
+ - "null"
+ year:
+ type:
+ - string
+ - "null"
+ month:
+ type:
+ - string
+ - "null"
+ datetime:
+ type:
+ - string
+ - "null"
+ sublabels:
+ type:
+ - string
+ - "null"
+ timeFormat:
+ type:
+ - string
+ - "null"
+ prettyFormat:
+ type:
+ - string
+ - "null"
+ form_id:
+ type:
+ - string
+ - "null"
+ created_at:
+ type: string
+ additionalProperties: true
+ form_properties:
+ type: object
+ $schema: http://json-schema.org/schema#
+ required:
+ - id
+ properties:
+ type:
+ type:
+ - string
+ - "null"
+ id:
+ type: string
+ v4:
+ type:
+ - string
+ - "null"
+ font:
+ type:
+ - string
+ - "null"
+ hash:
+ type:
+ - string
+ - "null"
+ slug:
+ type:
+ - string
+ - "null"
+ count:
+ type:
+ - string
+ - "null"
+ owner:
+ type:
+ - string
+ - "null"
+ title:
+ type:
+ - string
+ - "null"
+ emails:
+ type:
+ - array
+ - "null"
+ items:
+ type:
+ - object
+ - "null"
+ properties:
+ type:
+ type:
+ - string
+ - "null"
+ to:
+ type:
+ - string
+ - "null"
+ body:
+ type:
+ - string
+ - "null"
+ from:
+ type:
+ - string
+ - "null"
+ html:
+ type:
+ - string
+ - "null"
+ name:
+ type:
+ - string
+ - "null"
+ dirty:
+ type:
+ - string
+ - "null"
+ replyTo:
+ type:
+ - string
+ - "null"
+ subject:
+ type:
+ - string
+ - "null"
+ sendDate:
+ type:
+ - string
+ - "null"
+ uniqueID:
+ type:
+ - string
+ - "null"
+ attachment:
+ type:
+ - string
+ - "null"
+ sendOnEdit:
+ type:
+ - string
+ - "null"
+ sendOnSubmit:
+ type:
+ - string
+ - "null"
+ pdfattachment:
+ type:
+ - string
+ - "null"
+ lastQuestionID:
+ type:
+ - string
+ - "null"
+ branding21Email:
+ type:
+ - string
+ - "null"
+ hideEmptyFields:
+ type:
+ - string
+ - "null"
+ uploadAttachment:
+ type:
+ - string
+ - "null"
+ height:
+ type:
+ - string
+ - "null"
+ status:
+ type:
+ - string
+ - "null"
+ styles:
+ type:
+ - string
+ - "null"
+ unique:
+ type:
+ - string
+ - "null"
+ isHIPAA:
+ type:
+ - string
+ - "null"
+ themeID:
+ type:
+ - string
+ - "null"
+ fontsize:
+ type:
+ - string
+ - "null"
+ formType:
+ type:
+ - string
+ - "null"
+ isEUForm:
+ type:
+ - string
+ - "null"
+ language:
+ type:
+ - array
+ - "null"
+ items:
+ type:
+ - object
+ - "null"
+ properties:
+ version:
+ type:
+ - string
+ - "null"
+ theme:
+ type:
+ - string
+ - "null"
+ options:
+ type:
+ - string
+ - "null"
+ showStatus:
+ type:
+ - string
+ - "null"
+ firstPageOnly:
+ type:
+ - string
+ - "null"
+ primaryLanguage:
+ type:
+ - string
+ - "null"
+ originalLanguage:
+ type:
+ - string
+ - "null"
+ saveUserLanguage:
+ type:
+ - string
+ - "null"
+ detectUserLanguage:
+ type:
+ - string
+ - "null"
+ products:
+ type:
+ - array
+ - "null"
+ items:
+ type:
+ - object
+ - "null"
+ properties:
+ description:
+ type:
+ - string
+ - "null"
+ pid:
+ type:
+ - string
+ - "null"
+ icon:
+ type:
+ - string
+ - "null"
+ name:
+ type:
+ - string
+ - "null"
+ order:
+ type:
+ - string
+ - "null"
+ price:
+ type:
+ - string
+ - "null"
+ trial:
+ type:
+ - string
+ - "null"
+ images:
+ type:
+ - string
+ - "null"
+ period:
+ type:
+ - string
+ - "null"
+ options:
+ type:
+ - string
+ - "null"
+ setupfee:
+ type:
+ - string
+ - "null"
+ customPrice:
+ type:
+ - string
+ - "null"
+ hasQuantity:
+ type:
+ - string
+ - "null"
+ paymentUUID:
+ type:
+ - string
+ - "null"
+ recurringtimes:
+ type:
+ - string
+ - "null"
+ fitImageToCanvas:
+ type:
+ - string
+ - "null"
+ connectedProducts:
+ type:
+ - string
+ - "null"
+ customPriceSource:
+ type:
+ - string
+ - "null"
+ hasExpandedOption:
+ type:
+ - string
+ - "null"
+ hasSpecialPricing:
+ type:
+ - string
+ - "null"
+ connectedCategories:
+ type:
+ - string
+ - "null"
+ alignment:
+ type:
+ - string
+ - "null"
+ fontcolor:
+ type:
+ - string
+ - "null"
+ formWidth:
+ type:
+ - string
+ - "null"
+ injectCSS:
+ type:
+ - string
+ - "null"
+ pageColor:
+ type:
+ - string
+ - "null"
+ pagetitle:
+ type:
+ - string
+ - "null"
+ styleJSON:
+ type:
+ - string
+ - "null"
+ thanktext:
+ type:
+ - string
+ - "null"
+ assignSlug:
+ type:
+ - string
+ - "null"
+ background:
+ type:
+ - string
+ - "null"
+ conditions:
+ type:
+ - array
+ - "null"
+ items:
+ type:
+ - object
+ - "null"
+ properties:
+ type:
+ type:
+ - string
+ - "null"
+ id:
+ type:
+ - string
+ - "null"
+ link:
+ type:
+ - string
+ - "null"
+ index:
+ type:
+ - string
+ - "null"
+ terms:
+ type:
+ - string
+ - "null"
+ action:
+ type:
+ - string
+ - "null"
+ priority:
+ type:
+ - string
+ - "null"
+ expireDate:
+ type:
+ - string
+ - "null"
+ fullScreen:
+ type:
+ - string
+ - "null"
+ labelWidth:
+ type:
+ - string
+ - "null"
+ responsive:
+ type:
+ - string
+ - "null"
+ smartEmbed:
+ type:
+ - string
+ - "null"
+ usesNewPDF:
+ type:
+ - string
+ - "null"
+ cardThemeID:
+ type:
+ - string
+ - "null"
+ dataHygiene:
+ type:
+ - array
+ - "null"
+ items:
+ type:
+ - object
+ - "null"
+ properties:
+ hyg-checkPid:
+ type:
+ - string
+ - "null"
+ hyg-checkProps:
+ type:
+ - string
+ - "null"
+ hyg-checkStock:
+ type:
+ - string
+ - "null"
+ hyg-checkCoupon:
+ type:
+ - string
+ - "null"
+ hyg-checkCategoryID:
+ type:
+ - string
+ - "null"
+ hyg-productUUIDCheck:
+ type:
+ - string
+ - "null"
+ hyg-isTheTemplateNewUI:
+ type:
+ - string
+ - "null"
+ hyg-isLongTextTruncated:
+ type:
+ - string
+ - "null"
+ hyg-isProductListHidden:
+ type:
+ - string
+ - "null"
+ hyg-checkMultipleGateway:
+ type:
+ - string
+ - "null"
+ hyg-checkConnectedProducts:
+ type:
+ - string
+ - "null"
+ hyg-checkProductsInDonationForm:
+ type:
+ - string
+ - "null"
+ hyg-singleSelectRequiredValueFix:
+ type:
+ - string
+ - "null"
+ formStrings:
+ type:
+ - array
+ - "null"
+ items:
+ type:
+ - object
+ - "null"
+ properties:
+ url:
+ type:
+ - string
+ - "null"
+ email:
+ type:
+ - string
+ - "null"
+ error:
+ type:
+ - string
+ - "null"
+ numeric:
+ type:
+ - string
+ - "null"
+ soldOut:
+ type:
+ - string
+ - "null"
+ currency:
+ type:
+ - string
+ - "null"
+ cyrillic:
+ type:
+ - string
+ - "null"
+ fillMask:
+ type:
+ - string
+ - "null"
+ lessThan:
+ type:
+ - string
+ - "null"
+ oneError:
+ type:
+ - string
+ - "null"
+ required:
+ type:
+ - string
+ - "null"
+ alphabetic:
+ type:
+ - string
+ - "null"
+ doneButton:
+ type:
+ - string
+ - "null"
+ fieldError:
+ type:
+ - string
+ - "null"
+ pleaseWait:
+ type:
+ - string
+ - "null"
+ requireOne:
+ type:
+ - string
+ - "null"
+ seeAllText:
+ type:
+ - string
+ - "null"
+ dateInvalid:
+ type:
+ - string
+ - "null"
+ dateLimited:
+ type:
+ - string
+ - "null"
+ doneMessage:
+ type:
+ - string
+ - "null"
+ invalidTime:
+ type:
+ - string
+ - "null"
+ justSoldOut:
+ type:
+ - string
+ - "null"
+ alphanumeric:
+ type:
+ - string
+ - "null"
+ ccInvalidCVC:
+ type:
+ - string
+ - "null"
+ confirmEmail:
+ type:
+ - string
+ - "null"
+ generalError:
+ type:
+ - string
+ - "null"
+ selectedTime:
+ type:
+ - string
+ - "null"
+ multipleError:
+ type:
+ - string
+ - "null"
+ validateEmail:
+ type:
+ - string
+ - "null"
+ freeEmailError:
+ type:
+ - string
+ - "null"
+ geoTimeoutDesc:
+ type:
+ - string
+ - "null"
+ maxDigitsError:
+ type:
+ - string
+ - "null"
+ nextButtonText:
+ type:
+ - string
+ - "null"
+ notEnoughStock:
+ type:
+ - string
+ - "null"
+ prevButtonText:
+ type:
+ - string
+ - "null"
+ requiredLegend:
+ type:
+ - string
+ - "null"
+ reviewBackText:
+ type:
+ - string
+ - "null"
+ uploadFilesize:
+ type:
+ - string
+ - "null"
+ wordLimitError:
+ type:
+ - string
+ - "null"
+ cancelSelection:
+ type:
+ - string
+ - "null"
+ ccInvalidNumber:
+ type:
+ - string
+ - "null"
+ geoTimeoutTitle:
+ type:
+ - string
+ - "null"
+ requireEveryRow:
+ type:
+ - string
+ - "null"
+ seeErrorsButton:
+ type:
+ - string
+ - "null"
+ slotUnavailable:
+ type:
+ - string
+ - "null"
+ startButtonText:
+ type:
+ - string
+ - "null"
+ submissionLimit:
+ type:
+ - string
+ - "null"
+ ccMissingDetails:
+ type:
+ - string
+ - "null"
+ ccMissingProduct:
+ type:
+ - string
+ - "null"
+ confirmClearForm:
+ type:
+ - string
+ - "null"
+ disallowDecimals:
+ type:
+ - string
+ - "null"
+ generalPageError:
+ type:
+ - string
+ - "null"
+ incompleteFields:
+ type:
+ - string
+ - "null"
+ noSlotsAvailable:
+ type:
+ - string
+ - "null"
+ requireEveryCell:
+ type:
+ - string
+ - "null"
+ restrictedDomain:
+ type:
+ - string
+ - "null"
+ reviewSubmitText:
+ type:
+ - string
+ - "null"
+ selectionSoldOut:
+ type:
+ - string
+ - "null"
+ submitButtonText:
+ type:
+ - string
+ - "null"
+ uploadExtensions:
+ type:
+ - string
+ - "null"
+ cancelAppointment:
+ type:
+ - string
+ - "null"
+ ccMissingDonation:
+ type:
+ - string
+ - "null"
+ geoPermissionDesc:
+ type:
+ - string
+ - "null"
+ gradingScoreError:
+ type:
+ - string
+ - "null"
+ inputCarretErrorA:
+ type:
+ - string
+ - "null"
+ inputCarretErrorB:
+ type:
+ - string
+ - "null"
+ uploadFilesizemin:
+ type:
+ - string
+ - "null"
+ wordMinLimitError:
+ type:
+ - string
+ - "null"
+ formerSelectedTime:
+ type:
+ - string
+ - "null"
+ geoPermissionTitle:
+ type:
+ - string
+ - "null"
+ maxCharactersError:
+ type:
+ - string
+ - "null"
+ maxSelectionsError:
+ type:
+ - string
+ - "null"
+ minCharactersError:
+ type:
+ - string
+ - "null"
+ minSelectionsError:
+ type:
+ - string
+ - "null"
+ noUploadExtensions:
+ type:
+ - string
+ - "null"
+ progressMiddleText:
+ type:
+ - string
+ - "null"
+ ccInvalidExpireDate:
+ type:
+ - string
+ - "null"
+ ccInvalidExpireYear:
+ type:
+ - string
+ - "null"
+ characterLimitError:
+ type:
+ - string
+ - "null"
+ dateInvalidSeparate:
+ type:
+ - string
+ - "null"
+ geoNotAvailableDesc:
+ type:
+ - string
+ - "null"
+ pastDatesDisallowed:
+ type:
+ - string
+ - "null"
+ subProductItemsLeft:
+ type:
+ - string
+ - "null"
+ ageVerificationError:
+ type:
+ - string
+ - "null"
+ ccInvalidExpireMonth:
+ type:
+ - string
+ - "null"
+ geoNotAvailableTitle:
+ type:
+ - string
+ - "null"
+ characterMinLimitError:
+ type:
+ - string
+ - "null"
+ ccDonationMinLimitError:
+ type:
+ - string
+ - "null"
+ chooseAFile_infoMessage:
+ type:
+ - string
+ - "null"
+ maxFileSize_infoMessage:
+ type:
+ - string
+ - "null"
+ multipleFileUploads_onLeave:
+ type:
+ - string
+ - "null"
+ notEnoughStock_remainedItems:
+ type:
+ - string
+ - "null"
+ multipleFileUploads_sizeError:
+ type:
+ - string
+ - "null"
+ multipleFileUploads_typeError:
+ type:
+ - string
+ - "null"
+ multipleFileUploads_emptyError:
+ type:
+ - string
+ - "null"
+ dragAndDropFilesHere_infoMessage:
+ type:
+ - string
+ - "null"
+ multipleFileUploads_minSizeError:
+ type:
+ - string
+ - "null"
+ multipleFileUploads_uploadFailed:
+ type:
+ - string
+ - "null"
+ multipleFileUploads_fileLimitError:
+ type:
+ - string
+ - "null"
+ isEncrypted:
+ type:
+ - string
+ - "null"
+ lineSpacing:
+ type:
+ - string
+ - "null"
+ optioncolor:
+ type:
+ - string
+ - "null"
+ submitError:
+ type:
+ - string
+ - "null"
+ uniqueField:
+ type:
+ - string
+ - "null"
+ welcomePage:
+ type:
+ - array
+ - "null"
+ items:
+ type:
+ - object
+ - "null"
+ properties:
+ logo:
+ type:
+ - string
+ - "null"
+ title:
+ type:
+ - string
+ - "null"
+ isActive:
+ type:
+ - string
+ - "null"
+ subTitle:
+ type:
+ - string
+ - "null"
+ buttonText:
+ type:
+ - string
+ - "null"
+ showQuestionCount:
+ type:
+ - string
+ - "null"
+ defaultTheme:
+ type:
+ - string
+ - "null"
+ integrations:
+ type:
+ - array
+ - "null"
+ isNewPDFUser:
+ type:
+ - boolean
+ - "null"
+ sendpostdata:
+ type:
+ - string
+ - "null"
+ thankYouPage:
+ type:
+ - array
+ - "null"
+ items:
+ type:
+ - object
+ - "null"
+ properties:
+ type:
+ type:
+ - string
+ - "null"
+ title:
+ type:
+ - string
+ - "null"
+ imageSrc:
+ type:
+ - string
+ - "null"
+ subTitle:
+ type:
+ - string
+ - "null"
+ redirectLink:
+ type:
+ - string
+ - "null"
+ attachInvoice:
+ type:
+ - string
+ - "null"
+ formOwnerName:
+ type:
+ - string
+ - "null"
+ highlightLine:
+ type:
+ - string
+ - "null"
+ activeRedirect:
+ type:
+ - string
+ - "null"
+ invoiceEnabled:
+ type:
+ - string
+ - "null"
+ lastQuestionID:
+ type:
+ - string
+ - "null"
+ mobileGoButton:
+ type:
+ - string
+ - "null"
+ paymentStrings:
+ type:
+ - array
+ - "null"
+ items:
+ type:
+ - object
+ - "null"
+ properties:
+ taxTax:
+ type:
+ - string
+ - "null"
+ totalTotal:
+ type:
+ - string
+ - "null"
+ couponApply:
+ type:
+ - string
+ - "null"
+ couponBlank:
+ type:
+ - string
+ - "null"
+ couponEnter:
+ type:
+ - string
+ - "null"
+ couponValid:
+ type:
+ - string
+ - "null"
+ couponChange:
+ type:
+ - string
+ - "null"
+ couponExpired:
+ type:
+ - string
+ - "null"
+ couponInvalid:
+ type:
+ - string
+ - "null"
+ totalSubtotal:
+ type:
+ - string
+ - "null"
+ shippingShipping:
+ type:
+ - string
+ - "null"
+ productListNameAZ:
+ type:
+ - string
+ - "null"
+ productListNameZA:
+ type:
+ - string
+ - "null"
+ productListSortBy:
+ type:
+ - string
+ - "null"
+ productListAllText:
+ type:
+ - string
+ - "null"
+ productListClearSort:
+ type:
+ - string
+ - "null"
+ productListSearchText:
+ type:
+ - string
+ - "null"
+ productListPriceLowest:
+ type:
+ - string
+ - "null"
+ productListPriceHighest:
+ type:
+ - string
+ - "null"
+ productListCategoriesText:
+ type:
+ - string
+ - "null"
+ errorNavigation:
+ type:
+ - string
+ - "null"
+ limitSubmission:
+ type:
+ - string
+ - "null"
+ showJotFormLogo:
+ type:
+ - string
+ - "null"
+ showProgressBar:
+ type:
+ - string
+ - "null"
+ thankYouIconSrc:
+ type:
+ - string
+ - "null"
+ themeRevisionID:
+ type:
+ - string
+ - "null"
+ clearFieldOnHide:
+ type:
+ - string
+ - "null"
+ creationLanguage:
+ type:
+ - string
+ - "null"
+ pageTitleChanged:
+ type:
+ - string
+ - "null"
+ thankYouImageSrc:
+ type:
+ - string
+ - "null"
+ submissionHeaders:
+ type:
+ - string
+ - "null"
+ thankYouFillAgain:
+ type:
+ - string
+ - "null"
+ formStringsChanged:
+ type:
+ - string
+ - "null"
+ preventCloningForm:
+ type:
+ - string
+ - "null"
+ submissionSettings:
+ type:
+ - array
+ - "null"
+ thankYouPageLayout:
+ type:
+ - string
+ - "null"
+ allowSubmissionEdit:
+ type:
+ - string
+ - "null"
+ hideMailEmptyFields:
+ type:
+ - string
+ - "null"
+ paymentListSettings:
+ type:
+ - array
+ - "null"
+ items:
+ type:
+ - object
+ - "null"
+ properties:
+ showSearch:
+ type:
+ - string
+ - "null"
+ showCategory:
+ type:
+ - string
+ - "null"
+ productCategories:
+ type:
+ - string
+ - "null"
+ productListLayout:
+ type:
+ - string
+ - "null"
+ showCategoryTitle:
+ type:
+ - string
+ - "null"
+ minTotalOrderAmount:
+ type:
+ - string
+ - "null"
+ showMinTotalOrderAmount:
+ type:
+ - string
+ - "null"
+ thankYouDownloadPDF:
+ type:
+ - string
+ - "null"
+ defaultEmailAssigned:
+ type:
+ - string
+ - "null"
+ formOwnerAccountType:
+ type:
+ - string
+ - "null"
+ hideSubmissionHeader:
+ type:
+ - string
+ - "null"
+ messageOfLimitedForm:
+ type:
+ - string
+ - "null"
+ statelessColorScheme:
+ type:
+ - string
+ - "null"
+ thankYouSelectedPDFs:
+ type:
+ - string
+ - "null"
+ paymentStringsChanged:
+ type:
+ - string
+ - "null"
+ thankYouEditSubmission:
+ type:
+ - string
+ - "null"
+ datetimeMigrationStatus:
+ type:
+ - string
+ - "null"
+ hideEmptySubmissionFields:
+ type:
+ - string
+ - "null"
+ isPaymentStoreInBasicFields:
+ type:
+ - string
+ - "null"
+ hideNonInputSubmissionFields:
+ type:
+ - string
+ - "null"
+ newPaymentUIForNewCreatedForms:
+ type:
+ - string
+ - "null"
+ defaultAutoResponderEmailAssigned:
+ type:
+ - string
+ - "null"
+ datetimeMigrationIncludesBirthDate:
+ type:
+ - string
+ - "null"
+ additionalProperties: true
diff --git a/airbyte-integrations/connectors/source-jotform/metadata.yaml b/airbyte-integrations/connectors/source-jotform/metadata.yaml
new file mode 100644
index 000000000000..30d17f8f6145
--- /dev/null
+++ b/airbyte-integrations/connectors/source-jotform/metadata.yaml
@@ -0,0 +1,38 @@
+metadataSpecVersion: "1.0"
+data:
+ allowedHosts:
+ hosts:
+ - "api.jotform.com"
+ - "eu-api.jotform.com"
+ - "hipaa-api.jotform.com"
+ - "*/API"
+ registryOverrides:
+ oss:
+ enabled: true
+ cloud:
+ enabled: true
+ remoteRegistries:
+ pypi:
+ enabled: false
+ packageName: airbyte-source-jotform
+ connectorBuildOptions:
+ baseImage: docker.io/airbyte/source-declarative-manifest:4.6.2@sha256:f5fcd3d4703b7590b6166a7853c5ed1686731607cd30a159a8c24e2fe2c1ee98
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 3456679e-2ff2-4ef7-aa9f-da6c0cc13894
+ dockerImageTag: 0.0.1
+ dockerRepository: airbyte/source-jotform
+ githubIssueLabel: source-jotform
+ icon: icon.svg
+ license: MIT
+ name: Jotform
+ releaseDate: 2024-09-12
+ releaseStage: alpha
+ supportLevel: community
+ documentationUrl: https://docs.airbyte.com/integrations/sources/jotform
+ tags:
+ - language:manifest-only
+ - cdk:low-code
+ ab_internal:
+ ql: 100
+ sl: 100
diff --git a/docs/integrations/sources/jotform.md b/docs/integrations/sources/jotform.md
new file mode 100644
index 000000000000..f2ef52e97bc5
--- /dev/null
+++ b/docs/integrations/sources/jotform.md
@@ -0,0 +1,37 @@
+# Jotform
+Jotform is a powerful online form builder that makes it easy to create robust forms and collect important data.
+
+## Configuration
+
+| Input | Type | Description | Default Value |
+|-------|------|-------------|---------------|
+| `api_key` | `string` | API Key. | |
+| `end_date` | `string` | End date to filter submissions, reports, forms, form_files streams incrementally. | |
+| `start_date` | `string` | Start date to filter submissions, reports, forms, form_files streams incrementally. | |
+| `api_endpoint` | `object` | API Endpoint. | |
+
+To get started, you need a valid API key.
+1. Go to [My Account](https://www.jotform.com/myaccount/api)
+2. Navigate to API Section
+3. Create a new API Key
+
+## Streams
+| Stream Name | Primary Key | Pagination | Supports Full Sync | Supports Incremental |
+|-------------|-------------|------------|---------------------|----------------------|
+| submissions | id | DefaultPaginator | ✅ | ✅ |
+| reports | id | No pagination | ✅ | ✅ |
+| forms | id | DefaultPaginator | ✅ | ✅ |
+| questions | form_id.qid | No pagination | ✅ | ❌ |
+| form_properties | id | No pagination | ✅ | ❌ |
+| form_files | url | No pagination | ✅ | ✅ |
+
+## Changelog
+
+
+ Expand to review
+
+| Version | Date | Subject |
+|------------------|------------|----------------|
+| 0.0.1 | 2024-09-12 | Initial release by [@topefolorunso](https://github.com/topefolorunso) via Connector Builder|
+
+