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