What's New in API v2.0

Here is a full changelog of what has been added, changed, and removed in API v2.0.

Identity API

Changed

  • /me for the SecureSync and SecureSync Lite access tiers now returns just id, district, type

Data API

Added

  • GET /oauth/tokens now supports district param to get token for one district
  • Courses and Terms as top level objects
    • Courses
      • /courses
      • /courses/{id}
      • /courses/{id}/district
      • /courses/{id}/sections
    • Terms
      • /terms
      • /terms/{id}
      • /terms/{id}/district
      • /terms/{id}/sections
  • New endpoints:
    • /contacts/{id}/students - Now contacts can be associated with multiple students
    • /sections/{id}/term
    • /sections/{id}/course
    • /teachers/{id}/schools
    • /students/{id}/schools
    • /district_admins/{id}/district
    • /school_admins/{id}/district
  • limit, starting_after, ending_before params can be used on all plural endpoints
  • Paging links for /district_admins

Changed

  • /students/{id}/teachers now returns co-teachers as well as primary teachers
  • /students/{id}/teachers can now return up to 10 teachers (previous limit of 4)
  • Consistent checks for invalid param usage
  • /district_admins response format now matches other plural endpoints without the use of show_links param
  • /students/{id}/contacts response format now matches other plural endpoints
  • /districts/{id} now also returns, if present:
    • nces_id
    • state (previously found at /districts/{id}/status)
    • last_sync (previously found at /districts/{id}/status)
    • launch_date (previously found at /districts/{id}/status)
    • error (previously found at /districts/{id}/status)
    • sis_type (previously found at /districts/{id}/status)
    • pause_start (previously found at /districts/{id}/status)
    • pause_end (previously found at /districts/{id}/status)
  • Sections objects
    • Moved to Term object:
      • term.name
      • term.start_date
      • term.end_date
    • Moved to Course object
      • course_name
      • course_number
    • Added:
      • course (id for Course object), if present
      • term_id (id for Term object), if present
  • Contact phone_type, type and relationship are now normalized, if present
    • phone_type: [Home, Work, Cell, Other]
    • type: [Parent/Guardian, Emergency, Primary, Secondary, Family, Other]
    • relationship: [Parent, Grandparent, Sibling, Aunt/Uncle, Self, Other]

Removed

  • Allowlisted params/endpoints in v1.x
  • include param
  • where param
  • show_links param
  • Old-style paging data from responses
  • Removed endpoints:
    • /teachers/{id}/grade_levels
    • /contacts/{id}/student - replaced by /contacts/{id}/students
    • Removed second level districts endpoints:
      • /districts/{id}/admins
      • /districts/{id}/schools
      • /districts/{id}/teachers
      • /districts/{id}/students
      • /districts/{id}/sections
      • /districts/{id}/status
  • course_description field on Sections
  • instant_login field from District Status endpoint was not moved to District endpoint
  • google_apps.email field on Teachers and Students

Fixed

  • Date/Time consistency:
    • Student DOB continues to be MM/DD/YYYY format
    • Other dates: YYYY-MM-DD
      • Term start_date and end_date
      • District launch_date, pause_start, pause_end
    • District last_sync: YYYY-MM-DDTHH:MM:SS.SSSZ

Events API

Added

  • Created/Updated/Deleted Events for Courses, Terms, and District Admins
  • Updated events for Contacts now that they are more stable
  • school param - to retrieve events associated with a particular school including schools.*, schooladmins.*, teachers.*, students.*, sections.*. School may not be the primary school for these records.
  • record_type param - an array of record types to get events for, e.g. record_type=students&record_type=teachers

Removed

  • Allowlisted params/endpoints in v1.x
  • where param
  • Second level events endpoints:
    • /districts/{id}/events
    • /schools/{id}/events
    • /teachers/{id}/events
    • /students/{id}/events
    • /sections/{id}/events
    • /school_admins/{id}/events