FORMAT: 1A HOST: https://*-insight.symplicity.com/api # Insight API Documentation The Insight REST API is designed to have predictable URLs and to use HTTP response codes to indicate API errors. JSON will be returned in all responses from the API, excluding errors which will be returned in html. ## API Call Limits + Rate limiting of the API's are per-token basis. There are two effective rate limiters + 100 calls with a leak rate of 10 calls per second. If your app averages up to 10 calls per second it will never receive a "429 Rate Limit Exceeded Error". + 10,000 calls for a period of 24 hours, which will reset at midnight. + 1 bulk update call at a time. + All Responses will consists of 3 rate limiting headers + X-Rate-Limit-Limit : Total rate limit for all calls in a day + X-Rate-Limit-Remaining : The number of requests left for the day + X-Rate-Limit-Reset : Time before the rate limit resets in UTC ## Authentication Authentication for the API server is defined below. All routes require authentication. + Headers + Authorization: Basic abcd1234 ## Restrictions Only third party companies who are official Partners within the Symplicity Partner Program can access API(s). + Partner may not use or install the API(s) for any other purpose without Symplicity's written consent, and may not copy, rent, adapt, disassemble, lease, assign, sublicense, reverse engineer, modify or decompile, the API(s) or any part thereof or attempt to utilize any APIs which are not published for use by members of the Program. Partner may not utilize the APIs to provide data from the APIs to third party applications except those third parties with valid API licenses with Symplicity. + Partner may not utilize data provided from a Symplicity API to publish student or user data on any publicly accessible website or within a directory of such students or users or to sell, rent or otherwise provide such student or user data to third parties. + Partner may not utilize data provided from a Symplicity API to market or send communications to any student or user of Symplicity products unless Partner has obtained the explicit consent of each such individual in advance of such marketing and communications activity. ## Bulk Requests Adding `bulk=1` parameter to a PUT/POST request indicates that the request takes the form of a bulk payload which can include up to 100 records in a single POST/PUT request. The bulk payload is an array of regular request objects. The response to a bulk payload request will contain a `responses` attribute, which is an array of object responses sequenced in the same order as the objects were presented in the payload. If any payload record updates fail, corresponding objects in the responses array will include `errors` or `messages` attribute. Specific create (POST) bulk records in a payload are identical to regular create requests. Update (PUT) bulk request are different from regular update requests in that `id` of the record to update is not indicated in the route itself, but rather in each individual request in the array, along with other regular payload fields. ## Name Parsing API calls impacting record 'name' fields will be handled as follows. If only `fullName` is provided, it is parsed to `first/middle/lastName`. If `first/middle/lastName` fields are sent, but without full name, the `fullName` field is constructed. If `full/first/middle/lastName` are all provided, no parsing/construction occurs. If `fullName` and only some of the other name fields are provided, the missing name fields will be populated. Error will be presented if name components are not correctly provided. ### Example Method | HTTP request ------:| -------------------------------- GET | /api/v1/students GET | /api/v1/students/pick-values/counselors GET | /api/v1/addresses/pick-values/state GET | /api/v1/students/pick-values/major GET | /api/v1/students?customFields=1 GET | /api/v1/courses GET | /api/v1/courses?startDate=2018-01-01\|2018-05-05 GET | /api/v1/courses/{id}/student_schedules GET | /api/v1/courses/pick-values/days GET | /api/v1/student_schedules # Data Structures ## PickValue (object) + id: abc123 (string) - id of the pick value + label: Display Label (string) - label of the pick value ## PickList (array) + (PickValue) ## RelationObjectValueForPost (object) + id: abc123 (string) - id of the related Object ## date (string) Date strings when time is not relevant: `2017-01-09` ### Sample: 2017-01-09 ## time (string) Time strings when date is not relevant: `14:40:30` ### Sample: 14:40:30 ## datetime (string) Full datetime strings are in UTC format: `2017-01-09T14:40:30Z` ## integer (number) Whole numbers without a decimal point. ## decimal (string) Numbers with a decimal point that can not be represented as "floating point" because they require precision. ### Sample: 1.23 ## Bulk Response Base JSON (object) + responses (array) ## Update Response Error JSON (object) + errors (object) + field_errors (object) ## Collection Response Base JSON (object) + page: 1 (number) - Page returned + perPage: 20 (number) - Number of responses to returned per Page + total: 100 (number) - Total responses + className: class (string) - name of the backend data model ## RelationObject JSON (object) + id: abc123 (string) - id of the related Object + label: Display Label (string) - label of the related Object + link: href (string) - link to the related Object ## RelationObject (object) + id: abc123 (string) - id of the related Object + label: Display Label (string) - label of the related Object + link: href (string) - link to the related Object ## AddressRelationObject JSON (object) + street: 3003 Washington Blvd. STE900 (string) - Street + city: Arlington (string) - City + state (PickValue) - State + zip: 22201 - Zipcode + country (PickValue) - Country # DTO Definitions ## Symplicity\Accommodate\DTO\V1\Student JSON (object) + id: abc123 (string) - ID + label (string) - Label + schoolStudentId (string) - School Student ID + firstName (string) - First Name + middleName (string) - Middle Name + lastName (string) - Last Name + fullName (string) - Full Name + email (required, string) - Email Address + username (string) - Username + phone (string) - Phone Number + birthdate (date) - Date of Birth + status (array[PickValue]) - Status + alumni (boolean) - Is Alumni + address (AddressRelationObject JSON) - Address + permanentAddress (AddressRelationObject JSON) - Permanent Address + counselors (array[PickValue]) - Counselors + applicantType (array[PickValue]) - Applicant Type + degreeLevel (PickValue) - Degree Level + gpa : 3.4 (decimal) - Grade + graduationDate (date) - Graduation Date + major (array[PickValue]) - Major + programType (array[PickValue]) - Program Type + workAuthorization (PickValue) - Work Authorization + year (PickValue) - Year + cellphoneNum: 5711231234 (string) - Cellphone Number + mobileCarrier (PickValue) - Mobile Service Provider + receiveSMS (boolean) - Receive SMS notification + modified (datetime) - Modified ## Symplicity\Accommodate\DTO\V1\Course JSON (object) + id: abc123 (string) - ID + label (string) - Label + uniqueId (required, string) - Unique Course ID + title (string) - Title + code (string) - Course Code + description (string) - Description + type (PickValue) - Course Type + days (array[PickValue]) - Days + startDate (date) - Start Date + endDate (date) - End Date + startTime (time) - Start Time + endTime (time) - End Time + semester (required, PickValue) - Semester + creditHour (integer) - Credit Hour + faculty (array[RelationObject JSON]) - Faculty + modified (datetime) - Modified ## Symplicity\Accommodate\DTO\V1\CourseStudentSchedule JSON (object) + id: abc123 (string) - ID + label (string) - Label + course (RelationObject JSON) - Course + student (RelationObject JSON) - Student + enrolled (boolean) - Is Enrolled? + enrolledEndDate (date) - Enrolled End Date ## Symplicity\Accommodate\DTO\V1\StudentSchedule JSON (object) + id: abc123 (string) - ID + label (string) - Label + course (required, RelationObject JSON) - Course + student (required, RelationObject JSON) - Student + semester (PickValue) - Semester + enrolled (boolean) - Is Enrolled? + enrolledEndDate (date) - Enrolled End Date + modified (datetime) - Modified ## Symplicity\Accommodate\DTO\V1\Faculty JSON (object) + id: abc123 (string) - ID + label (string) - Label + schoolFacultyId (string) - School Faculty ID + title (date) - Title + firstName (string) - First Name + middleName (string) - Middle Name + lastName (string) - Last Name + fullName (string) - Full Name + email (required, string) - Email Address + username (string) - Username + phone (string) - Phone Number + fax (string) - Fax Number + departmentPhone (string) - Department Phone Number + facultyType (array[PickValue]) - Faculty Type + department (PickValue) - Department + major (array[PickValue]) - Major + accountDisabled (boolean) - Is Account Disabled + address (AddressRelationObject JSON) - Address + receiveEmail (boolean) - Receive Email Notification + modified (datetime) - Modified ## Symplicity\Accommodate\DTO\V1\DegreeProgram JSON (object) + id: abc123 (string) - ID + label (string) - Label + title (string) - Title + description (string) - Description + code (string) - code + version (string) - Version + level (PickValue) - Level + award (PickValue) - Award + mode (array[PickValue]) - Mode + area (array[PickValue]) - Subject Area + campus (array[PickValue]) - Campus + startDate (date) - Start Date + faculty (array[PickValue]) - Owning Faculty + coordinatorNames (array[PickValue]) - Coordinator Names + coordinatorEmails (array[PickValue]) - Coordinator Emails + courses (array[RelationObject JSON]) - Courses + modified (datetime) - Modified ## Symplicity\Accommodate\DTO\V1\DegreeProgramEnrolment JSON (object) + id: abc123 (string) - ID + label (string) - Label + student (RelationObject JSON) - Student + degreeProgram (RelationObject JSON) - Degree Program + gpa : 3.4 (decimal) - Grade Point Average + period (PickValue) - Teaching Period + status (PickValue) - Enrolment Status + campuses (array[PickValue]) - Campuses + attendanceMode (PickValue) - Attendance Mode + attendanceType (PickValue) - Attendance Type + studyAreas (array[PickValue]) - Study Areas + modified (datetime) - Modified ## Symplicity\Accommodate\DTO\V1\Address JSON (object) + id: abc123 (string) - Md5 ID + label (string) - Label + street (string) - Street Address + city (string) - City + state (PickValue) - State + zip (string) - Zip+4 + country (PickValue) - Country ## Report Job JSON (object) + id: abc123 (string) - Md5 ID + label (string) - Name of the report + description (string) - Description of the report + lastRun (datetime) - The date and time of the last report run ## Report Run JSON (object) + id: abc123 (string) - Md5 ID + label (string) - Name of the report + status (string) - Status of this report run + created (datetime) - The date and time report run was created ## Report Result JSON (object) + id: abc123 (string) - Md5 ID + label (string) - Name of the report + description (string) - Description of the report + status (string) - Status of this report run + created (datetime) - The date and time this report run was created + startTime (datetime) - The date and time this run started + elapsedTime (string) - Length of execution + headers (array[string]) - Data column names + data (array[array[string]]) - Report results + count (integer) - Number of data rows # Group Student The Student API group allows you to retrieve information on an individual student or list all students, as well as add and update students in the system. ## Student [/students] + Attributes (Symplicity\Accommodate\DTO\V1\Student JSON) ### List Students [GET /v1/students{?keyword,page,perPage,sort,field,customFields,unstartedApplication}] Returns a list of students + Parameters + keyword: foo (optional) - Search for students by schoolStudentId or username matching the keyword + page: 1 (number, optional) - Page number of the collection + perPage: 10 (number, optional) - Maximum number of records to return, up to 500 + Default: 20 + sort: username (optional) - Name of field to sort by in ascending order. Prepend ! to field name for descending sort. + field: value (varies, optional) - Field value to filter the collection by. For date and number fields, ranges can be searched using the pipe character '|'. + customFields: 1 (boolean, optional) - Gets an array of custom Student field/values in addition to the standard fields in the output + Response 200 (application/json;charset=UTF-8) + Attributes (Collection Response Base JSON) + models (array[Symplicity\Accommodate\DTO\V1\Student JSON]) ### Get Student [GET /v1/students/{id}] Returns information for a single student + Parameters + id: abc123 (string) - id of the requested Student + Response 200 (application/json;charset=UTF-8) + Attributes (Symplicity\Accommodate\DTO\V1\Student JSON) ### List Pick Values [GET /v1/students/pick-values/{field}] Returns list of pick values for the field given + Parameters + field: counselors (string) - Name of field with pick values for Student + Response 200 (application/json;charset=UTF-8) + Attributes (PickList) ### List Pick Values of Student Profile [GET /v1/students/student_profiles/pick-values/{field}] Returns list of pick values for the field given + Parameters + field: status, major, applicantType, degreeLevel, programType, workAuthorization, year (string) - Name of field with pick values for Student Profile + Response 200 (application/json;charset=UTF-8) + Attributes (PickList) ### List Pick Values of Address [GET /v1/addresses/pick-values/{field}] Returns list of pick values for the field given + Parameters + field: state, country (string) - Name of field with pick values for Address + Response 200 (application/json;charset=UTF-8) + Attributes (PickList) ### Create New Student [POST /v1/students] Create a new student using a student information and an optional content body. ::: warning The 'email' is required field with a field in System Setting - ‘Set Unique Identifier for Students’. And if it duplicates with the one in the system, it will not create a new student. Not allowed to update student's cellphoneNum, mobileCarrier and receiveSMS fields ::: ::: note Default student rights for a new student will be set based on the system setting, "Set Default Student Rights for Records Added by Managers". Custom fields for student and student profile can be set in the same level. If there is a naming conflict, the field from student will be used. In this example, 'nickname' is a custom field of student and 'minor' is a custom field of student profile. ::: + Request with address, studentProfile, counselors (application/json) + Body { "schoolStudentId": "3334", "firstName": "John", "middleName": "", "email": "s34@test.com", "lastName": "Henry", "fullName": "John Henry", "username": "", "phone": "1222", "birthdate": "1937-01-02", "alumni": false, "nickname": "john", "address": { "street": "1728 N Troy", "city": "Arlington", "state": "VA", "zip": "22201", "country": "US" }, "permanentAddress": { "street": "1028 Marview Ave", "city": "Los Angeles", "state": "CA", "zip": "90012", "country": "US" }, "status": ["17", "21"], "applicantType": ["3"], "degreeLevel": "2", "gpa": "3.4", "major": ["0264"], "programType": ["3"], "workAuthorization": "4", "year": "4", "graduationDate": "2017-05-05", "counselors" : ["ece015c97993bd05f2500502a870551c"], "minor": "Piano" } + Response 201 + Response 400 (application/json) + Body { "error": "A student with 's34@test.com' Email already exists in the system." } + Request without address, studentProfile, counselors (application/json) + Body { "schoolStudentId": "3334", "firstName": "John", "middleName": "", "email": "s34@test.com", "lastName": "Henry", "fullName": "John Henry", "username": "", "phone": "1222", "birthdate": "1937-01-02", "alumni": false } + Response 201 + Response 400 (application/json) + Body { "error": "A student with 's34@test.com' Email already exists in the system." } ### Update Student [PUT /v1/students/{id}] Update Student. ::: note When updating a multi-value field (eg. major), it will override with a new value. ::: + Request (application/json) + Body { "firstName": "Kenny" } + Response 200 (application/json) + Headers X-Request-ID: f72fc914 X-Response-Time: 4ms + Attributes (Symplicity\Accommodate\DTO\V1\Student JSON) ### Bulk Create Students [POST /v1/students?bulk=1] + Request (application/json;charset=UTF-8) + Body [ { "schoolStudentId": "def456", "firstName": "John", "middleName": "Brown", "lastName": "Doe", "email": "jbdoe@school.edu", "majors": ["0060"], "degreeLevel": "1", "graduationDate": "2022-06-11", "classLevel": "1", "workAuthorization": "1", "programType": ["3"], "applicantType": ["1"] }, { "firstName": "Student with missing fields" } ] + Response 201 (application/json;charset=UTF-8) + Attributes (Bulk Response Base JSON) + responses (array) + (Symplicity\Accommodate\DTO\V1\Student JSON) + (Update Response Error JSON) ### Bulk Update Students [PUT /v1/students?bulk=1] + Request (application/json;charset=UTF-8) + Body [ { "id": "abc123", "email": "mbsmith@school.edu", "majors": ["0040"], "degreeLevel": "2", "graduationDate": "2021-06-11", "classLevel": "2", "workAuthorization": "1", "programType": ["3"], "applicantType": ["1"] }, { "id": "def456", "email": "def.456@school.edu", "gpa": "3.0" } ] + Response 200 (application/json;charset=UTF-8) + Attributes (Bulk Response Base JSON) + responses (array[Symplicity\Accommodate\DTO\V1\Student JSON]) # Group Archived Student The Archived Student API group allows you to retrieve information on an individual archived student or list all archived students in the system. ## StudentArchive [/student_archives] + Attributes (Symplicity\Accommodate\DTO\V1\Student JSON) ### List Students [GET /v1/student_archives{?keyword,page,perPage,sort,field,customFields}] Returns a list of archived students + Parameters + keyword: foo (optional) - Search for students by schoolStudentId or username matching the keyword + page: 1 (number, optional) - Page number of the collection + perPage: 10 (number, optional) - Maximum number of records to return, up to 500 + Default: 20 + sort: username (optional) - Name of field to sort by in ascending order. Prepend ! to field name for descending sort. + field: value (varies, optional) - Field value to filter the collection by. For date and number fields, ranges can be searched using the pipe character '|'. + customFields: 1 (boolean, optional) - Gets an array of custom Student field/values in addition to the standard fields in the output + Response 200 (application/json;charset=UTF-8) + Attributes (Collection Response Base JSON) + models (array[Symplicity\Accommodate\DTO\V1\Student JSON]) ### Get Student [GET /v1/student_archives/{id}] Returns information for a single archived student + Parameters + id: abc123 (string) - id of the requested Student + Response 200 (application/json;charset=UTF-8) + Attributes (Symplicity\Accommodate\DTO\V1\Student JSON) # Group Course The Course API group allows you to retrieve information on an individual course or list all courses, as well as add and update courses in the system. ## Course [/v1/courses] + Attributes (Symplicity\Accommodate\DTO\V1\Course JSON) ### List Course [GET /v1/courses{?keyword,page,perPage,sort,field}] Returns a list of courses + Parameters + keyword: foo (optional) - Search for courses by title matching the keyword + page: 1 (number, optional) - Page number of the collection + perPage: 10 (number, optional) - Maximum number of records to return, up to 500 + Default: 20 + sort: username (optional) - Name of field to sort by in ascending order. Prepend ! to field name for descending sort. + field: value (varies, optional) - Field value to filter the collection by. For date and number fields, ranges can be searched using the pipe character '|'. + Response 200 (application/json;charset=UTF-8) + Attributes (Collection Response Base JSON) + models (array[Symplicity\Accommodate\DTO\V1\Course JSON]) ### Get Course [GET /v1/courses/{id}] Returns information for a single course ::: note Faculty will be shown if your system has the faculty module ::: + Parameters + id: abc123 (string) - id of the requested Course + Response 200 (application/json;charset=UTF-8) + Attributes (Symplicity\Accommodate\DTO\V1\Course JSON) ### List Pick Values [GET /v1/courses/pick-values/{field}] Returns list of pick values for the field given + Parameters + field: days, semester (string) - Name of field with pick values for Course + Response 200 (application/json;charset=UTF-8) + Attributes (PickList) ### Get Course's Student Schedules [GET /v1/courses/{id}/student_schedules] Return enrolled student schedules for a single course + Parameters + id: abc123 (string) - id of the requested Course + Response 200 (application/json;charset=UTF-8) + Attributes (array[Symplicity\Accommodate\DTO\V1\CourseStudentSchedule JSON]) ### Create New Course [POST /v1/courses] Create a new course. ::: warning If uniqueId and semester for this course already exists in the system, it will not be created in the system. ::: + Request (application/json) + Body { "title": "Finance 101", "faculty": [ "4cb3b4b6eaec2774ffb5ffc2d86a7e15", "25582e73f90d9a6e65071e40dc022425" ], "code": "", "description": "", "type": "1", "days": [ "1", "2" ], "startDate": "2018-01-02", "endDate": "2018-07-14", "startTime": "13:00:00", "endTime": "15:00:00", "semester": "c1b09cda6dfc84696c881608820ad010", "creditHour": "3", "uniqueId": "FIN072018" } + Response 201 + Response 400 (application/json) + Body { "error": "This course is already existing in the system (with uniqueId and semester)!" } ### Update Course [PUT /v1/courses/{id}] Update Course. ::: note When updating a multi-value field (eg. days, faculty), it will override with a new value. ::: + Request (application/json) + Body { "code": "FIN101", "description": "Financial Introduction", "days": ["1"], "faculty": [ "4cb3b4b6eaec2774ffb5ffc2d86a7e15" ] } + Response 200 (application/json) + Headers X-Request-ID: f72fc914 X-Response-Time: 4ms + Attributes (Symplicity\Accommodate\DTO\V1\Course JSON) ### Bulk Create Course [POST /v1/courses?bulk=1] + Request (application/json;charset=UTF-8) + Body [ { "title": "Finance 101", "days": ["1", "2"], "startDate": "2018-01-02", "endDate": "2018-07-14", "startTime": "13:00:00", "endTime": "15:00:00", "semester": "c1b09cda6dfc84696c881608820ad010", "creditHour": "3", "uniqueId": "FIN072018" }, { "title": "Course with missing fields" } ] + Response 201 (application/json;charset=UTF-8) + Attributes (Bulk Response Base JSON) + responses (array) + (Symplicity\Accommodate\DTO\V1\Course JSON) + (Update Response Error JSON) ### Bulk Update Courses [PUT /v1/courses?bulk=1] + Request (application/json;charset=UTF-8) + Body [ { "id": "abc123", "code": "FIN101" }, { "id": "def456", "code": "FIN102" } ] + Response 200 (application/json;charset=UTF-8) + Attributes (Bulk Response Base JSON) + responses (array[Symplicity\Accommodate\DTO\V1\Course JSON]) # Group Student Schedule The Student Schedule API group allows you to retrieve information on an individual course student schedule or list all student schedules, as well as add and update student schedules in the system. ## Student Schedule [/v1/student_schedules] + Attributes (Symplicity\Accommodate\DTO\V1\StudentSchedule JSON) ### List Student Schedule [GET /v1/student_schedules{?keyword,page,perPage,sort,field,customFields}] Returns a list of student_schedules + Parameters + keyword: foo (optional) - Search for student_schedules by title matching the keyword + page: 1 (number, optional) - Page number of the collection + perPage: 10 (number, optional) - Maximum number of records to return, up to 500 + Default: 20 + sort: username (optional) - Name of field to sort by in ascending order. Prepend ! to field name for descending sort. + field: value (varies, optional) - Field value to filter the collection by. For date and number fields, ranges can be searched using the pipe character '|'. + customFields: 1 (boolean, optional) - Gets an array of custom Course field/values in addition to the standard fields in the output + Response 200 (application/json;charset=UTF-8) + Attributes (Collection Response Base JSON) + models (array[Symplicity\Accommodate\DTO\V1\StudentSchedule JSON]) ### Get Student Schedule [GET /v1/student_schedules/{id}] Returns information for a single student course schedule + Parameters + id: abc123 (string) - id of the requested student schedule + Response 200 (application/json;charset=UTF-8) + Attributes (Symplicity\Accommodate\DTO\V1\StudentSchedule JSON) ### Create New Student Schedule [POST /v1/student_schedules] Create a new student schedule. ::: warning If the given course and student are not in the system or the student is already enrolled in it, you will receive an error. ::: ::: note "comment" field is a custom field in this example. ::: + Request (application/json) + Body { "course": "cb16bdc17af6f7a02067996493f9213f", "student": "3f5671a8b74f5b93f9c31baf81f17766", "enrolled": true, "comment": "test" } + Response 201 + Response 400 (application/json) + Body { "error": ["Student Already Enrolled"] } ### Update Student Schedule [PUT /v1/student_schedules/{id}] Update Student Schedule. ::: note It's not allowed to update course and student fields. ::: + Request (application/json) + Body { "enrolled": true, "comment": "test" } + Response 200 (application/json) + Headers X-Request-ID: f72fc914 X-Response-Time: 4ms + Attributes (Symplicity\Accommodate\DTO\V1\StudentSchedule JSON) ### Bulk Create Student Schedule [POST /v1/student_schedules?bulk=1] + Request (application/json;charset=UTF-8) + Body [ { "course": "6493f921cb16bdc17af6f7a02067993f", "student": "8b743f5671af5b93f9c31baf81f17766", "enrolled": true, "comment": "test" }, { "comment": "Student Schedule with missing fields" } ] + Response 201 (application/json;charset=UTF-8) + Attributes (Bulk Response Base JSON) + responses (array) + (Symplicity\Accommodate\DTO\V1\StudentSchedule JSON) + (Update Response Error JSON) ### Bulk Update Student Schedules [PUT /v1/student_schedules?bulk=1] + Request (application/json;charset=UTF-8) + Body [ { "id": "abc123", "enrolled" : true, "comment": "test 1" }, { "id": "def456", "enrolled" : false, "comment": "test 2" } ] + Response 200 (application/json;charset=UTF-8) + Attributes (Bulk Response Base JSON) + responses (array[Symplicity\Accommodate\DTO\V1\StudentSchedule JSON]) # Group Faculty The Faculty API group allows you to retrieve information on an individual faculty or list all faculty, as well as add and update faculty in the system. ::: note Faculty will be shown if your system has the faculty module ::: ## Faculty [/v1/faculty] + Attributes (Symplicity\Accommodate\DTO\V1\Faculty JSON) ### List Faculty [GET /v1/faculty{?keyword,page,perPage,sort,field,customFields}] Returns a list of faculty + Parameters + keyword: foo (optional) - Search for faculty by title matching the keyword + page: 1 (number, optional) - Page number of the collection + perPage: 10 (number, optional) - Maximum number of records to return, up to 500 + Default: 20 + sort: username (optional) - Name of field to sort by in ascending order. Prepend ! to field name for descending sort. + field: value (varies, optional) - Field value to filter the collection by. For date and number fields, ranges can be searched using the pipe character '|'. + customFields: 1 (boolean, optional) - Gets an array of custom Faculty field/values in addition to the standard fields in the output + Response 200 (application/json;charset=UTF-8) + Attributes (Collection Response Base JSON) + models (array[Symplicity\Accommodate\DTO\V1\Faculty JSON]) ### Get Faculty [GET /v1/faculty/{id}] Returns information for a single faculty ::: note Faculty will be shown if your system has the faculty module ::: + Parameters + id: abc123 (string) - id of the requested Faculty + Response 200 (application/json;charset=UTF-8) + Attributes (Symplicity\Accommodate\DTO\V1\Faculty JSON) ### List Pick Values [GET /v1/faculty/pick-values/{field}] Returns list of pick values for the field given + Parameters + field: major, department, facultyType (string) - Name of field with pick values for faculty + Response 200 (application/json;charset=UTF-8) + Attributes (PickList) ### Create New Faculty [POST /v1/faculty] Create a new faculty. ::: warning The 'email' is required field. And if it duplicates with the one in the system, it will not create a new faculty. ::: + Request (application/json) + Body { "schoolFacultyId": "3334", "firstName": "David", "middleName": "", "email": "fac1@test.com", "lastName": "Kin", "fullName": "David Kin", "username": "davkin", "title": "Dr.", "fax": "8417548965", "phone": "1222", "major": ["0040040", "0060"], "facultyType": ["2"], "address": { "street": "1029 Marview Ave", "city": "Los Angeles", "state": "CA", "zip": "90012", "country": "US" }, "receiveEmail": true, "accountDisabled": false, "department": "0060", "departmentPhone": "5714412895" } + Response 201 + Response 400 (application/json) + Body { "error": "A faculty with this email address already exists in the system." } ### Update faculty [PUT /v1/faculty/{id}] Update faculty. ::: note When updating a multi-value field (eg. major, facultyType), it will override with a new value. ::: + Request (application/json) + Body { "schoolFacultyId": "3334", "firstName": "David", "middleName": "", "email": "fac1@test.com", "lastName": "Kin", "username": "davkin", "fullName": "David Kin", "title": "Dr.", "fax": "8417548965", "phone": "1222", "departmentPhone": "5714412895", "major": ["0040040", "0060"], "facultyType": ["2"], "address": { "street": "1029 Marview Ave", "city": "Los Angeles", "state": "CA", "zip": "90012", "country": "US" } } + Response 200 (application/json) + Headers X-Request-ID: f72fc914 X-Response-Time: 4ms + Attributes (Symplicity\Accommodate\DTO\V1\Faculty JSON) ### Bulk Create Faculty [POST /v1/faculty?bulk=1] + Request (application/json;charset=UTF-8) + Body [ { "schoolFacultyId": "3334", "firstName": "David", "middleName": "", "email": "fac1@test.com", "lastName": "Kin", "fullName": "David Kin", "username": "davkin", "title": "Dr.", "fax": "8417548965", "phone": "1222", "major": ["0040040", "0060"], "facultyType": ["2"], "receiveEmail": true, "accountDisabled": false, "department": "0060", "departmentPhone": "5714412895" }, { "firstName": "Faculty with missing fields" } ] + Response 201 (application/json;charset=UTF-8) + Attributes (Bulk Response Base JSON) + responses (array) + (Symplicity\Accommodate\DTO\V1\Faculty JSON) + (Update Response Error JSON) ### Bulk Update Faculty [PUT /v1/faculty?bulk=1] + Request (application/json;charset=UTF-8) + Body [ { "id": "abc123", "title": "Dr." }, { "id": "def456", "fax": "8417548965" } ] + Response 200 (application/json;charset=UTF-8) + Attributes (Bulk Response Base JSON) + responses (array[Symplicity\Accommodate\DTO\V1\Faculty JSON]) # Group Report Data outputs generated using Accomodate reporting engine. A single report query can be saved as a "report job". Each execution of that report's settings, generates a "report run". The REST API allows for extraction of both types of reporting records. ## Report [/v1/reports] + Attributes (Report Job JSON) ### List Reports [GET /v1/reports{?perPage,page}] List existing report jobs. + Parameters + page: 1 (number, optional) - Page number of the collection. + perPage: 10 (number, optional) - Maximum number of records to return, up to 500. + Default: 20 + Response 200 (application/json;charset=UTF-8) + Attributes (Collection Response Base JSON) + className: csm_report + models (array[Report Job JSON]) ### Get Report Run Status [GET /v1/reports/{id}/status{?run}] Get the status and other basic information for a given report job run. If run is not specified, returns the last run. + Parameters + id: abc123 (string) - id of the requested record + run (optional, string) - id of a Report Run + Response 200 (application/json;charset=UTF-8) + Attributes (Report Run JSON) ### Get Report Run Details [GET /v1/reports/{id}/details{?run}] Get details of a given report job run. If run is not specified, returns the last run. + Parameters + id: abc123 (string) - id of the requested record + run (optional, string) - id of a Report Run + Response 200 (application/json;charset=UTF-8) + Attributes (Report Result JSON) ### Get Report Run Data [GET /v1/reports/{id}/data{?run,format}] Get results of a given report job. If run is not specified, returns the last run. + Parameters + id: abc123 (string) - id of the requested Report + run (optional, string) - id of a Report Run + format (optional, string) - data format to return + Members + `array` - JSON array (default) + `csv` - comma-separated values + `excel` - Microsoft® Excel spreadsheet + Response 200 (application/json;charset=UTF-8) + Attributes (array[array[string]]) ### Run Report [PUT /v1/reports/{id}/run] Start a new run of a given report job. + Parameters + id: abc123 (string) - id of the requested record + Response 200 (application/json;charset=UTF-8) + Attributes (Report Run JSON) ### Get Report Runs [GET /v1/reports/{id}/runs{?perPage,page}] Get a collection of previous runs of a given report job. + Parameters + id: abc123 (string) - id of the requested record + page (number, optional) - Page number of the collection. + perPage (number, optional) - Maximum number of records to return, up to 500. + Default: 20 + Response 200 (application/json;charset=UTF-8) + Attributes (Collection Response Base JSON) + className: report_result + models (array[Report Run JSON])