diff --git a/airbyte-integrations/connectors/source-systeme/README.md b/airbyte-integrations/connectors/source-systeme/README.md
new file mode 100644
index 000000000000..a571fe472b31
--- /dev/null
+++ b/airbyte-integrations/connectors/source-systeme/README.md
@@ -0,0 +1,35 @@
+# Systeme
+This directory contains the manifest-only connector for `source-systeme`.
+
+Systeme is an all in one marketing platform.
+Using this connector we can extarct records from communities , contacts , tags , contact fields and course resources streams.
+Docs : https://developer.systeme.io/reference/api
+
+## 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-systeme:dev`) that you can use to test the connector locally.
+```bash
+airbyte-ci connectors --name=source-systeme build
+```
+
+### Test
+This will run the acceptance tests for the connector.
+```bash
+airbyte-ci connectors --name=source-systeme test
+```
+
diff --git a/airbyte-integrations/connectors/source-systeme/acceptance-test-config.yml b/airbyte-integrations/connectors/source-systeme/acceptance-test-config.yml
new file mode 100644
index 000000000000..e61deab32ea6
--- /dev/null
+++ b/airbyte-integrations/connectors/source-systeme/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-systeme: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-systeme/icon.svg b/airbyte-integrations/connectors/source-systeme/icon.svg
new file mode 100644
index 000000000000..f71de06c9006
--- /dev/null
+++ b/airbyte-integrations/connectors/source-systeme/icon.svg
@@ -0,0 +1,13 @@
+
diff --git a/airbyte-integrations/connectors/source-systeme/manifest.yaml b/airbyte-integrations/connectors/source-systeme/manifest.yaml
new file mode 100644
index 000000000000..ab4bbb3b999c
--- /dev/null
+++ b/airbyte-integrations/connectors/source-systeme/manifest.yaml
@@ -0,0 +1,451 @@
+version: 5.15.0
+
+type: DeclarativeSource
+
+description: >-
+ Systeme is an all in one marketing platform.
+
+ Using this connector we can extarct records from communities, contacts, tags, contact fields and course resources streams.
+
+ Docs : https://developer.systeme.io/reference/api
+
+check:
+ type: CheckStream
+ stream_names:
+ - communities
+
+definitions:
+ streams:
+ communities:
+ type: DeclarativeStream
+ name: communities
+ primary_key:
+ - id
+ retriever:
+ type: SimpleRetriever
+ requester:
+ $ref: "#/definitions/base_requester"
+ path: community/communities
+ http_method: GET
+ record_selector:
+ type: RecordSelector
+ extractor:
+ type: DpathExtractor
+ field_path:
+ - items
+ paginator:
+ type: DefaultPaginator
+ page_token_option:
+ type: RequestOption
+ inject_into: request_parameter
+ field_name: startingAfter
+ page_size_option:
+ type: RequestOption
+ field_name: limit
+ inject_into: request_parameter
+ pagination_strategy:
+ type: CursorPagination
+ page_size: 100
+ cursor_value: "{{ last_record['id'] }}"
+ stop_condition: "{{ response.hasMore is false }}"
+ schema_loader:
+ type: InlineSchemaLoader
+ schema:
+ $ref: "#/schemas/communities"
+ contacts:
+ type: DeclarativeStream
+ name: contacts
+ primary_key:
+ - id
+ retriever:
+ type: SimpleRetriever
+ requester:
+ $ref: "#/definitions/base_requester"
+ path: contacts
+ http_method: GET
+ request_headers:
+ accept: application/json
+ record_selector:
+ type: RecordSelector
+ extractor:
+ type: DpathExtractor
+ field_path:
+ - items
+ paginator:
+ type: DefaultPaginator
+ page_token_option:
+ type: RequestOption
+ inject_into: request_parameter
+ field_name: startingAfter
+ page_size_option:
+ type: RequestOption
+ field_name: limit
+ inject_into: request_parameter
+ pagination_strategy:
+ type: CursorPagination
+ page_size: 100
+ cursor_value: "{{ last_record['id'] }}"
+ stop_condition: "{{ response.hasMore is false }}"
+ schema_loader:
+ type: InlineSchemaLoader
+ schema:
+ $ref: "#/schemas/contacts"
+ tags:
+ type: DeclarativeStream
+ name: tags
+ primary_key:
+ - id
+ retriever:
+ type: SimpleRetriever
+ requester:
+ $ref: "#/definitions/base_requester"
+ path: tags
+ http_method: GET
+ request_headers:
+ accept: application/json
+ record_selector:
+ type: RecordSelector
+ extractor:
+ type: DpathExtractor
+ field_path:
+ - items
+ paginator:
+ type: DefaultPaginator
+ page_token_option:
+ type: RequestOption
+ inject_into: request_parameter
+ field_name: startingAfter
+ page_size_option:
+ type: RequestOption
+ field_name: limit
+ inject_into: request_parameter
+ pagination_strategy:
+ type: CursorPagination
+ page_size: 100
+ cursor_value: "{{ last_record['id'] }}"
+ stop_condition: "{{ response.hasMore is false }}"
+ schema_loader:
+ type: InlineSchemaLoader
+ schema:
+ $ref: "#/schemas/tags"
+ contact_fields:
+ type: DeclarativeStream
+ name: contact_fields
+ retriever:
+ type: SimpleRetriever
+ requester:
+ $ref: "#/definitions/base_requester"
+ path: contact_fields
+ http_method: GET
+ request_headers:
+ accept: application/json
+ record_selector:
+ type: RecordSelector
+ extractor:
+ type: DpathExtractor
+ field_path:
+ - items
+ paginator:
+ type: DefaultPaginator
+ page_token_option:
+ type: RequestOption
+ inject_into: request_parameter
+ field_name: startingAfter
+ page_size_option:
+ type: RequestOption
+ field_name: limit
+ inject_into: request_parameter
+ pagination_strategy:
+ type: CursorPagination
+ page_size: 100
+ cursor_value: "{{ last_record['id'] }}"
+ stop_condition: "{{ response.hasMore is false }}"
+ schema_loader:
+ type: InlineSchemaLoader
+ schema:
+ $ref: "#/schemas/contact_fields"
+ course_resources:
+ type: DeclarativeStream
+ name: course_resources
+ primary_key:
+ - id
+ retriever:
+ type: SimpleRetriever
+ requester:
+ $ref: "#/definitions/base_requester"
+ path: school/courses
+ http_method: GET
+ request_headers:
+ accept: application/json
+ record_selector:
+ type: RecordSelector
+ extractor:
+ type: DpathExtractor
+ field_path:
+ - items
+ paginator:
+ type: DefaultPaginator
+ page_token_option:
+ type: RequestOption
+ inject_into: request_parameter
+ field_name: startingAfter
+ page_size_option:
+ type: RequestOption
+ field_name: limit
+ inject_into: request_parameter
+ pagination_strategy:
+ type: CursorPagination
+ page_size: 100
+ cursor_value: "{{ last_record['id'] }}"
+ stop_condition: "{{ response.hasMore is false }}"
+ schema_loader:
+ type: InlineSchemaLoader
+ schema:
+ $ref: "#/schemas/course_resources"
+ base_requester:
+ type: HttpRequester
+ url_base: https://api.systeme.io/api/
+ authenticator:
+ type: ApiKeyAuthenticator
+ api_token: "{{ config[\"api_key\"] }}"
+ inject_into:
+ type: RequestOption
+ field_name: X-API-Key
+ inject_into: header
+
+streams:
+ - $ref: "#/definitions/streams/communities"
+ - $ref: "#/definitions/streams/contacts"
+ - $ref: "#/definitions/streams/tags"
+ - $ref: "#/definitions/streams/contact_fields"
+ - $ref: "#/definitions/streams/course_resources"
+
+spec:
+ type: Spec
+ connection_specification:
+ type: object
+ $schema: http://json-schema.org/draft-07/schema#
+ required:
+ - api_key
+ properties:
+ api_key:
+ type: string
+ order: 0
+ title: API Key
+ airbyte_secret: true
+ additionalProperties: true
+
+metadata:
+ autoImportSchema:
+ communities: true
+ contacts: true
+ tags: true
+ contact_fields: true
+ course_resources: true
+ testedStreams:
+ communities:
+ streamHash: c1225da50424eadc73af707657a9da51738a86b7
+ hasResponse: true
+ responsesAreSuccessful: true
+ hasRecords: true
+ primaryKeysArePresent: true
+ primaryKeysAreUnique: true
+ contacts:
+ streamHash: 5468020d1e37baf53374c70b0d21406bd71bc353
+ hasResponse: true
+ responsesAreSuccessful: true
+ hasRecords: true
+ primaryKeysArePresent: true
+ primaryKeysAreUnique: true
+ tags:
+ streamHash: 4e3483527bfbd9a63d8750528650257407a38b69
+ hasResponse: true
+ responsesAreSuccessful: true
+ hasRecords: true
+ primaryKeysArePresent: true
+ primaryKeysAreUnique: true
+ contact_fields:
+ streamHash: b5735729e7b2c7ddcc3f2b1f76f242dbbc73c742
+ hasResponse: true
+ responsesAreSuccessful: true
+ hasRecords: true
+ primaryKeysArePresent: true
+ primaryKeysAreUnique: true
+ course_resources:
+ hasRecords: true
+ streamHash: 9191f05b35d42891f54aa2d0963952240aac1053
+ hasResponse: true
+ primaryKeysAreUnique: true
+ primaryKeysArePresent: true
+ responsesAreSuccessful: true
+ assist: {}
+
+schemas:
+ communities:
+ type: object
+ $schema: http://json-schema.org/schema#
+ additionalProperties: true
+ properties:
+ domainName:
+ type:
+ - string
+ - "null"
+ id:
+ type: number
+ name:
+ type:
+ - string
+ - "null"
+ path:
+ type:
+ - string
+ - "null"
+ required:
+ - id
+ contacts:
+ type: object
+ $schema: http://json-schema.org/schema#
+ additionalProperties: true
+ properties:
+ bounced:
+ type:
+ - boolean
+ - "null"
+ email:
+ type:
+ - string
+ - "null"
+ fields:
+ type:
+ - array
+ - "null"
+ items:
+ type:
+ - object
+ - "null"
+ properties:
+ fieldName:
+ type:
+ - string
+ - "null"
+ slug:
+ type:
+ - string
+ - "null"
+ value:
+ type:
+ - string
+ - "null"
+ id:
+ type: number
+ locale:
+ type:
+ - string
+ - "null"
+ needsConfirmation:
+ type:
+ - boolean
+ - "null"
+ registeredAt:
+ type:
+ - string
+ - "null"
+ tags:
+ type:
+ - array
+ - "null"
+ items:
+ type:
+ - object
+ - "null"
+ properties:
+ id:
+ type:
+ - number
+ - "null"
+ name:
+ type:
+ - string
+ - "null"
+ unsubscribed:
+ type:
+ - boolean
+ - "null"
+ required:
+ - id
+ tags:
+ type: object
+ $schema: http://json-schema.org/schema#
+ additionalProperties: true
+ properties:
+ createdAt:
+ type:
+ - string
+ - "null"
+ id:
+ type: number
+ name:
+ type:
+ - string
+ - "null"
+ required:
+ - id
+ contact_fields:
+ type: object
+ $schema: http://json-schema.org/schema#
+ additionalProperties: true
+ properties:
+ fieldName:
+ type:
+ - string
+ - "null"
+ slug:
+ type:
+ - string
+ - "null"
+ course_resources:
+ type: object
+ $schema: http://json-schema.org/schema#
+ additionalProperties: true
+ properties:
+ active:
+ type:
+ - boolean
+ - "null"
+ domainName:
+ type:
+ - string
+ - "null"
+ id:
+ type: number
+ locale:
+ type:
+ - string
+ - "null"
+ modules:
+ type:
+ - array
+ - "null"
+ items:
+ type:
+ - object
+ - "null"
+ properties:
+ id:
+ type:
+ - number
+ - "null"
+ name:
+ type:
+ - string
+ - "null"
+ name:
+ type:
+ - string
+ - "null"
+ path:
+ type:
+ - string
+ - "null"
+ required:
+ - id
diff --git a/airbyte-integrations/connectors/source-systeme/metadata.yaml b/airbyte-integrations/connectors/source-systeme/metadata.yaml
new file mode 100644
index 000000000000..9cdf42e28686
--- /dev/null
+++ b/airbyte-integrations/connectors/source-systeme/metadata.yaml
@@ -0,0 +1,35 @@
+metadataSpecVersion: "1.0"
+data:
+ allowedHosts:
+ hosts:
+ - "api.systeme.io"
+ registryOverrides:
+ oss:
+ enabled: true
+ cloud:
+ enabled: true
+ remoteRegistries:
+ pypi:
+ enabled: false
+ packageName: airbyte-source-systeme
+ connectorBuildOptions:
+ baseImage: docker.io/airbyte/source-declarative-manifest:5.17.0@sha256:9c6bfd080a247b7781ce5b25687e7c44e29d31315d0bf656584b38810521bbaa
+ connectorSubtype: api
+ connectorType: source
+ definitionId: 2e731a08-e503-4caf-998a-92bd4afd80c1
+ dockerImageTag: 0.0.1
+ dockerRepository: airbyte/source-systeme
+ githubIssueLabel: source-systeme
+ icon: icon.svg
+ license: MIT
+ name: Systeme
+ releaseDate: 2024-10-30
+ releaseStage: alpha
+ supportLevel: community
+ documentationUrl: https://docs.airbyte.com/integrations/sources/systeme
+ tags:
+ - language:manifest-only
+ - cdk:low-code
+ ab_internal:
+ ql: 100
+ sl: 100
diff --git a/docs/integrations/sources/systeme.md b/docs/integrations/sources/systeme.md
new file mode 100644
index 000000000000..b61fdef7df3a
--- /dev/null
+++ b/docs/integrations/sources/systeme.md
@@ -0,0 +1,30 @@
+# Systeme
+Systeme is an all in one marketing platform.
+Using this connector we can extarct records from communities , contacts , tags , contact fields and course resources streams.
+Docs : https://developer.systeme.io/reference/api
+
+## Configuration
+
+| Input | Type | Description | Default Value |
+|-------|------|-------------|---------------|
+| `api_key` | `string` | API Key. | |
+
+## Streams
+| Stream Name | Primary Key | Pagination | Supports Full Sync | Supports Incremental |
+|-------------|-------------|------------|---------------------|----------------------|
+| communities | id | DefaultPaginator | ✅ | ❌ |
+| contacts | id | DefaultPaginator | ✅ | ❌ |
+| tags | id | DefaultPaginator | ✅ | ❌ |
+| contact_fields | | DefaultPaginator | ✅ | ❌ |
+| course_resources | id | DefaultPaginator | ✅ | ❌ |
+
+## Changelog
+
+
+ Expand to review
+
+| Version | Date | Pull Request | Subject |
+|------------------|-------------------|--------------|----------------|
+| 0.0.1 | 2024-10-30 | | Initial release by [@ombhardwajj](https://github.com/ombhardwajj) via Connector Builder |
+
+