https://www.assist.org/api/AcademicYears Returns json list of years and year ID’s (this can be hardcoded math instead)

https://www.assist.org/api/institutions Returns list of institutions

import requests
import json
response = requests.get('https://www.assist.org/api/institutions')
institutions = json.loads(response.text)
print()

https://www.assist.org/api/institutions/11/agreements Returns list of institutions with agreements to institution 11

https://www.assist.org/api/agreements?receivingInstitutionId=11&sendingInstitutionId=5&academicYearId=75&categoryCode=major Returns list of majors and ID’s for institution 511

https://www.assist.org/api/articulation/Agreements?Key=75/5/to/11/Major/47164797-2cc9-4ba3-13cb-08dcbcdb53de Returns articulations and catalog year info

  • Data under key “articulations” is itself a json structure which contains actually useful information
{
    "templateCellId": "bcb556be-6f96-45aa-2729-08dcbcdb53ef",
    "articulation": {
      "type": "Course",
      "course": {
        "courseIdentifierParentId": 351833,
        "courseTitle": "General Physics III",
        "courseNumber": "143",
        "prefix": "PHYS",
        "prefixParentId": 192,
        "prefixDescription": "Physics",
        "departmentParentId": 10752,
        "department": "Physics",
        "begin": "F2022",
        "end": "",
        "minUnits": 4,
        "maxUnits": 4,
        "pathways": []
      },
      "visibleCrossListedCourses": [],
      "courseAttributes": [],
      "sendingArticulation": {
        "noArticulationReason": null,
        "deniedCourses": [],
        "items": [
          {
            "courseConjunction": "And",
            "items": [
              {
                "visibleCrossListedCourses": [],
                "requisites": [],
                "attributes": [],
                "courseIdentifierParentId": 281715,
                "courseTitle": "Physics with Calculus II",
                "courseNumber": "260",
                "prefix": "PHYS",
                "prefixParentId": 185,
                "prefixDescription": "Physics",
                "departmentParentId": 10748,
                "department": "Physics",
                "begin": "F1995",
                "end": "",
                "minUnits": 4,
                "maxUnits": 4,
                "pathways": [],
                "publishedCourseIdentifierYearTermId": null,
                "position": 0,
                "type": "Course"
              }
            ],
            "attributes": [],
            "position": 0,
            "type": "CourseGroup"
          }
        ],
        "courseGroupConjunctions": [],
        "type": "SendingArticulation",
        "attributes": []
      },
      "templateOverrides": [],
      "attributes": [],
      "receivingAttributes": []
    },
    "receivingAttributes": {
      "type": "Course",
      "courseAttributes": [],
      "attributes": []
    }
  }

Articulations[0]

{
  "templateCellId": "1bf5b213-4e1b-4b6e-272c-08dcbcdb53ef",
  "articulation": {
    "type": "Course",
    "course": {
      "courseIdentifierParentId": 281890,
      "courseTitle": "Calculus I",
      "courseNumber": "141",
      "prefix": "MATH",
      "prefixParentId": 9918,
      "prefixDescription": "Mathematics",
      "departmentParentId": 8956,
      "department": "Mathematics",
      "begin": "F2000",
      "end": "",
      "minUnits": 4.0,
      "maxUnits": 4.0,
      "pathways": []
    },
    "visibleCrossListedCourses": [
      {
        "courseIdentifierParentId": 357056,
        "courseTitle": "Calculus I",
        "courseNumber": "141",
        "prefix": "HNRS",
        "prefixParentId": 16,
        "prefixDescription": "Honors",
        "departmentParentId": 7099,
        "department": "Honors",
        "begin": "F2015",
        "end": "",
        "minUnits": 4.0,
        "maxUnits": 4.0,
        "pathways": []
      }
    ],
    "courseAttributes": [],
    "sendingArticulation": {
      "noArticulationReason": null,
      "deniedCourses": [],
      "items": [
        {
          "courseConjunction": "And",
          "items": [
            {
              "visibleCrossListedCourses": [],
              "requisites": [],
              "attributes": [],
              "courseIdentifierParentId": 280590,
              "courseTitle": "Calculus with Analytic Geometry I",
              "courseNumber": "251",
              "prefix": "MATH",
              "prefixParentId": 9912,
              "prefixDescription": "Mathematics",
              "departmentParentId": 8950,
              "department": "Mathematics",
              "begin": "F1995",
              "end": "",
              "minUnits": 5.0,
              "maxUnits": 5.0,
              "pathways": [],
              "publishedCourseIdentifierYearTermId": null,
              "position": 0,
              "type": "Course"
            }
          ],
          "attributes": [],
          "position": 0,
          "type": "CourseGroup"
        }
      ],
      "courseGroupConjunctions": [],
      "type": "SendingArticulation",
      "attributes": []
    },
    "templateOverrides": [],
    "attributes": [],
    "receivingAttributes": []
  },
  "receivingAttributes": {
    "type": "Course",
    "courseAttributes": [],
    "attributes": []
  }
}
 

Taken Classes upload format

Classes:
  - Calculus 1: null
    institutionID: 4
    department: MATH
    courseNumber: 251
    credits: 5
    points: 20
    inProgress: false
  - Calculus 2: null
    institutionID: 4
    department: MATH
    courseNumber: 252
    credits: 5
    inProgress: true

Feature requests

  • Alphabetic order for dropdowns
  • yaml box biggerify
  • fix/mitigate needing to reselect major to view results