Redirecting to our new School API documentation.

Migrating from ON API to SKY API

Below is a table of ON API endpoints and their corresponding SKY API endpoints. This list will grow as we develop more endpoints and is roughly in order of development.

Please post your feedback in the School API Developer Community.

Questions/comments about endpoint development priority should go in this post.

Reminder: Keep in mind the number of endpoints will grow as we make progress converting the older endpoints to SKY API. Don't forget to check the FAQ.

Important: These routes are subject to change. To view the documentation for the proposed SKY API routes, you must be a member of the Closed Beta, and signed in with your Blackbaud Developer Account or you will see an error page.

Migration Paths

Users GET /user/address /users/{user_id}/addresses
Academics GET /assignment/forsection/{sectionId} /academics/sections/{section_id}/assignments
Users GET /user/education /users/{user_id}/education
Users GET /user/occupation /users/{user_id}/occupations
Users GET /user/phone /users/{user_id}/phonenumbers
Users GET /role/ListAll /school/roles
School Info GET /schoolinfo/schoollevel /school/levels
School Info GET /schoolinfo/allschoolyears /school/years
Academics GET /academics/section /academics/sections
Users PATCH /user/address/{addressId} /users/{user_id}/addresses/{address_id}
Users GET /user/all /users
Users GET /user/relationshipsettings/{userId} /users/{user_id}/relationships
Users GET /user/{userId} /users/{user_id}
Users PATCH /user/userId /users
Users GET /user/UserChanged /export/users/changed
Users GET /user/UserFullSync /export/users/full
School Info GET /schoolinfo/gradelevel /school/gradelevels
School Info GET /schoolinfo/term /school/terms
Users GET /user/phone/types /users/phonetypes
Academics GET /academics/enrollment /academics/sections/{section_id}/students
Academics POST /academics/enrollment /academics/sections/{section_id}/students
Athletics GET /athletics/roster /athletics/teams/{team_id}/players
Athletics GET /athletics/scoreboard /athletics/teams/{team_id}/schedule
Athletics GET /athletics/sport /athletics/sports
Athletics GET /athletics/team /athletics/teams
Academics GET /assignment/TypesForSection /academics/sections/{section_id}/assignmenttypes
Academics GET /academics/course /academics/courses
Academics GET /AssignmentType/All /academics/assignmenttypes
Academics POST /academics/assignmentgrade /academics/sections/{section_id}/assignments/{assignment_id}/grades
Academics GET /academics/department /academics/departments
Academics POST /assignment2 /academics/sections/{section_id}/assignments
Academics POST /Registration/EnrollInSchool /school/enroll
Academics GET /academics/TeacherSection /academics/sections
Academics POST /studentenrollment/dropchange /academics/sections/{section_id}/students/{student_id}/unenroll
Admissions GET /AdmChecklist/List /admissions/checklists
Admissions POST /admissions/createcandidatefromuser /admissions/createcandidate
Athletics GET /athletics/location/{locationId} /athletics/locations/{location_id}
Athletics POST /athleticlocation/crud /athletics/locations
Academics GET /academics/AssignmentGrade /academics/sections/{section_id}/assignments/{assignment_id}/grades
Athletics POST /AthleticOpponent/edit /athletics/opponents
Athletics POST /athleticschedule/gamecreate /athletics/teams/{team_id}/schedule
Athletics PATCH /athleticschedule/gameupdate /athletics/teams/{team_id}/schedule
Users GET /datasync/EmergencyContactChangesGet /export/users/emergencycontacts
Users GET /user/address/types /users/addresstypes
Users GET /user/address/share/{addressId} /users/{user_id}/addresses/{address_id}/shares
Users PATCH /user/address/share/{addressId} /users/{user_id}/addresses/{address_id}/shares
Users POST /user/addressforuser /users/{user_id}/addresses
Users DELETE /user/address/{addressId} /users/{user_id}/addresses/{id}
Users PATCH /user/educationbyid /users/{user_id}/education
Users POST /user/educationforuser /users/{user_id}/education
Users GET /user/emergencycontactemail /users/{user_id}/emergencycontacts/emailaddresses
Users GET /user/emergencycontactphone /users/{user_id}/emergencycontacts/phonenumbers
Users PATCH /user/occupationbyid /users/{user_id}/occupations
Users POST /user/occupationforuser /users/{user_id}/occupations
Users GET /user/phone/share/{phoneId} /users/{user_id}/phonenumbers/{phone_id}/shares
Users PATCH /user/phone/share/{phoneId} /users/{user_id}/phonenumbers/{phone_id}/shares
Users PATCH /user/phone/{phoneId} /users/{user_id}/phonenumbers/{phone_id}
Users POST /user/PhoneForUser /users/{user_id}/phonenumbers/{phone_id}
Users DELETE /user/phone/{phoneId} /users/{user_id}/phonenumbers/{phone_id}
Users POST /user/relationship /users/{user_id}/relationships/{relationship_id}
Users DELETE /user/relationship /users/{user_id}/relationships/{relationship_id}