REST API support by survey monkey - surveymonkey

I am planning to do a survey using survey monkey. I will require API support to automatically pull responses from your datasource. I looked into https://developer.surveymonkey.com/docs/methods/get_responses/ and it looks like I need to use services like curl to extract data. It also looks like I can extract data in json format. And the data that is extracted using get_responses api, returns only ids.
So my questions are:
1. Do you support REST APIs to download data?
2. Can I download data in csv format?
3. Can I download actual responses with questions and not just ids? What APIs will be return survey, questions asked and user responses?
3. Can you send me an example format of how data will look when downloaded using the APIs?
5. Finally, with $26/month subscription for one month, will I get API support? Is the API support available for free subscription?
Thanks!!

SurveyMonkey does have a REST API
You can get all responses (just ids) doing:
GET /surveys/{survey_id}/responses
See: https://developer.surveymonkey.com/api/v3/#surveys-id-responses
You can get the details and all answers to questions for a specific response by ID doing:
GET /responses/{response_id}/details
See: https://developer.surveymonkey.com/api/v3/#responses-id
Or you can do this all at once by doing
GET /surveys/{id}/responses/bulk
See: https://developer.surveymonkey.com/api/v3/#surveys-id-responses-bulk

Answered by akand074.
We only support JSON at this time.
You'll have to make a separate GET to /v3/surveys/{survey_id}/details to get the survey details, and then map it to the response data.
The format, along with response data examples can be found here.
You'll have to contact api-support#surveymonkey.com to find out.

Related

SurveyMonkey API v3 survey list - example wrong and list unhelpfully brief

I am just starting converting an existing app from SurveyMonkey v2 API to v3.
I found the example response on the developer website for getting a survey list was incorrect - when I get a survey list it just contains ID, Title and URL for each survey. It would be good if that could be corrected for the benefit of others.
My app needs the survey list so that it can present the user with a list of the surveys they have access to, and my current version shows date_modified, number of responses and number of questions.
All of this information was available in a single call in v2 API but in v3 we seem to have to go on to do a call for each survey individually in order to get the date_modified and number of questions information and a further call to get the number of responses.
Thus the v3 API is much less efficient at giving us what we need than v2 was.
Is it possible that the V3 survey list could be enhanced to contain that additional information?
The docs need to be updated.
/v3/surveys?api_key=API_KEY&include=response_count,date_created,date_modified,language,question_count,analyze_url,preview
/v3/surveys/SURVEY_ID/collectors?api_key=API_KEY&include=type,status,response_count,date_created,date_modified,url

Limitations of Qualtrics API

With respect to the Qualtrics API (v3) documentation (https://api.qualtrics.com/docs/overview) there does not appear to be any means to send a GET request through a REST client to get the individual survey responses for a specific survey (I suppose that the developers figured that no would be interested in decoupling the survey results from the admin panel).
The reason why I would like to be able to submit a GET request to get survey results is for real-time data visualization purposes that do not depend on me exporting the data every so often to re-update the visualization. If Qualtrics does not support such a GET request, which service (perhaps SurveyMonkey or its ilk) best facilitates what I'm trying to build? Or do I have to build an entire survey module from scratch? (shudders)
I agree that v3.0 has some big short comings. I have no idea what they are thinking. There should be a way to retrieve a specific response using Response ID.
You can still use v2.5 of the api to do what you want.
SurveyMonkey has a REST API that allows you to fetch all your responses.
You can fetch all your responses by doing:
GET /v3/surveys/<survey_id>/responses
Which will give you a skinny payload (usually IDs only, and maybe a name or title but not in this case).
You can then get a specific response by doing:
GET /v3/responses/<response_id>
You can also fetch all responses as fatter payloads by doing:
GET /v3/surveys/<survey_id>/responses/bulk
Or, depending on your use case, for example if you have some visualization that you want to update in real-time without polling for responses you can set up a webhook.
POST /v3/webhooks
{
"name": "My Response Webhook",
"event_type": "response_completed",
"object_type": "survey",
"object_ids": ["<survey_id1>", "<survey_id2>", ...],
"subscription_url": "https://mycallback.url"
}
Where subscription_url is your callback url, and then whenever any new responses for the defined surveys come in you'll be notified to the subscription_url provided and you can then know to refresh your charts.
I have done that by getting contacts, in every contact there are object of Response history where you can get the information of a survey assigned to a respondents.

Twitter count with the new Twitter update

As of today, its not possible to fetch tweet counts. You can read more here:
https://blog.twitter.com/2015/hard-decisions-for-a-sustainable-platform
So almost all scripts/plugins wont work anymore. What would be best alternative solution with the new twitter buttons/updated API, if such exists?
For example, is there a callback, once user successfully shares something? Because i could use that to increase tweet count in my own database? So saving them locally.
To answer my own question based on findings:
For now its possible via http://opensharecount.com, they provide a drop-in replacement for the old private JSON URL based on searches made via the API (so you don't need to do all that work).
It's based on the REST API Search endpoints.

How should I get all the tweets of an specific hashtag?

I'm trying to develop some code in order to get all the tweets that were generated with certain hashtags, then parse them and finally analyse them. I believe I've already thought and solve the last two parts of this but I'm having some trouble with the first one. I've already read the Twitter Search API documentation but I haven't realised yet how to do this. Can anyone help me?
If you want to retrieve the tweets sent recently, you should use the search/tweets endpoint of twitter' REST API, and mention the hashtag inside q parameter
In case you want to listen to tweets containing the hashtag and receive them in real time, then twitter's streaming API is what you should use (statuses/filter endPoint).
Have a look at the documentation on twitter's website, there's also plenty of information on how to do this all around the web.

Get RSS feed of a Twitter hashtag

A client of mine wants to get an RSS feed for a twitter hashtag and include it in a list of other feeds from a variety of other sites.
I've Googled it all morning and I get a mix of answers. Some say it's possible, others say not anymore.
Could anyone shed some light on this?
Unfortunately, as of the API v1.1 upgrade on June 11th 2013, twitter now only gives responses in JSON. You can view the official announcement here.
That being said, I think you may need to think broader with your google searching ;)
Within 30 seconds, I found this, and it looks like exactly what you're looking for:
RSS readers cannot subscribe to JSON feeds. twitter-json-to-rss is a set of PHP scripts that you install on your public facing server that allows you to get around this problem.
Heres the library. Note this is entirely untested by myself, so you'll have to check it out.
Basically, you need to send an authenticated request to the twitter 1.1 API, get your data, then convert the returned json to RSS for your client.
If you're using PHP, this is the fastest post to help you get up to speed with requests to the 1.1 API in PHP.
It's not possible anymore. Twitter removed RSS feeds from their data formats and will require you to use their API to achieve that.

Resources