User Information System

To import your user data into SurveyMonkey Apply, we require a CSV file to be sent via HTTP POST to the following URL:

POST <YOUR_SITE_URL>/api/uis/import/

If you have preconfigured an attribute mapping within the administrative tools of SurveyMonkey Apply, the URL will change to the following format (this URL is available via the SIS page in your administrative tools):

POST <YOUR_SITE_URL>/api/uis/import/<unique_id>/

Examples

An example using curl is as follows:

curl {UIS URL} -X POST --data-binary @filename.csv -H "Content-type:text/plain; charset=utf-8"

An example using python-requests is as follows:

with open('filename.csv') as csv_file:
    result = requests.post(uis_url, data=csv_file.read().encode('utf8')).json()

The CSV file

This file will need to contain at least the user’s email address and optionally your unique identifier. Columns named “First name” or “Last name” will automatically be mapped to the user’s first and last names respectively. All other columns will be mapped to automatically created metadata fields.

The following shows a CSV file using email address as the unique identifier:

Email,First name,Last name,Student ID,GPA
john@example.com,John,Smith,12345,3.2
jane@example.com,Jane,Doe,23456,3.2

And the following shows a CSV file using Student ID as the unique identifier:

Student ID,Email,First name,Last name,GPA
12345,john@example.com,John,Smith,3.2
23456,jane@example.com,Jane,Doe,3.2

Either API call will return a JSON response with information about this job:

{
        "success": true,
        "job_id": "zkxQKrxBnzsQP7n7d2NDTSRvBMFH9S"
}

Processing time

UIS import jobs will be queued in the background and processed in parallel. To check the status of a job, you can do the following:

GET /api/uis/job/<JOB_ID>/

This URL will return a response similar to the following:

{
        "job_id": "zkxQKrxBnzsQP7n7d2NDTSRvBMFH9S",
        "processed": 100,
        "source": "URL Post",
        "errors": [
                // List of errors that may have occurred
        ],
        "warnings": [
                // List of warnings that may have occurred
        ]
}