
This end-point is used to submit IDEA survey data (including specific IDEA form types used, responses, and extra questions).
Dates will be provided in ISO 8601 format. For example, 2012-02-13T01:34:52Z will be
used instead of February 2, 2012 1:34:52a UTC. This can be parsed in Java using the SimpleDateFormat and this pattern
"yyyy-MM-dd'T'HH:mm:ss'Z".
new java.text.SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z").format(new Date());
When re-submitting data, be sure to use the same source survey ID (src_id). This, along with the application, is used to determine if this is a new survey or an existing one. When it is an existing one, we invalidate the existing survey and reports and then store the new data (survey raw data and calculated report data).
https://api.ideasystem.org/v1/services/survey
"src_id": "1234""src_group_id": "1234""year": 2013"term": "Spring""includes_gap_analysis": false"creation_date": "2013-03-01T02:12:42Z""institution_id": 77893"course": { ... }Defines the course information when submitting survey data associated with course. This will include details like the time and days that the class meets, the course title, subject, and number, and a local code used for grouping in reports.
It is suggested that the course or course.section elements are filled out for the Student Ratings of Instruction (SRI) so that the survey's context can be determined. Both areas can have values but might be redundant.
"src_id": "012-3456-789""title": "Intro to Sociology""number": "101""subject": "BIO""time": "12:30""days": "MWF""local_code": "01 02 345""type": "undergraduate""delivery_mode": "online""term_type": "semester""start_date": "2017-01-24""end_date": "2017-05-10""section": { ... }When a survey is associated with only 1 section of a course, this portion can be populated to provide details on that course section. It is optional and can provide details on the source ID, number, subject, title, local code, delivery mode, start/end dates, and the meeting time/days.
It is suggested that the course or course.section elements are filled out for the Student Ratings of Instruction (SRI) so that the survey's context can be determined. Both areas can have values but might be redundant.
"src_id": "012-3456-789""title": "Intro to Sociology""number": "101""subject": "BIO""time": "12:30""days": "MWF""local_code": "01 02 345""delivery_mode": "online""start_date": "2017-01-24""end_date": "2017-05-10""info_form": { ... }"id": 12"start_date": "2013-03-01T00:00:01Z""end_date": "2013-03-10T23:59:59Z""discipline_code": "0203"Discipline codes are used on student ratings surveys. If not provided, the discipline values will not appear on the report. Discipline/Department Codes are listed at DisciplineCodes.
A list of supported Disciplines is available through the Data Portal
GET /disciplines REST end-point.
"program_code": "01.0603"Classification of Instructional Programs (CIP) code (available from the Department of Education).
A list of supported CIPs is available through the Data Portal
GET /cip REST end-point.
We currently support the 2010 version.
"number_asked": 1"respondents": [ ... ]"first_name": "Jane""last_name": "Doe""title": "Professor""position_code": 1"src_id": "01-234-5678-999""email": "test@some.institution.edu""sex": "female""role": "primary""appointment": "adjunct""employment_status": "full-time""races": [ ... ]"responses": [ ... ]"rater_form": { ... }"id": 12"start_date": "2013-03-01T00:00:01Z""end_date": "2013-03-10T23:59:59Z""number_asked": 25"respondents": [ ... ]
Note: If there are more respondents in this array than the value in
rater_form.number_asked an error will be returned and no data will be stored.
"responses": [ ... ]"group_type": "custom""custom_question_groups": [ ... ]If the survey was stored properly, the returned JSON will have a status of "SAVED" and a HTTP status code of 200. The data returned allows a client to map their IDs (passed in as id, group_id and returned as src_id and src_group_id) to the IDEA IDs (returned as id and group_id). The id and group_id will be useful later to query for reports (model and pdf) and report status.
If the survey was NOT stored properly, the returned JSON will have a status of "ERROR" and contain an error message. HTTP status code of 400 will be returned when unexpected JSON was posted. HTTP status code of 503 will be returned when a back-end error occurs.
"id": 1234"group_id": 1234"src_id": "1234""src_group_id": "1234""status": "SAVED"status_message should provide guidance if ERROR is returned.
"status_message": "The database was unreachable; try again later."status is set to ERROR.
It will be human readable and have as much detail as can reasonably be provided.
POST /v1/services/survey
{
"src_id": "123", // Source's survey ID (must be globaly unique within source system).
"src_group_id": "234", // Source's survey group ID.
"year": 2012,
"term": "09/03/2012", // This can be any text (e.g., Fall, Spring, January)
"includes_gap_analysis": false //always false for student ratings data
"creation_date": "2012-04-05T05:00:00Z",
"institution_id": 4455, //Uniquely identifies a institution in the IDEA system (retrieved from the GET /institution REST end-point).
"course": {
"local_code": "012345", // Institution defined local code
"title": "Introduction to REST APIs",
"number": "101",
"days": "MWF",
"time": "14:30",
"src_id": "01-23456789-0011",
"subject": "REST",
"type": "undergraduate",
"delivery_mode": "Face to Face",
"term_type": "semester",
"start_date": "2017-01-01",
"end_date": "2017-05-01",
"section": {
"src_id": "01-23456789-0012",
"subject": "REST",
"title": "RESTful APIs Lab",
"number": "101a",
"delivery_mode": "hybrid",
"local_code": "54321", // Institution defined local code
"days": "TU",
"time": "08:30",
"start_date": "2017-01-01",
"end_date": "2017-05-01"
}
},
"info_form":
{
"id": 1, //Identifies which IDEA form this is (retrieved from the GET /forms REST end-point).
"start_date": "2012-04-05T00:00:00Z",
"end_date": "2012-04-15T00:00:00Z",
"discipline_code": "1603",
"program_code": "01.0603", // defines the Classification of Instructional Program code for this survey
"number_asked": 1,
"respondents":
[
{
"first_name": "Test",
"last_name": "Subject",
"title": "Dean",
"position_code": 12,
"src_id": "0123-4567890",
"email": "some.person@institution.edu",
"role": "primary",
"employment_status": "full-time",
"appointment": "tenured",
"races": [
"Hispanic",
"Pacific Islander"
],
"responses":
[
{
"question_id": 123,
"answer": "3"
}, ...
]
}
]
},
"rater_form":
{
"id": 9, //Identifies which IDEA form this is (retrieved from the GET /forms REST end-point).
"start_date": "2012-04-05T00:00:00Z",
"end_date": "2012-04-15T00:00:00Z",
"custom_question_groups":
[
{
"number": 7,
"type": "open",
"title": "Open Question Group Title",
"message": "This is an open question group message",
"response_options":[],
"questions":
[
{
"number": 1,
"text": "This is an open question 1",
"type": "open"
}
]
},
{
"number": 8,
"type": "scaled",
"title": "Scaled Question Group Title",
"message": "This is a scaled question group message",
"response_options":
[
{
"value": 1,
"description": "This is option 1",
"abbreviation": "O1",
"is_excluded": false
},
{
"value": 2,
"description": "This is option 2",
"abbreviation": "O2",
"is_excluded": false
},
{
"value": 3,
"description": "This is option 3",
"abbreviation": "O3",
"is_excluded": false
},
{
"value": 4,
"description": "Cannot Judge",
"abbreviation": "CJ",
"is_excluded": true
}
],
"questions":
[
{
"number": 1,
"text": "This is a scaled question 1",
"type": "scaled"
}, ...
]
},...
],
"number_asked": 23,
"respondents":
[
{
"responses":
[
{
"question_id": 234,
"answer": "3"
}, ...
{
"group_type": "custom",
"group_number": 8,
"question_number": 1,
"answer": "1"
}, ...
]
}, ...
]
}
}
HTTP 200
{
"id": 6543, //IDEA survey ID
"group_id": 7654, //IDEA survey group ID
"src_id": "123", // Source (where this survey originaly came from) survey ID
"src_group_id": "234", //Source (where this survey originaly came from) survey group ID
"status": "SAVED",
"status_message": ""
}