Skip to content

Python 3 library for interacting with Qualtrics' core survey API

License

Notifications You must be signed in to change notification settings

cwade/py_qualtrics_api

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

py_qualtrics_api

This package includes methods for using the Qualtrics API to:

  • Copy a survey
  • Delete a survey
  • Activate a survey
  • Create a mailing list
  • Delete a mailing list
  • Add contacts to a mailing list
  • Generate unique survey links for members of a mailing list
  • Create a message for the message library
  • Distribute a survey to a mailing list using a message from the message library

Installation

pip install py_qualtrics_api

Overview

Sample usage:

import py_qualtrics_api.tools as pq
import pandas as pd

q = pq.QualtricsAPI('config.yml')

# copy survey
sid = q.copy_survey('SV_0abc05URqqrhMOO', 'My new survey')

# delete survey
success = q.delete_survey(sid)

# copy survey, then activate the new survey
sid = q.copy_survey('SV_0abc05URqqrhMOO', 'My new survey')
success = q.activate_survey(sid)

# create mailing list and add records from a Pandas dataframe
# dataframe must contain an 'email' column (not case sensitive)
# other optional special columns are: 'firstname', 'lastname',
# 'externaldataref', 'unsubscribed' (defaults to false),
# 'language' (defaults to en)
# none of these special column names are case sensitive, so
# ExTeRnAlDaTaRef would be acceptable
mail_list = pd.read_csv('test_mailing_list.csv')
ml_id = q.create_mailing_list('New mailing list',
                              records_to_add=mail_list,
                              list_category='API')

# generate individual survey links for a mailing list
# optional parameter link_type defaults to 'Individual' but other
# valid values are 'Multiple' and 'Anonymous'
# return value is a pandas data frame of the core contact info with
# the following added columns: contactId, exceededContactFrequency,
# 'link', 'linkExpiration', 'status', 'unsubscribed'
links = q.get_links_for_mailing_list(sid, ml_id)

Sample config file (config.yml):

api_token: '4ru9we8fuper9ugergijergoijer34gierj876'
data_center: 'co1'
default_survey_owner: 'UR_3wjehoefof93s'
default_library_owner: 'UR_3wjehoefof93s'

If you don't wish to store your API token in the configuration file, you can omit that line. If the API token isn't present in the configuration file, you will be prompted for it when you create a QualtricsAPI object.

About

Python 3 library for interacting with Qualtrics' core survey API

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages