Connectors · Marketing & media
SurveyMonkey MCP server for AI agents.
actionlake is an MCP gateway: one remote MCP server that connects Claude and other MCP clients to SurveyMonkey and the rest of your systems. It gives your agent 143 SurveyMonkey actions (75 reads, 53 writes and 15 that wait for a confirmation) and holds the SurveyMonkey credential itself, so the agent never does. It paces SurveyMonkey's limits and records every call. Connecting SurveyMonkey needs your own SurveyMonkey OAuth app and one admin sign-in.
100,000 free calls a month. No card, no email, no password: press Start a free sandbox on the next screen and keep the key it shows you.
claude mcp add --transport http actionlake https://connect.actionlake.com/mcpdo { action: "surveymonkey.groups.list", intent: "check which SurveyMonkey account is connected"}# Returns a list of groups · read · 1 upstream call- 143actionsin one signed file
- 75readlook, never change
- 53writecreate and update
- 15wait for a yesdestructive, confirmed first
Set up
Connect SurveyMonkey in three steps.
- 01
Add actionlake to Claude.
Run the command once in Claude Code; its consent page can create a free sandbox: 100,000 calls a month, no card. In the Claude app, add a custom connector with the URL below and paste your key on the consent page. Creating a new sandbox from the Claude app is not yet tested by us.
https://connect.actionlake.com/mcp - 02
Connect SurveyMonkey.
OAuth 2.0, authorization code. You register your own OAuth app with SurveyMonkey, an admin signs in once, and you paste the app's client id and secret and the tokens from that sign-in; actionlake renews the access token from then on. actionlake stores what you paste write-only, sealed under your tenant's key.
Before the first sign-in, SurveyMonkey needs an OAuth app of your own, registered in its developer portal. actionlake has no SurveyMonkey app to lend you.
access_tokenAccess token from one sign-in with your own OAuth apprefresh_tokenRefresh token from the same sign-in; the access token is renewed from itclient_idSurveyMonkey app client id (developer.surveymonkey.com > My Apps > your app > Settings)client_secretSurveyMonkey app secrethostWhere your SurveyMonkey lives: your host
account { op: "connections.requirements", service: "surveymonkey" } # free: exactly what to paste, and what is found for you - 03
Make the first call. Check before a write.
Ask in plain words; Claude picks the action. Before anything changes,
checkvalidates the call and prices it, for free.do { action: "surveymonkey.groups.list" }# returns a list of groups · read · 1 upstream callcheck { action: "surveymonkey.contacts.create", input: { … } }# free: inputs, permissions, cost and confirmations, nothing sent
SurveyMonkey at a glance
- Sign-in
- OAuth 2.0, authorization code. You register your own OAuth app with SurveyMonkey, an admin signs in once, and you paste the app's client id and secret and the tokens from that sign-in; actionlake renews the access token from then on.
- You provide
access_tokenrefresh_tokenclient_idclient_secret- Setup fields
host- Limits we pace to
- 120 calls a minute, per connection
- API covered
- SurveyMonkey API v3 (all 143 documented REST operations; webhook callbacks are receivers and are not actions)
api.surveymonkey.com/v3 - Built from
- SurveyMonkey's documentation, read 22 October 2026api.surveymonkey.com
- Service file
- Version 1.0.0, signed (Ed25519)
- Cached reads
- 75 of 75 reads, for up to 5 minutes; a write clears what it affects
- Shared entities
- 7, so ask can line SurveyMonkey up with your other systems
- Data
- Processed and stored in Sydney, Australia. No US region yet
Capabilities
What an AI agent can do in SurveyMonkey.
143 actions in 45 areas. Every one carries its effect, so a key can allow the reads and hold the rest.
- 75readlook, never change
- 53writecreate and update
- 15destructivewait for a confirmation
Collector responses
94 read · 3 write · 2 destructive
Retrieves a list of full expanded responses, including answers to all questions · Creates a response · Returns a list of responses · Retrieve a full expanded response, including answers to all questions
Contact lists
82 read · 5 write · 1 destructive
Returns all contact lists · Creates a contact list, contacts can be sent survey invite messages using an email invite or sms collector,... · Returns a contact list · Modifies a contact list (updates any fields accepted as arguments to POST /contact_lists)
Contacts
83 read · 4 write · 1 destructive
Returns a list of all contacts · Creates a new contact, contacts can be sent survey invite messages using an email invite or sms collector, ... · Returns a contact · Modifies a contact (updates any fields accepted as arguments to POST /contacts
Surveys
84 read · 3 write · 1 destructive
Creates a new empty survey or, if a template id or an existing survey id is specified, a survey prepopulate... · Returns a list of surveys owned or shared with the authenticated user · GET /surveys/search · Returns a survey’s details
Collector messages
72 read · 4 write · 1 destructive
Creates a message · Returns a message · Send or schedule to send an existing message to all message recipients · Returns a message
Survey page questions
73 read · 3 write · 1 destructive
Creates a new question on a survey page, see formatting question types · Returns a list of questions on a survey page · Returns the benchmark for the given question · Returns a question
Survey pages
62 read · 3 write · 1 destructive
Creates a new, empty page, see /surveys/{id}/pages/{id}/questions to add questions to pages · Returns a page’s details · Returns a page’s details · Replaces a page (same arguments and requirements as POST /surveys{id}/pages)
Survey responses
64 read · 2 write · 0 destructive
GET /surveys/{survey_id}/responses/bulk · Returns a list of responses · GET /surveys/{survey_id}/responses/{response_id}/details · GET /surveys/{survey_id}/responses/{response_id}
37 more areas · 84 actions
- Webhooks 6
- Workgroup members 6
- Collectors 5
- Survey translations 5
- Workgroup shares 5
- Workgroups 5
- Contact list contacts 4
- Organizations 4
- Benchmark bundles 3
- Collector message recipients 3
- Contact fields 3
- Group members 3
- Errors 2
- Group activities 2
- Groups 2
- Survey collector recipients 2
- Survey collectors 2
- Survey folders 2
- Survey share 2
- Collector recipients 1
- Question bank questions 1
- Roles 1
- Survey categories 1
- Survey collector messages 1
- Survey languages 1
- Survey page question rollups 1
- Survey page question trends 1
- Survey page rollups 1
- Survey page trends 1
- Survey rollups 1
- Survey share list 1
- Survey templates 1
- Survey trends 1
- Team survey templates 1
- User shared 1
- User workgroups 1
- Users 1
Top actions
The SurveyMonkey API, shaped for agents.
The ids your agent types, what each does, and the one name it shares with other systems. 24 of SurveyMonkey's 24 action names are shared with at least one other connector, so an agent learns them once.
| Action | What it does | Effect | Same name in |
|---|---|---|---|
surveymonkey.groups.listReturns a list of groups | Returns a list of groups. | read | identity.group.list262 connectors |
surveymonkey.roles.listReturns the list of user roles in an organization | Returns the list of user roles in an organization. | read | identity.role.list184 connectors |
surveymonkey.contact_lists.listReturns all contact lists | Returns all contact lists. | read | crm.contact_list.list34 connectors |
surveymonkey.users.meReturns the current user’s account details including their plan | Returns the current user’s account details including their plan. | read | identity.current_user.get307 connectors |
surveymonkey.contacts.listReturns a list of all contacts | Returns a list of all contacts. | read | crm.contact.list177 connectors |
surveymonkey.contacts.createCreates a new contact, contacts can be sent survey invite messages using an email invite or sms collector, ... | Creates a new contact, contacts can be sent survey invite messages using an email invite or sms collector, .... | write | crm.contact.create161 connectors |
surveymonkey.contacts.deleteDeletes a contact | Deletes a contact. | destructive | crm.contact.delete147 connectors |
surveymonkey.contact_lists.createCreates a contact list, contacts can be sent survey invite messages using an email invite or sms collector,... | Creates a contact list, contacts can be sent survey invite messages using an email invite or sms collector,.... | write | crm.contact_list.create29 connectors |
surveymonkey.group_members.listReturns a list of users who have been added as members of the specified group | Returns a list of users who have been added as members of the specified group. | read | identity.group_member.list103 connectors |
surveymonkey.survey_folders.listReturns available folders | Returns available folders. | read | content.folder.list62 connectors |
surveymonkey.survey_folders.createCreates | Creates. | write | content.folder.create62 connectors |
surveymonkey.group_members.updateUpdate a group members email address | Update a group members email address. | write | identity.group_member.update34 connectors |
Try it
Prompts to paste into Claude.
Each one names the SurveyMonkey actions it will call, so you know what it reads and what it changes before you send it.
- Readread
Find the SurveyMonkey contacts with no email address, so we can clean them up.
calls
surveymonkey.contacts.bulk_list - Writewrite
Creates a new contact, contacts can be sent survey invite messages using an email invite or sms collector, .. in SurveyMonkey. Show me exactly what you will send before you save it.
calls
surveymonkey.contacts.create - Across systemsread
Which contacts are in both SurveyMonkey and HaloPSA, and how many are in only one of them?
calls
surveymonkey.contacts.bulk_listhalopsa.users.list
Across your systems
SurveyMonkey, joined to the rest of your business.
One ask fetches from SurveyMonkey and another system, joins the rows on the same customer on our side, and hands your agent the answer, not every row.
Which contacts are in both SurveyMonkey and HaloPSA, and how many are in only one of them?
surveymonkey.contacts.bulk_list+halopsa.users.list, oncrm.contact· HaloPSAWhich contacts are in both SurveyMonkey and NetSuite, and how many are in only one of them?
surveymonkey.contacts.bulk_list+netsuite.views.contacts, oncrm.contact· NetSuite
identity.group 239crm.contact 192identity.current_user 142identity.role 107content.folder 38identity.group_member 27crm.contact_list 22ask { intent: "which contacts are in both SurveyMonkey and HaloPSA, and how many are in only one of them", steps: [ { action: "surveymonkey.contacts.bulk_list", as: "people", input: {}, limit: 100, max_pages: 5 }, { action: "halopsa.users.list", as: "people2", input: {}, limit: 100, max_pages: 5 }, { join: { left: "people", right: "people2", on: "crm.contact", group_by: "people.email", select: ["people.email", "count(people2.id) as in_halopsa"] } } ]}Governance for SurveyMonkey
Destructive actions wait for a yes.
15 SurveyMonkey actions are destructive. These are all of them:
- Deletes a contact
surveymonkey.contacts.delete - Deletes a contact list
surveymonkey.contact_lists.delete - Deletes a webhook
surveymonkey.webhooks.delete - Deletes a survey
surveymonkey.surveys.delete - Deletes a collector
surveymonkey.collectors.delete - Remove the workgroup
surveymonkey.workgroups.delete - Deletes a page
surveymonkey.survey_pages.delete - Remove a resource from being shared within a workgroup
surveymonkey.workgroup_shares.delete - Deletes a member from a workgroup
surveymonkey.workgroup_members.delete - Deletes a message
surveymonkey.collector_messages.delete - Deletes a response
surveymonkey.collector_responses.delete - Deletes a translation
surveymonkey.survey_translations.delete - Deletes a question
surveymonkey.survey_page_questions.delete - Deletes all the responses from the Collector
surveymonkey.collector_responses.delete_all - Deletes a recipient
surveymonkey.survey_collector_recipients.delete
A destructive action runs only with confirm: true. Under the human policy the agent cannot confirm for itself: the run stops until a named person approves, in the console or from a signed link in an email. The cap on a key is refused before the call is sent, never after.
Deletes a contact?
intent: the user asked me to deletes a contact
account { op: "keys.create", name: "surveymonkey-agent", allowed_actions: ["surveymonkey.*"], cap_calls: 2000, confirm_policy: "human_for_writes", approval_rules: [ { match: "surveymonkey.contacts.delete", approver: "[email protected]" }, { match: "surveymonkey.contact_lists.delete", approver: "[email protected]" }, { match: "surveymonkey.webhooks.delete", approver: "[email protected]" } ]}Cost
What SurveyMonkey costs on actionlake.
Every SurveyMonkey action is one upstream call, the only thing actionlake bills. Searching, check, cost, account and any call SurveyMonkey refused with 401, 403, 429 or a 5xx are free. Paid plans start at US$49 a month for 250,000 calls, with overage from US$0.30 down to US$0.18 per 1,000.
- 1upstream call per actionall 143 SurveyMonkey actions
- 143actions pageeach page of a long list is one call
- 75reads can be cacheda cache hit costs nothing
- 100,000calls a month, freepaid plans from US$49 a month for 250,000
Action index
Every SurveyMonkey action.
143 actions by area: the id your agent calls, what it does, and its effect.
Collector responses9
surveymonkey.collector_responses.bulk_listRetrieves a list of full expanded responses, including answers to all questionsreadsurveymonkey.collector_responses.createCreates a responsewritesurveymonkey.collector_responses.deleteDeletes a responsedestructivesurveymonkey.collector_responses.delete_allDeletes all the responses from the Collectordestructivesurveymonkey.collector_responses.detailsRetrieve a full expanded response, including answers to all questionsreadsurveymonkey.collector_responses.getReturns a responsereadsurveymonkey.collector_responses.listReturns a list of responsesreadsurveymonkey.collector_responses.replaceReplaces a response (same arguments and requirements as POST /surveys/{id}/responses)writesurveymonkey.collector_responses.updateModifies a response (updates any fields accepted as arguments to POST /surveys/{survey_id}/responses)write
Contact lists8
surveymonkey.contact_lists.copyCreates a copy of an existing contact listwritesurveymonkey.contact_lists.createCreates a contact list, contacts can be sent survey invite messages using an email invite or sms collector,...writesurveymonkey.contact_lists.deleteDeletes a contact listdestructivesurveymonkey.contact_lists.getReturns a contact listreadsurveymonkey.contact_lists.listReturns all contact listsreadsurveymonkey.contact_lists.mergeCopies contacts in the list specified in the request body and adds to the list specified in the resource URLwritesurveymonkey.contact_lists.replaceReplaces a contact list POST (same arguments and requirements as POST/contact_lists)writesurveymonkey.contact_lists.updateModifies a contact list (updates any fields accepted as arguments to POST /contact_lists)write
Contacts8
surveymonkey.contacts.bulk_createCreates multiple contacts, contacts can be sent survey invite messages using an email invite or sms collect...writesurveymonkey.contacts.bulk_listReturns a list of all contacts with all available fieldsreadsurveymonkey.contacts.createCreates a new contact, contacts can be sent survey invite messages using an email invite or sms collector, ...writesurveymonkey.contacts.deleteDeletes a contactdestructivesurveymonkey.contacts.getReturns a contactreadsurveymonkey.contacts.listReturns a list of all contactsreadsurveymonkey.contacts.replaceReplaces a contact (same arguments and requirements as POST/contacts)writesurveymonkey.contacts.updateModifies a contact (updates any fields accepted as arguments to POST /contactswrite
Surveys8
surveymonkey.surveys.createCreates a new empty survey or, if a template id or an existing survey id is specified, a survey prepopulate...writesurveymonkey.surveys.deleteDeletes a surveydestructivesurveymonkey.surveys.detailsReturns an expanded survey resource with a pages element containing a list of all page objects, each contai...readsurveymonkey.surveys.getReturns a survey’s detailsreadsurveymonkey.surveys.listReturns a list of surveys owned or shared with the authenticated userreadsurveymonkey.surveys.replaceReplaces a surveywritesurveymonkey.surveys.searchGET /surveys/searchreadsurveymonkey.surveys.updateModifies a survey’s title, nickname or languagewrite
Collector messages7
surveymonkey.collector_messages.createCreates a messagewritesurveymonkey.collector_messages.deleteDeletes a messagedestructivesurveymonkey.collector_messages.getReturns a messagereadsurveymonkey.collector_messages.listReturns a messagereadsurveymonkey.collector_messages.replaceReplaces a message (only subject, body_text, body_html, is_branding, and recipient_status if ‘reminder’ or ...writesurveymonkey.collector_messages.sendSend or schedule to send an existing message to all message recipientswritesurveymonkey.collector_messages.updateModifies a message (only subject, body_text, body_html, is_branding, and recipient_status if ‘reminder’ or ...write
Survey page questions7
surveymonkey.survey_page_questions.benchmarkReturns the benchmark for the given questionreadsurveymonkey.survey_page_questions.createCreates a new question on a survey page, see formatting question typeswritesurveymonkey.survey_page_questions.deleteDeletes a questiondestructivesurveymonkey.survey_page_questions.getReturns a questionreadsurveymonkey.survey_page_questions.listReturns a list of questions on a survey pagereadsurveymonkey.survey_page_questions.replaceReplaces a question (same arguments and requirements as POST /surveys/{id}/pages/questionswritesurveymonkey.survey_page_questions.updateUpdates a question (updates any fields accepted as arguments to POST /surveys/{id}/pages/questionswrite
Survey pages6
surveymonkey.survey_pages.createCreates a new, empty page, see /surveys/{id}/pages/{id}/questions to add questions to pageswritesurveymonkey.survey_pages.deleteDeletes a pagedestructivesurveymonkey.survey_pages.getReturns a page’s detailsreadsurveymonkey.survey_pages.listReturns a page’s detailsreadsurveymonkey.survey_pages.replaceReplaces a page (same arguments and requirements as POST /surveys{id}/pages)writesurveymonkey.survey_pages.updateModifies a page (updates any fields accepted as arguments to POST /surveys{id}/pages)write
Survey responses6
surveymonkey.survey_responses.bulk_listGET /surveys/{survey_id}/responses/bulkreadsurveymonkey.survey_responses.detailsGET /surveys/{survey_id}/responses/{response_id}/detailsreadsurveymonkey.survey_responses.getGET /surveys/{survey_id}/responses/{response_id}readsurveymonkey.survey_responses.listReturns a list of responsesreadsurveymonkey.survey_responses.replacePUT /surveys/{survey_id}/responses/{response_id}writesurveymonkey.survey_responses.updatePATCH /surveys/{survey_id}/responses/{response_id}write
Webhooks6
surveymonkey.webhooks.createCreate a webhook, see below for callback formatwritesurveymonkey.webhooks.deleteDeletes a webhookdestructivesurveymonkey.webhooks.getReturns a webhookreadsurveymonkey.webhooks.listReturns a list of webhooksreadsurveymonkey.webhooks.replaceReplaces a webhook (same arguments and requirements as POST /webhooks)writesurveymonkey.webhooks.updateModifies a webhook (updates any fields accepted as arguments to POST /webhooks, except app_installed and ap...write
Workgroup members6
surveymonkey.workgroup_members.bulk_createCreates many new workgroup memberswritesurveymonkey.workgroup_members.createCreates a new workgroup memberwritesurveymonkey.workgroup_members.deleteDeletes a member from a workgroupdestructivesurveymonkey.workgroup_members.getReturns a memberreadsurveymonkey.workgroup_members.listReturns the members in a workgroupreadsurveymonkey.workgroup_members.updateModifies a member (updates any fields accepted as arguments to POST /workgroups/{workgroup_id}/members)write
Collectors5
surveymonkey.collectors.deleteDeletes a collectordestructivesurveymonkey.collectors.getReturns a collectorreadsurveymonkey.collectors.replaceReplaces a collector (same arguments and requirements as POST/surveys/{survey_id}/collectors, with the addi...writesurveymonkey.collectors.statsGET /collectors/{collector_id}/statsreadsurveymonkey.collectors.updateModifies a collector (updates any fields accepted as arguments to POST /surveys/{survey_id}/collectors, wit...write
Survey translations5
surveymonkey.survey_translations.createCreates a translationwritesurveymonkey.survey_translations.deleteDeletes a translationdestructivesurveymonkey.survey_translations.getReturns existing translations or the translation structurereadsurveymonkey.survey_translations.listReturns all existing translationsreadsurveymonkey.survey_translations.updateUpdates a translationwrite
Workgroup shares5
surveymonkey.workgroup_shares.bulk_createAdd bulk amount of shared resource to the workgroupwritesurveymonkey.workgroup_shares.createAdd a new shared resource to the workgroupwritesurveymonkey.workgroup_shares.deleteRemove a resource from being shared within a workgroupdestructivesurveymonkey.workgroup_shares.getReturns a resource shared with the user across all workgroupsreadsurveymonkey.workgroup_shares.listReturns the resources shared with the user across all workgroupsread
Workgroups5
surveymonkey.workgroups.createAdd a new shared resource to the workgroupwritesurveymonkey.workgroups.deleteRemove the workgroupdestructivesurveymonkey.workgroups.getReturns information on the selected workgroup View Workgroup Shares scopereadsurveymonkey.workgroups.listReturns a list of all workgroups that are availablereadsurveymonkey.workgroups.updateModify information on the workgroupwrite
Contact list contacts4
surveymonkey.contact_list_contacts.bulk_createCreates multiple contacts and adds them to a list, contacts can be sent survey invite messages using an ema...writesurveymonkey.contact_list_contacts.bulk_listReturns a list of all contacts in the list with all available fieldsreadsurveymonkey.contact_list_contacts.createCreates a new contact and adds them to a contact list, contacts can be sent survey invite messages using an...writesurveymonkey.contact_list_contacts.listReturns all contacts in a contact listread
Organizations4
surveymonkey.organizations.createInitializes workgroups functionality for your organization (group, team)writesurveymonkey.organizations.getReturns properties of your organization you specify that pertain to workgroups functionalityreadsurveymonkey.organizations.listReturns properties of your organizations (group, team) that pertain to workgroups functionalityreadsurveymonkey.organizations.updateModifies the workgroups functionality for your organization (group, team)write
Benchmark bundles3
surveymonkey.benchmark_bundles.analyzeReturns the benchmark for the given bundlereadsurveymonkey.benchmark_bundles.getReturns the questions and details included in a given bundlereadsurveymonkey.benchmark_bundles.listReturns a list of benchmark bundles you have access toread
Collector message recipients3
surveymonkey.collector_message_recipients.bulk_createCreates multiple recipientswritesurveymonkey.collector_message_recipients.createCreates a new recipient for the specified messagewritesurveymonkey.collector_message_recipients.listReturns a list of recipientsread
Contact fields3
surveymonkey.contact_fields.getReturns the specified custom contact fieldreadsurveymonkey.contact_fields.listReturns a list of all custom contacts fieldsreadsurveymonkey.contact_fields.updateModifies a custom contact field’s labelwrite
Group members3
surveymonkey.group_members.getReturns a group member’s details including their role and statusreadsurveymonkey.group_members.listReturns a list of users who have been added as members of the specified groupreadsurveymonkey.group_members.updateUpdate a group members email addresswrite
Errors2
surveymonkey.errors.getReturns the details of a known errorreadsurveymonkey.errors.listReturns a list of known errorsread
Group activities2
surveymonkey.group_activities.count_by_intervalReturns a count of a specific activity by interval for the specified group given an action type enum valuereadsurveymonkey.group_activities.listReturns a list of activity related data for the specified groupread
Groups2
surveymonkey.groups.getReturns group informationreadsurveymonkey.groups.listReturns a list of groupsread
Survey collector recipients2
surveymonkey.survey_collector_recipients.deleteDeletes a recipientdestructivesurveymonkey.survey_collector_recipients.getReturns a recipientread
Survey collectors2
surveymonkey.survey_collectors.createCreates an sms, weblink, email collector or popup collector for a given surveywritesurveymonkey.survey_collectors.listReturns a list of collectors for a given surveyread
Survey folders2
surveymonkey.survey_folders.createCreateswritesurveymonkey.survey_folders.listReturns available foldersread
Survey share2
surveymonkey.survey_share.createCreate a survey results page linkwritesurveymonkey.survey_share.replaceUpdate an existing survey results page linkwrite
Collector recipients1
surveymonkey.collector_recipients.listReturns a list of recipientsread
Question bank questions1
surveymonkey.question_bank_questions.listReturns a list of question bank questions available to the userread
Roles1
surveymonkey.roles.listReturns the list of user roles in an organizationread
Survey categories1
surveymonkey.survey_categories.listReturns a list of survey categories that can be used to filter survey templatesread
Survey collector messages1
surveymonkey.survey_collector_messages.statsReturns a stats for a collector’s messageread
Survey languages1
surveymonkey.survey_languages.listReturns a list of survey languages that can be used to generate translations for multilingual surveysread
Survey page question rollups1
surveymonkey.survey_page_question_rollups.getGET /surveys/{survey_id}/pages/{page_id}/questions/{question_id}/rollupsread
Survey page question trends1
surveymonkey.survey_page_question_trends.getGET /surveys/{survey_id}/pages/{page_id}/questions/{question_id}/trendsread
Survey page rollups1
surveymonkey.survey_page_rollups.getGET /surveys/{survey_id}/pages/{page_id}/rollupsread
Survey page trends1
surveymonkey.survey_page_trends.getGET /surveys/{survey_id}/pages/{page_id}/trendsread
Survey rollups1
surveymonkey.survey_rollups.getReturns rollups for all questions in a surveyread
Survey share list1
surveymonkey.survey_share_list.getReturn a list of survey results page links generated for the survey with this survey_idread
Survey templates1
surveymonkey.survey_templates.listReturns a list of survey templatesread
Survey trends1
surveymonkey.survey_trends.getReturns answer counts for a particular time periodsread
Team survey templates1
surveymonkey.team_survey_templates.listReturns a list of team survey templates corresponding to the team to which the calling user belongsread
User shared1
surveymonkey.user_shared.listReturns the resources shared with the user across all workgroupsread
User workgroups1
surveymonkey.user_workgroups.listReturns the workgroups that a specific user is inread
Users1
surveymonkey.users.meReturns the current user’s account details including their planread
Questions
The SurveyMonkey MCP server, answered.
Is there a SurveyMonkey MCP server for Claude?
Yes. actionlake is an MCP gateway: a remote MCP server that gives Claude, or another MCP client, 143 SurveyMonkey actions across collector responses, contact lists, contacts and surveys, through the same eight tools it uses for every other connector. actionlake is independent; it is not made or endorsed by SurveyMonkey.
What do I need to connect SurveyMonkey?
Your own SurveyMonkey OAuth app, registered with SurveyMonkey (its client id and client secret), and the access and refresh tokens from one admin sign-in. actionlake has no SurveyMonkey app of its own, so this is not a one-step consent. actionlake renews the access token as it expires. Plus your host. The free call account { op: "connections.requirements", service: "surveymonkey" } lists exactly what to paste.
Can an AI agent delete or change things in SurveyMonkey?
Only if its key allows it, and only with an explicit confirmation. 15 SurveyMonkey actions are destructive, including deletes a contact, deletes a contact list and deletes a webhook. Each runs only with confirm: true. Under the human confirm policy, or an approval rule on the key, the run waits until a named person approves it.
Will an AI agent use up my SurveyMonkey API limit?
actionlake paces every call to the limits in the SurveyMonkey service file: 120 calls a minute per connection. Repeated reads are answered from cache (75 SurveyMonkey actions can be), which never reaches SurveyMonkey.
What does a SurveyMonkey action cost?
One upstream call, the only unit actionlake bills. A list that pages bills one call per page (143 SurveyMonkey actions page). Cache hits, searches, dry runs and calls SurveyMonkey refused with 401, 403, 429 or a 5xx are free. The Free plan includes 100,000 calls a month with no card. Paid plans start at US$49 a month for 250,000 calls, with overage from US$0.30 down to US$0.18 per 1,000.
Which SurveyMonkey API does it cover?
The SurveyMonkey API v3 (all 143 documented REST operations; webhook callbacks are receivers and are not actions) at api.surveymonkey.com/v3 by default, or the base URL set when you connect. It is built from SurveyMonkey's documentation as read on 22 October 2026. 143 actions in 45 areas, each one in the signed service file (version 1.0.0).
Can I combine SurveyMonkey with my other systems?
Yes. ask joins SurveyMonkey to HaloPSA or NetSuite on the same customer and returns the answer rather than every row. SurveyMonkey maps crm.contact, which 192 other connectors also map.
Does actionlake keep my SurveyMonkey data, and where?
actionlake processes and stores data in Sydney, Australia; there is no US region yet. Reads may be cached for up to 5 minutes, and a write clears the reads it affects. Each run's request and response is kept, sealed, for your plan's trace window: 1 day on Free, 3 days on Starter, 7 days on Pro, 14 days on Team, 30 days on Business and 30 days on Enterprise. Your SurveyMonkey credential is sealed under your tenant's key, never logged and never returned. Your traffic is not used to train models.
Which AI clients can use it?
Claude Code, tested by us end to end, and the Claude app as a custom connector, tested by us with an existing key. Other MCP clients that support remote servers over Streamable HTTP (MCP revisions 2025-06-18 and 2025-11-25) and OAuth dynamic client registration, or a bearer header, should connect the same way; we have not tested them. Or plain REST, under the same action names.
Give your agent SurveyMonkey today.
Start free - 100,000 calls/month, no card. No signup. Hard caps on every key. Cached answers are free.