diff --git a/airbyte-config/init/src/main/resources/config/STANDARD_SOURCE_DEFINITION/badc5925-0485-42be-8caa-b34096cb71b5.json b/airbyte-config/init/src/main/resources/config/STANDARD_SOURCE_DEFINITION/badc5925-0485-42be-8caa-b34096cb71b5.json
index dab7a3814551d..dcef89363a778 100644
--- a/airbyte-config/init/src/main/resources/config/STANDARD_SOURCE_DEFINITION/badc5925-0485-42be-8caa-b34096cb71b5.json
+++ b/airbyte-config/init/src/main/resources/config/STANDARD_SOURCE_DEFINITION/badc5925-0485-42be-8caa-b34096cb71b5.json
@@ -2,6 +2,6 @@
   "sourceDefinitionId": "badc5925-0485-42be-8caa-b34096cb71b5",
   "name": "Survey Monkey",
   "dockerRepository": "airbyte/source-surveymonkey",
-  "dockerImageTag": "0.1.0",
+  "dockerImageTag": "0.1.2",
   "documentationUrl": "https://docs.airbyte.io/integrations/sources/surveymonkey"
 }
diff --git a/airbyte-config/init/src/main/resources/seed/source_definitions.yaml b/airbyte-config/init/src/main/resources/seed/source_definitions.yaml
index 2b41fd8bfca69..8e27b4c532dfc 100644
--- a/airbyte-config/init/src/main/resources/seed/source_definitions.yaml
+++ b/airbyte-config/init/src/main/resources/seed/source_definitions.yaml
@@ -512,7 +512,7 @@
 - name: Survey Monkey
   sourceDefinitionId: badc5925-0485-42be-8caa-b34096cb71b5
   dockerRepository: airbyte/source-surveymonkey
-  dockerImageTag: 0.1.0
+  dockerImageTag: 0.1.2
   documentationUrl: https://docs.airbyte.io/integrations/sources/surveymonkey
   sourceType: api
 - name: Tempo
diff --git a/airbyte-integrations/connectors/source-surveymonkey/Dockerfile b/airbyte-integrations/connectors/source-surveymonkey/Dockerfile
index cdc81916013d2..70fceaea7ce68 100644
--- a/airbyte-integrations/connectors/source-surveymonkey/Dockerfile
+++ b/airbyte-integrations/connectors/source-surveymonkey/Dockerfile
@@ -12,5 +12,5 @@ RUN pip install .
 ENV AIRBYTE_ENTRYPOINT "python /airbyte/integration_code/main.py"
 ENTRYPOINT ["python", "/airbyte/integration_code/main.py"]
 
-LABEL io.airbyte.version=0.1.1
+LABEL io.airbyte.version=0.1.2
 LABEL io.airbyte.name=airbyte/source-surveymonkey
diff --git a/airbyte-integrations/connectors/source-surveymonkey/source_surveymonkey/source.py b/airbyte-integrations/connectors/source-surveymonkey/source_surveymonkey/source.py
index 62da51131d98a..6073aa78cf593 100644
--- a/airbyte-integrations/connectors/source-surveymonkey/source_surveymonkey/source.py
+++ b/airbyte-integrations/connectors/source-surveymonkey/source_surveymonkey/source.py
@@ -17,7 +17,7 @@
 class SourceSurveymonkey(AbstractSource):
     def check_connection(self, logger: AirbyteLogger, config: Mapping[str, Any]) -> Tuple[bool, Any]:
         try:
-            authenticator = TokenAuthenticator(token=config["access_token"])
+            authenticator = self.get_authenticator(config)
             start_date = pendulum.parse(config["start_date"])
             stream = Surveys(authenticator=authenticator, start_date=start_date)
             records = stream.read_records(sync_mode=SyncMode.full_refresh)
@@ -27,7 +27,17 @@ def check_connection(self, logger: AirbyteLogger, config: Mapping[str, Any]) ->
             return False, repr(e)
 
     def streams(self, config: Mapping[str, Any]) -> List[Stream]:
-        authenticator = TokenAuthenticator(token=config["access_token"])
+        authenticator = self.get_authenticator(config)
         start_date = pendulum.parse(config["start_date"])
         args = {"authenticator": authenticator, "start_date": start_date}
         return [Surveys(**args), SurveyPages(**args), SurveyQuestions(**args), SurveyResponses(**args)]
+
+    @staticmethod
+    def get_authenticator(config: Mapping[str, Any]):
+        # backward compatibility
+        if config.get("access_token"):
+            token = config.get("access_token")
+        else:
+            token = config.get("credentials", {}).get("access_token")
+
+        return TokenAuthenticator(token=token)
diff --git a/airbyte-integrations/connectors/source-surveymonkey/source_surveymonkey/spec.json b/airbyte-integrations/connectors/source-surveymonkey/source_surveymonkey/spec.json
index 08e3f37d80300..529fca524ae2c 100644
--- a/airbyte-integrations/connectors/source-surveymonkey/source_surveymonkey/spec.json
+++ b/airbyte-integrations/connectors/source-surveymonkey/source_surveymonkey/spec.json
@@ -2,10 +2,10 @@
   "documentationUrl": "https://docs.airbyte.io/integrations/sources/surveymonkey",
   "connectionSpecification": {
     "$schema": "http://json-schema.org/draft-07/schema#",
-    "title": "PostHog Spec",
+    "title": "SurveyMonkey Spec",
     "type": "object",
-    "required": ["start_date", "access_token"],
-    "additionalProperties": false,
+    "required": ["start_date"],
+    "additionalProperties": true,
     "properties": {
       "start_date": {
         "title": "Start Date",
@@ -14,11 +14,77 @@
         "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z?$",
         "examples": ["2021-01-01T00:00:00Z"]
       },
-      "access_token": {
-        "type": "string",
-        "airbyte_secret": true,
-        "description": "API Token. See the <a href=\"https://docs.airbyte.io/integrations/sources/surveymonkey\">docs</a> for information on how to generate this key."
+      "credentials": {
+        "type": "object",
+        "title": "Authentication Type",
+        "oneOf": [
+          {
+            "title": "Authenticate via OAuth",
+            "type": "object",
+            "required": [
+              "client_id",
+              "client_secret",
+              "access_token",
+              "auth_type"
+            ],
+            "properties": {
+              "auth_type": {
+                "type": "string",
+                "const": "OAuth",
+                "enum": ["OAuth"],
+                "default": "OAuth",
+                "order": 0
+              },
+              "client_id": {
+                "title": "Client ID",
+                "type": "string",
+                "description": "The Client ID of your developer application",
+                "airbyte_secret": true
+              },
+              "client_secret": {
+                "title": "Client Secret",
+                "type": "string",
+                "description": "The client secret of your developer application",
+                "airbyte_secret": true
+              },
+              "access_token": {
+                "title": "Access Token",
+                "type": "string",
+                "description": "An access token generated using the above client ID and secret",
+                "airbyte_secret": true
+              }
+            }
+          },
+          {
+            "type": "object",
+            "title": "Token Authentication",
+            "additionalProperties": false,
+            "required": ["access_token", "auth_type"],
+            "properties": {
+              "auth_type": {
+                "type": "string",
+                "const": "Token",
+                "enum": ["Token"],
+                "default": "Token",
+                "order": 0
+              },
+              "access_token": {
+                "type": "string",
+                "airbyte_secret": true,
+                "description": "API Token. See the <a href=\"https://docs.airbyte.io/integrations/sources/surveymonkey\">docs</a> for information on how to generate this key."
+              }
+            }
+          }
+        ]
       }
     }
+  },
+  "authSpecification": {
+    "auth_type": "oauth2.0",
+    "oauth2Specification": {
+      "rootObject": ["credentials", 0],
+      "oauthFlowInitParameters": [["client_id"], ["client_secret"]],
+      "oauthFlowOutputParameters": [["access_token"]]
+    }
   }
 }
diff --git a/docs/integrations/sources/surveymonkey.md b/docs/integrations/sources/surveymonkey.md
index 74348b5ef07c2..aa8847c9bf183 100644
--- a/docs/integrations/sources/surveymonkey.md
+++ b/docs/integrations/sources/surveymonkey.md
@@ -55,6 +55,7 @@ Please read this [docs](https://developer.surveymonkey.com/api/v3/#getting-start
 
 | Version | Date | Pull Request | Subject |
 | :--- | :--- | :--- | :--- |
+| 0.1.2 | 2021-10-27 | [7433](https://github.com/airbytehq/airbyte/pull/7433) | Add OAuth support |
 | 0.1.1 | 2021-09-10 | [5983](https://github.com/airbytehq/airbyte/pull/5983) | Fix caching for gzip compressed http response |
 | 0.1.0 | 2021-07-06 | [4097](https://github.com/airbytehq/airbyte/pull/4097) | Initial Release |