SurveyMonkey
SurveyMonkey is an online survey platform that allows users to create surveys, collect responses, and analyze data.
ingestr supports SurveyMonkey as a source.
URI format
surveymonkey://?access_token=<access_token>URI parameters:
access_token: The access token used to authenticate with the SurveyMonkey API.datacenter(optional): The datacenter region. Must beus(default),eu, orca.
For EU or CA accounts, specify the datacenter:
surveymonkey://?access_token=<access_token>&datacenter=euSetting up a SurveyMonkey Integration
SurveyMonkey requires an access token to connect to the API. To get one:
- Go to the SurveyMonkey Developer Portal and create a new app.
- Select the app type:
- Private App (recommended for Enterprise plans): Issues a non-expiring access token directly. All users must belong to the same SurveyMonkey team.
- Public App (for Basic/free plans): Issues a draft token that expires after 90 days.
- Under the Scopes section, enable the required scopes: View Surveys, View Responses, View Response Details, View Collectors, View Contacts.
- Click Update Scopes.
- Copy the Access Token from the Credentials section.
NOTE
For EU accounts, use the EU Developer Portal and set datacenter=eu in the URI. For CA accounts, use the CA Developer Portal and set datacenter=ca in the URI.
Once you have the access token, here's a sample command that will copy survey data into a DuckDB database:
sh
ingestr ingest \
--source-uri "surveymonkey://?access_token=your_token_here" \
--source-table "surveys" \
--dest-uri duckdb:///surveymonkey.duckdb \
--dest-table "public.surveys"Tables
SurveyMonkey source allows ingesting the following resources into separate tables:
| Table | PK | Inc Key | Inc Strategy | Details |
|---|---|---|---|---|
| surveys | id | date_modified | merge | List of all surveys with metadata (title, dates, response count, question count) |
| survey_details | id | date_modified | merge | Full survey details including nested pages and questions as JSON |
| survey_responses | id | date_modified | merge | Survey response data with answers, collected per survey |
| collectors | id | date_modified | merge | Survey distribution channels (weblink, email, etc.) |
| contact_lists | id | - | replace | Contact lists |
| contacts | id | - | replace | Contacts across all statuses (active, optout, bounced) |
Use these as the --source-table parameter in the ingestr ingest command.