Skip to content

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/mcp
the first call
do {  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.

  1. 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
  2. 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 app
    • refresh_tokenRefresh token from the same sign-in; the access token is renewed from it
    • client_idSurveyMonkey app client id (developer.surveymonkey.com > My Apps > your app > Settings)
    • client_secretSurveyMonkey app secret
    • hostWhere your SurveyMonkey lives: your host
    account { op: "connections.requirements", service: "surveymonkey" }
    # free: exactly what to paste, and what is found for you
  3. 03

    Make the first call. Check before a write.

    Ask in plain words; Claude picks the action. Before anything changes, check validates 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
  1. Collector responses

    9

    4 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

  2. Contact lists

    8

    2 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)

  3. Contacts

    8

    3 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

  4. Surveys

    8

    4 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

  5. Collector messages

    7

    2 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

  6. Survey page questions

    7

    3 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

  7. Survey pages

    6

    2 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)

  8. Survey responses

    6

    4 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.

ActionWhat it doesEffectSame name in
surveymonkey.groups.listReturns a list of groupsReturns a list of groups.readidentity.group.list262 connectors
surveymonkey.roles.listReturns the list of user roles in an organizationReturns the list of user roles in an organization.readidentity.role.list184 connectors
surveymonkey.contact_lists.listReturns all contact listsReturns all contact lists.readcrm.contact_list.list34 connectors
surveymonkey.users.meReturns the current user’s account details including their planReturns the current user’s account details including their plan.readidentity.current_user.get307 connectors
surveymonkey.contacts.listReturns a list of all contactsReturns a list of all contacts.readcrm.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, ....writecrm.contact.create161 connectors
surveymonkey.contacts.deleteDeletes a contactDeletes a contact.destructivecrm.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,....writecrm.contact_list.create29 connectors
surveymonkey.group_members.listReturns a list of users who have been added as members of the specified groupReturns a list of users who have been added as members of the specified group.readidentity.group_member.list103 connectors
surveymonkey.survey_folders.listReturns available foldersReturns available folders.readcontent.folder.list62 connectors
surveymonkey.survey_folders.createCreatesCreates.writecontent.folder.create62 connectors
surveymonkey.group_members.updateUpdate a group members email addressUpdate a group members email address.writeidentity.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.

  1. Readread

    Find the SurveyMonkey contacts with no email address, so we can clean them up.

    callssurveymonkey.contacts.bulk_list

  2. 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.

    callssurveymonkey.contacts.create

  3. Across systemsread

    Which contacts are in both SurveyMonkey and HaloPSA, and how many are in only one of them?

    callssurveymonkey.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, on crm.contact · HaloPSA

  • Which contacts are in both SurveyMonkey and NetSuite, and how many are in only one of them?

    surveymonkey.contacts.bulk_list + netsuite.views.contacts, on crm.contact · NetSuite

Also mapped by other connectorsidentity.group 239crm.contact 192identity.current_user 142identity.role 107content.folder 38identity.group_member 27crm.contact_list 22
ask
ask {  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"]    } }  ]}
Example. Run it through check first: it validates the steps and prices them, and it is free.

Governance for SurveyMonkey

Destructive actions wait for a yes.

15 SurveyMonkey actions are destructive. These are all of them:

  • Deletes a contactsurveymonkey.contacts.delete
  • Deletes a contact listsurveymonkey.contact_lists.delete
  • Deletes a webhooksurveymonkey.webhooks.delete
  • Deletes a surveysurveymonkey.surveys.delete
  • Deletes a collectorsurveymonkey.collectors.delete
  • Remove the workgroupsurveymonkey.workgroups.delete
  • Deletes a pagesurveymonkey.survey_pages.delete
  • Remove a resource from being shared within a workgroupsurveymonkey.workgroup_shares.delete
  • Deletes a member from a workgroupsurveymonkey.workgroup_members.delete
  • Deletes a messagesurveymonkey.collector_messages.delete
  • Deletes a responsesurveymonkey.collector_responses.delete
  • Deletes a translationsurveymonkey.survey_translations.delete
  • Deletes a questionsurveymonkey.survey_page_questions.delete
  • Deletes all the responses from the Collectorsurveymonkey.collector_responses.delete_all
  • Deletes a recipientsurveymonkey.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.

dosurveymonkey.contacts.deleteconfirm_policy: human

Deletes a contact?

intent: the user asked me to deletes a contact

run suspended · waiting for a named person · key surveymonkey-agent cannot confirm itself
In the console, or from an emailed signed link.
a key for this connector
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]" }  ]}
Illustrative. Scoped to SurveyMonkey only, capped at 2,000 upstream calls, every write confirmed, and the destructive ones approved by a named person.

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

See pricing

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 questionsread
  • surveymonkey.collector_responses.createCreates a responsewrite
  • surveymonkey.collector_responses.deleteDeletes a responsedestructive
  • surveymonkey.collector_responses.delete_allDeletes all the responses from the Collectordestructive
  • surveymonkey.collector_responses.detailsRetrieve a full expanded response, including answers to all questionsread
  • surveymonkey.collector_responses.getReturns a responseread
  • surveymonkey.collector_responses.listReturns a list of responsesread
  • surveymonkey.collector_responses.replaceReplaces a response (same arguments and requirements as POST /surveys/{id}/responses)write
  • surveymonkey.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 listwrite
  • surveymonkey.contact_lists.createCreates a contact list, contacts can be sent survey invite messages using an email invite or sms collector,...write
  • surveymonkey.contact_lists.deleteDeletes a contact listdestructive
  • surveymonkey.contact_lists.getReturns a contact listread
  • surveymonkey.contact_lists.listReturns all contact listsread
  • surveymonkey.contact_lists.mergeCopies contacts in the list specified in the request body and adds to the list specified in the resource URLwrite
  • surveymonkey.contact_lists.replaceReplaces a contact list POST (same arguments and requirements as POST/contact_lists)write
  • surveymonkey.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...write
  • surveymonkey.contacts.bulk_listReturns a list of all contacts with all available fieldsread
  • surveymonkey.contacts.createCreates a new contact, contacts can be sent survey invite messages using an email invite or sms collector, ...write
  • surveymonkey.contacts.deleteDeletes a contactdestructive
  • surveymonkey.contacts.getReturns a contactread
  • surveymonkey.contacts.listReturns a list of all contactsread
  • surveymonkey.contacts.replaceReplaces a contact (same arguments and requirements as POST/contacts)write
  • surveymonkey.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...write
  • surveymonkey.surveys.deleteDeletes a surveydestructive
  • surveymonkey.surveys.detailsReturns an expanded survey resource with a pages element containing a list of all page objects, each contai...read
  • surveymonkey.surveys.getReturns a survey’s detailsread
  • surveymonkey.surveys.listReturns a list of surveys owned or shared with the authenticated userread
  • surveymonkey.surveys.replaceReplaces a surveywrite
  • surveymonkey.surveys.searchGET /surveys/searchread
  • surveymonkey.surveys.updateModifies a survey’s title, nickname or languagewrite
Collector messages7
  • surveymonkey.collector_messages.createCreates a messagewrite
  • surveymonkey.collector_messages.deleteDeletes a messagedestructive
  • surveymonkey.collector_messages.getReturns a messageread
  • surveymonkey.collector_messages.listReturns a messageread
  • surveymonkey.collector_messages.replaceReplaces a message (only subject, body_text, body_html, is_branding, and recipient_status if ‘reminder’ or ...write
  • surveymonkey.collector_messages.sendSend or schedule to send an existing message to all message recipientswrite
  • surveymonkey.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 questionread
  • surveymonkey.survey_page_questions.createCreates a new question on a survey page, see formatting question typeswrite
  • surveymonkey.survey_page_questions.deleteDeletes a questiondestructive
  • surveymonkey.survey_page_questions.getReturns a questionread
  • surveymonkey.survey_page_questions.listReturns a list of questions on a survey pageread
  • surveymonkey.survey_page_questions.replaceReplaces a question (same arguments and requirements as POST /surveys/{id}/pages/questionswrite
  • surveymonkey.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 pageswrite
  • surveymonkey.survey_pages.deleteDeletes a pagedestructive
  • surveymonkey.survey_pages.getReturns a page’s detailsread
  • surveymonkey.survey_pages.listReturns a page’s detailsread
  • surveymonkey.survey_pages.replaceReplaces a page (same arguments and requirements as POST /surveys{id}/pages)write
  • surveymonkey.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/bulkread
  • surveymonkey.survey_responses.detailsGET /surveys/{survey_id}/responses/{response_id}/detailsread
  • surveymonkey.survey_responses.getGET /surveys/{survey_id}/responses/{response_id}read
  • surveymonkey.survey_responses.listReturns a list of responsesread
  • surveymonkey.survey_responses.replacePUT /surveys/{survey_id}/responses/{response_id}write
  • surveymonkey.survey_responses.updatePATCH /surveys/{survey_id}/responses/{response_id}write
Webhooks6
  • surveymonkey.webhooks.createCreate a webhook, see below for callback formatwrite
  • surveymonkey.webhooks.deleteDeletes a webhookdestructive
  • surveymonkey.webhooks.getReturns a webhookread
  • surveymonkey.webhooks.listReturns a list of webhooksread
  • surveymonkey.webhooks.replaceReplaces a webhook (same arguments and requirements as POST /webhooks)write
  • surveymonkey.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 memberswrite
  • surveymonkey.workgroup_members.createCreates a new workgroup memberwrite
  • surveymonkey.workgroup_members.deleteDeletes a member from a workgroupdestructive
  • surveymonkey.workgroup_members.getReturns a memberread
  • surveymonkey.workgroup_members.listReturns the members in a workgroupread
  • surveymonkey.workgroup_members.updateModifies a member (updates any fields accepted as arguments to POST /workgroups/{workgroup_id}/members)write
Collectors5
  • surveymonkey.collectors.deleteDeletes a collectordestructive
  • surveymonkey.collectors.getReturns a collectorread
  • surveymonkey.collectors.replaceReplaces a collector (same arguments and requirements as POST/surveys/{survey_id}/collectors, with the addi...write
  • surveymonkey.collectors.statsGET /collectors/{collector_id}/statsread
  • surveymonkey.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 translationwrite
  • surveymonkey.survey_translations.deleteDeletes a translationdestructive
  • surveymonkey.survey_translations.getReturns existing translations or the translation structureread
  • surveymonkey.survey_translations.listReturns all existing translationsread
  • surveymonkey.survey_translations.updateUpdates a translationwrite
Workgroup shares5
  • surveymonkey.workgroup_shares.bulk_createAdd bulk amount of shared resource to the workgroupwrite
  • surveymonkey.workgroup_shares.createAdd a new shared resource to the workgroupwrite
  • surveymonkey.workgroup_shares.deleteRemove a resource from being shared within a workgroupdestructive
  • surveymonkey.workgroup_shares.getReturns a resource shared with the user across all workgroupsread
  • surveymonkey.workgroup_shares.listReturns the resources shared with the user across all workgroupsread
Workgroups5
  • surveymonkey.workgroups.createAdd a new shared resource to the workgroupwrite
  • surveymonkey.workgroups.deleteRemove the workgroupdestructive
  • surveymonkey.workgroups.getReturns information on the selected workgroup View Workgroup Shares scoperead
  • surveymonkey.workgroups.listReturns a list of all workgroups that are availableread
  • surveymonkey.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...write
  • surveymonkey.contact_list_contacts.bulk_listReturns a list of all contacts in the list with all available fieldsread
  • surveymonkey.contact_list_contacts.createCreates a new contact and adds them to a contact list, contacts can be sent survey invite messages using an...write
  • surveymonkey.contact_list_contacts.listReturns all contacts in a contact listread
Organizations4
  • surveymonkey.organizations.createInitializes workgroups functionality for your organization (group, team)write
  • surveymonkey.organizations.getReturns properties of your organization you specify that pertain to workgroups functionalityread
  • surveymonkey.organizations.listReturns properties of your organizations (group, team) that pertain to workgroups functionalityread
  • surveymonkey.organizations.updateModifies the workgroups functionality for your organization (group, team)write
Benchmark bundles3
  • surveymonkey.benchmark_bundles.analyzeReturns the benchmark for the given bundleread
  • surveymonkey.benchmark_bundles.getReturns the questions and details included in a given bundleread
  • surveymonkey.benchmark_bundles.listReturns a list of benchmark bundles you have access toread
Collector message recipients3
  • surveymonkey.collector_message_recipients.bulk_createCreates multiple recipientswrite
  • surveymonkey.collector_message_recipients.createCreates a new recipient for the specified messagewrite
  • surveymonkey.collector_message_recipients.listReturns a list of recipientsread
Contact fields3
  • surveymonkey.contact_fields.getReturns the specified custom contact fieldread
  • surveymonkey.contact_fields.listReturns a list of all custom contacts fieldsread
  • surveymonkey.contact_fields.updateModifies a custom contact field’s labelwrite
Group members3
  • surveymonkey.group_members.getReturns a group member’s details including their role and statusread
  • surveymonkey.group_members.listReturns a list of users who have been added as members of the specified groupread
  • surveymonkey.group_members.updateUpdate a group members email addresswrite
Errors2
  • surveymonkey.errors.getReturns the details of a known errorread
  • surveymonkey.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 valueread
  • surveymonkey.group_activities.listReturns a list of activity related data for the specified groupread
Groups2
  • surveymonkey.groups.getReturns group informationread
  • surveymonkey.groups.listReturns a list of groupsread
Survey collector recipients2
  • surveymonkey.survey_collector_recipients.deleteDeletes a recipientdestructive
  • surveymonkey.survey_collector_recipients.getReturns a recipientread
Survey collectors2
  • surveymonkey.survey_collectors.createCreates an sms, weblink, email collector or popup collector for a given surveywrite
  • surveymonkey.survey_collectors.listReturns a list of collectors for a given surveyread
Survey folders2
  • surveymonkey.survey_folders.createCreateswrite
  • surveymonkey.survey_folders.listReturns available foldersread
Survey share2
  • surveymonkey.survey_share.createCreate a survey results page linkwrite
  • surveymonkey.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.