Question

I see that the get_responses call requires a list of respondent_ids. There is no get_responses method to return all respondents.

If I pass one respondent ID I can get their responses, and that can be a fair chunk of data for a complex survey. For a survey with more than 25,00 respondents, I wonder if that may exceed memory or string space sizes. I cannot simply get one respondent at a time because the limit is 1,000 queries per day and I may have 25,000. That's rare, normally it's a few hundred, but I have to allow for the max.

I could get, say, 50 at a time to be safe, but before I go down that route, is there any experience here of the maximum safe size of queries?

I am doing this in VBA using MSXML2.XMLHTTP

TIA

Was it helpful?

Solution

A respondent ID is completely unique and only retrieves the one response to a given survey.

When you call get_respondent_list you retrieve a list of respondent ids (and associated metadata), and can then feed as many or as little of these as you want into get_responses to get the responses associated with these respondent ids.

For a survey with 25,000 respondents, you can make 25 requests to get all the respondent ids (1000 at at time), then make 250 requests to get the actual response data (there is a limit of 100 responses at a time).

You should be able to get any amount up to our limits - we have structured limits to our API (like the page size above, max of 200 questions in a survey, etc) to ensure that the data in the response is not too big and that the system can handle it.

We have a specific page about general limits here: https://developer.surveymonkey.com/mashery/limits and the documentation for each API method documents any specific limits for that method, e.g. https://developer.surveymonkey.com/mashery/get_respondent_list and https://developer.surveymonkey.com/mashery/get_responses

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top