{"openapi":"3.1.0","info":{"title":"UW Courses document API","version":"1.0.0","description":"Read-only course, instructor, department, discovery and prerequisite-map documents. JSON and Markdown share the website loaders. Dataset revision and model provenance are preserved. Additional imported fields are JSON values. Paged /api interaction endpoints are included; linked /data evidence files are immutable dataset assets."},"servers":[{"url":"https://uwcourses.com"}],"paths":{"/index.json":{"get":{"operationId":"index_json","summary":"Home as JSON","tags":["Home"],"parameters":[],"responses":{"200":{"description":"Public document from the pinned dataset.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HomeDocument"}}},"headers":{"ETag":{"schema":{"type":"string"},"description":"Present on cacheable production GET responses."}}},"304":{"description":"Cached document matches If-None-Match."},"307":{"description":"Ambiguous alias; follow Location to discovery.","headers":{"Location":{"schema":{"type":"string"}}}},"308":{"description":"Canonical identifier; follow Location.","headers":{"Location":{"schema":{"type":"string"}}}},"400":{"description":"Invalid query."},"404":{"description":"Document not found."},"503":{"description":"Dataset unavailable."}}}},"/index.md":{"get":{"operationId":"index_md","summary":"Home as Markdown","tags":["Home"],"parameters":[],"responses":{"200":{"description":"Public document from the pinned dataset.","content":{"text/markdown":{"schema":{"type":"string"}}},"headers":{"ETag":{"schema":{"type":"string"},"description":"Present on cacheable production GET responses."}}},"304":{"description":"Cached document matches If-None-Match."},"307":{"description":"Ambiguous alias; follow Location to discovery.","headers":{"Location":{"schema":{"type":"string"}}}},"308":{"description":"Canonical identifier; follow Location.","headers":{"Location":{"schema":{"type":"string"}}}},"400":{"description":"Invalid query."},"404":{"description":"Document not found."},"503":{"description":"Dataset unavailable."}}}},"/courses/{course}.json":{"get":{"operationId":"courses_course_json","summary":"Course as JSON","tags":["Course"],"parameters":[{"name":"course","in":"path","required":true,"schema":{"type":"string"},"description":"Canonical course code, e.g. COMPSCI_300."}],"responses":{"200":{"description":"Public document from the pinned dataset.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CourseDocument"}}},"headers":{"ETag":{"schema":{"type":"string"},"description":"Present on cacheable production GET responses."}}},"304":{"description":"Cached document matches If-None-Match."},"307":{"description":"Ambiguous alias; follow Location to discovery.","headers":{"Location":{"schema":{"type":"string"}}}},"308":{"description":"Canonical identifier; follow Location.","headers":{"Location":{"schema":{"type":"string"}}}},"400":{"description":"Invalid query."},"404":{"description":"Document not found."},"503":{"description":"Dataset unavailable."}}}},"/courses/{course}.md":{"get":{"operationId":"courses_course_md","summary":"Course as Markdown","tags":["Course"],"parameters":[{"name":"course","in":"path","required":true,"schema":{"type":"string"},"description":"Canonical course code, e.g. COMPSCI_300."}],"responses":{"200":{"description":"Public document from the pinned dataset.","content":{"text/markdown":{"schema":{"type":"string"}}},"headers":{"ETag":{"schema":{"type":"string"},"description":"Present on cacheable production GET responses."}}},"304":{"description":"Cached document matches If-None-Match."},"307":{"description":"Ambiguous alias; follow Location to discovery.","headers":{"Location":{"schema":{"type":"string"}}}},"308":{"description":"Canonical identifier; follow Location.","headers":{"Location":{"schema":{"type":"string"}}}},"400":{"description":"Invalid query."},"404":{"description":"Document not found."},"503":{"description":"Dataset unavailable."}}}},"/courses/easiest.json":{"get":{"operationId":"courses_easiest_json","summary":"Collection as JSON","tags":["Collection"],"parameters":[],"responses":{"200":{"description":"Public document from the pinned dataset.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CollectionDocument"}}},"headers":{"ETag":{"schema":{"type":"string"},"description":"Present on cacheable production GET responses."}}},"304":{"description":"Cached document matches If-None-Match."},"307":{"description":"Ambiguous alias; follow Location to discovery.","headers":{"Location":{"schema":{"type":"string"}}}},"308":{"description":"Canonical identifier; follow Location.","headers":{"Location":{"schema":{"type":"string"}}}},"400":{"description":"Invalid query."},"404":{"description":"Document not found."},"503":{"description":"Dataset unavailable."}}}},"/courses/easiest.md":{"get":{"operationId":"courses_easiest_md","summary":"Collection as Markdown","tags":["Collection"],"parameters":[],"responses":{"200":{"description":"Public document from the pinned dataset.","content":{"text/markdown":{"schema":{"type":"string"}}},"headers":{"ETag":{"schema":{"type":"string"},"description":"Present on cacheable production GET responses."}}},"304":{"description":"Cached document matches If-None-Match."},"307":{"description":"Ambiguous alias; follow Location to discovery.","headers":{"Location":{"schema":{"type":"string"}}}},"308":{"description":"Canonical identifier; follow Location.","headers":{"Location":{"schema":{"type":"string"}}}},"400":{"description":"Invalid query."},"404":{"description":"Document not found."},"503":{"description":"Dataset unavailable."}}}},"/courses/hardest.json":{"get":{"operationId":"courses_hardest_json","summary":"Collection as JSON","tags":["Collection"],"parameters":[],"responses":{"200":{"description":"Public document from the pinned dataset.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CollectionDocument"}}},"headers":{"ETag":{"schema":{"type":"string"},"description":"Present on cacheable production GET responses."}}},"304":{"description":"Cached document matches If-None-Match."},"307":{"description":"Ambiguous alias; follow Location to discovery.","headers":{"Location":{"schema":{"type":"string"}}}},"308":{"description":"Canonical identifier; follow Location.","headers":{"Location":{"schema":{"type":"string"}}}},"400":{"description":"Invalid query."},"404":{"description":"Document not found."},"503":{"description":"Dataset unavailable."}}}},"/courses/hardest.md":{"get":{"operationId":"courses_hardest_md","summary":"Collection as Markdown","tags":["Collection"],"parameters":[],"responses":{"200":{"description":"Public document from the pinned dataset.","content":{"text/markdown":{"schema":{"type":"string"}}},"headers":{"ETag":{"schema":{"type":"string"},"description":"Present on cacheable production GET responses."}}},"304":{"description":"Cached document matches If-None-Match."},"307":{"description":"Ambiguous alias; follow Location to discovery.","headers":{"Location":{"schema":{"type":"string"}}}},"308":{"description":"Canonical identifier; follow Location.","headers":{"Location":{"schema":{"type":"string"}}}},"400":{"description":"Invalid query."},"404":{"description":"Document not found."},"503":{"description":"Dataset unavailable."}}}},"/instructors/{instructor}.json":{"get":{"operationId":"instructors_instructor_json","summary":"Instructor as JSON","tags":["Instructor"],"parameters":[{"name":"instructor","in":"path","required":true,"schema":{"type":"string"},"description":"Canonical URL identifier."}],"responses":{"200":{"description":"Public document from the pinned dataset.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstructorDocument"}}},"headers":{"ETag":{"schema":{"type":"string"},"description":"Present on cacheable production GET responses."}}},"304":{"description":"Cached document matches If-None-Match."},"307":{"description":"Ambiguous alias; follow Location to discovery.","headers":{"Location":{"schema":{"type":"string"}}}},"308":{"description":"Canonical identifier; follow Location.","headers":{"Location":{"schema":{"type":"string"}}}},"400":{"description":"Invalid query."},"404":{"description":"Document not found."},"503":{"description":"Dataset unavailable."}}}},"/instructors/{instructor}.md":{"get":{"operationId":"instructors_instructor_md","summary":"Instructor as Markdown","tags":["Instructor"],"parameters":[{"name":"instructor","in":"path","required":true,"schema":{"type":"string"},"description":"Canonical URL identifier."}],"responses":{"200":{"description":"Public document from the pinned dataset.","content":{"text/markdown":{"schema":{"type":"string"}}},"headers":{"ETag":{"schema":{"type":"string"},"description":"Present on cacheable production GET responses."}}},"304":{"description":"Cached document matches If-None-Match."},"307":{"description":"Ambiguous alias; follow Location to discovery.","headers":{"Location":{"schema":{"type":"string"}}}},"308":{"description":"Canonical identifier; follow Location.","headers":{"Location":{"schema":{"type":"string"}}}},"400":{"description":"Invalid query."},"404":{"description":"Document not found."},"503":{"description":"Dataset unavailable."}}}},"/instructors/by-rating-count.json":{"get":{"operationId":"instructors_by_rating_count_json","summary":"Search as JSON","tags":["Search"],"parameters":[{"name":"q","in":"query","description":"Search text, up to 200 characters.","schema":{"type":"string","maxLength":200}},{"name":"page","in":"query","description":"One-based page; 30 results per page.","schema":{"type":"integer","minimum":1,"maximum":10000}},{"name":"term","in":"query","description":"UW term ID, e.g. 1272 (Fall 2026).","schema":{"type":"string","pattern":"^1\\d{2}[246]$"}},{"name":"availability","in":"query","description":"Whether courses must be offered in the selected term.","schema":{"type":"string","enum":["offered","all"]}},{"name":"subject","in":"query","description":"Course subject filter.","schema":{"type":"string"}},{"name":"instructor","in":"query","description":"Course instructor filter.","schema":{"type":"string"}},{"name":"level","in":"query","description":"Course level filter.","schema":{"type":"string"}},{"name":"credits_min","in":"query","description":"Course credits min filter.","schema":{"type":"string"}},{"name":"credits_max","in":"query","description":"Course credits max filter.","schema":{"type":"string"}},{"name":"gpa_min","in":"query","description":"Course gpa min filter.","schema":{"type":"string"}},{"name":"sort","in":"query","description":"Course sort filter.","schema":{"type":"string"}},{"name":"ranking","in":"query","description":"Course ranking filter.","schema":{"type":"string"}}],"responses":{"200":{"description":"Public document from the pinned dataset.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SearchDocument"}}},"headers":{"ETag":{"schema":{"type":"string"},"description":"Present on cacheable production GET responses."}}},"304":{"description":"Cached document matches If-None-Match."},"307":{"description":"Ambiguous alias; follow Location to discovery.","headers":{"Location":{"schema":{"type":"string"}}}},"308":{"description":"Canonical identifier; follow Location.","headers":{"Location":{"schema":{"type":"string"}}}},"400":{"description":"Invalid query."},"404":{"description":"Document not found."},"503":{"description":"Dataset unavailable."}}}},"/instructors/by-rating-count.md":{"get":{"operationId":"instructors_by_rating_count_md","summary":"Search as Markdown","tags":["Search"],"parameters":[{"name":"q","in":"query","description":"Search text, up to 200 characters.","schema":{"type":"string","maxLength":200}},{"name":"page","in":"query","description":"One-based page; 30 results per page.","schema":{"type":"integer","minimum":1,"maximum":10000}},{"name":"term","in":"query","description":"UW term ID, e.g. 1272 (Fall 2026).","schema":{"type":"string","pattern":"^1\\d{2}[246]$"}},{"name":"availability","in":"query","description":"Whether courses must be offered in the selected term.","schema":{"type":"string","enum":["offered","all"]}},{"name":"subject","in":"query","description":"Course subject filter.","schema":{"type":"string"}},{"name":"instructor","in":"query","description":"Course instructor filter.","schema":{"type":"string"}},{"name":"level","in":"query","description":"Course level filter.","schema":{"type":"string"}},{"name":"credits_min","in":"query","description":"Course credits min filter.","schema":{"type":"string"}},{"name":"credits_max","in":"query","description":"Course credits max filter.","schema":{"type":"string"}},{"name":"gpa_min","in":"query","description":"Course gpa min filter.","schema":{"type":"string"}},{"name":"sort","in":"query","description":"Course sort filter.","schema":{"type":"string"}},{"name":"ranking","in":"query","description":"Course ranking filter.","schema":{"type":"string"}}],"responses":{"200":{"description":"Public document from the pinned dataset.","content":{"text/markdown":{"schema":{"type":"string"}}},"headers":{"ETag":{"schema":{"type":"string"},"description":"Present on cacheable production GET responses."}}},"304":{"description":"Cached document matches If-None-Match."},"307":{"description":"Ambiguous alias; follow Location to discovery.","headers":{"Location":{"schema":{"type":"string"}}}},"308":{"description":"Canonical identifier; follow Location.","headers":{"Location":{"schema":{"type":"string"}}}},"400":{"description":"Invalid query."},"404":{"description":"Document not found."},"503":{"description":"Dataset unavailable."}}}},"/departments.json":{"get":{"operationId":"departments_json","summary":"Directory as JSON","tags":["Directory"],"parameters":[],"responses":{"200":{"description":"Public document from the pinned dataset.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DirectoryDocument"}}},"headers":{"ETag":{"schema":{"type":"string"},"description":"Present on cacheable production GET responses."}}},"304":{"description":"Cached document matches If-None-Match."},"307":{"description":"Ambiguous alias; follow Location to discovery.","headers":{"Location":{"schema":{"type":"string"}}}},"308":{"description":"Canonical identifier; follow Location.","headers":{"Location":{"schema":{"type":"string"}}}},"400":{"description":"Invalid query."},"404":{"description":"Document not found."},"503":{"description":"Dataset unavailable."}}}},"/departments.md":{"get":{"operationId":"departments_md","summary":"Directory as Markdown","tags":["Directory"],"parameters":[],"responses":{"200":{"description":"Public document from the pinned dataset.","content":{"text/markdown":{"schema":{"type":"string"}}},"headers":{"ETag":{"schema":{"type":"string"},"description":"Present on cacheable production GET responses."}}},"304":{"description":"Cached document matches If-None-Match."},"307":{"description":"Ambiguous alias; follow Location to discovery.","headers":{"Location":{"schema":{"type":"string"}}}},"308":{"description":"Canonical identifier; follow Location.","headers":{"Location":{"schema":{"type":"string"}}}},"400":{"description":"Invalid query."},"404":{"description":"Document not found."},"503":{"description":"Dataset unavailable."}}}},"/departments/{subject}.json":{"get":{"operationId":"departments_subject_json","summary":"Department as JSON","tags":["Department"],"parameters":[{"name":"subject","in":"path","required":true,"schema":{"type":"string"},"description":"Canonical URL identifier."}],"responses":{"200":{"description":"Public document from the pinned dataset.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DepartmentDocument"}}},"headers":{"ETag":{"schema":{"type":"string"},"description":"Present on cacheable production GET responses."}}},"304":{"description":"Cached document matches If-None-Match."},"307":{"description":"Ambiguous alias; follow Location to discovery.","headers":{"Location":{"schema":{"type":"string"}}}},"308":{"description":"Canonical identifier; follow Location.","headers":{"Location":{"schema":{"type":"string"}}}},"400":{"description":"Invalid query."},"404":{"description":"Document not found."},"503":{"description":"Dataset unavailable."}}}},"/departments/{subject}.md":{"get":{"operationId":"departments_subject_md","summary":"Department as Markdown","tags":["Department"],"parameters":[{"name":"subject","in":"path","required":true,"schema":{"type":"string"},"description":"Canonical URL identifier."}],"responses":{"200":{"description":"Public document from the pinned dataset.","content":{"text/markdown":{"schema":{"type":"string"}}},"headers":{"ETag":{"schema":{"type":"string"},"description":"Present on cacheable production GET responses."}}},"304":{"description":"Cached document matches If-None-Match."},"307":{"description":"Ambiguous alias; follow Location to discovery.","headers":{"Location":{"schema":{"type":"string"}}}},"308":{"description":"Canonical identifier; follow Location.","headers":{"Location":{"schema":{"type":"string"}}}},"400":{"description":"Invalid query."},"404":{"description":"Document not found."},"503":{"description":"Dataset unavailable."}}}},"/departments/{subject}/catalog.json":{"get":{"operationId":"departments_subject_catalog_json","summary":"Catalog as JSON","tags":["Catalog"],"parameters":[{"name":"subject","in":"path","required":true,"schema":{"type":"string"},"description":"Canonical URL identifier."}],"responses":{"200":{"description":"Public document from the pinned dataset.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CatalogDocument"}}},"headers":{"ETag":{"schema":{"type":"string"},"description":"Present on cacheable production GET responses."}}},"304":{"description":"Cached document matches If-None-Match."},"307":{"description":"Ambiguous alias; follow Location to discovery.","headers":{"Location":{"schema":{"type":"string"}}}},"308":{"description":"Canonical identifier; follow Location.","headers":{"Location":{"schema":{"type":"string"}}}},"400":{"description":"Invalid query."},"404":{"description":"Document not found."},"503":{"description":"Dataset unavailable."}}}},"/departments/{subject}/catalog.md":{"get":{"operationId":"departments_subject_catalog_md","summary":"Catalog as Markdown","tags":["Catalog"],"parameters":[{"name":"subject","in":"path","required":true,"schema":{"type":"string"},"description":"Canonical URL identifier."}],"responses":{"200":{"description":"Public document from the pinned dataset.","content":{"text/markdown":{"schema":{"type":"string"}}},"headers":{"ETag":{"schema":{"type":"string"},"description":"Present on cacheable production GET responses."}}},"304":{"description":"Cached document matches If-None-Match."},"307":{"description":"Ambiguous alias; follow Location to discovery.","headers":{"Location":{"schema":{"type":"string"}}}},"308":{"description":"Canonical identifier; follow Location.","headers":{"Location":{"schema":{"type":"string"}}}},"400":{"description":"Invalid query."},"404":{"description":"Document not found."},"503":{"description":"Dataset unavailable."}}}},"/departments/{subject}/easiest.json":{"get":{"operationId":"departments_subject_easiest_json","summary":"Collection as JSON","tags":["Collection"],"parameters":[{"name":"subject","in":"path","required":true,"schema":{"type":"string"},"description":"Canonical URL identifier."}],"responses":{"200":{"description":"Public document from the pinned dataset.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CollectionDocument"}}},"headers":{"ETag":{"schema":{"type":"string"},"description":"Present on cacheable production GET responses."}}},"304":{"description":"Cached document matches If-None-Match."},"307":{"description":"Ambiguous alias; follow Location to discovery.","headers":{"Location":{"schema":{"type":"string"}}}},"308":{"description":"Canonical identifier; follow Location.","headers":{"Location":{"schema":{"type":"string"}}}},"400":{"description":"Invalid query."},"404":{"description":"Document not found."},"503":{"description":"Dataset unavailable."}}}},"/departments/{subject}/easiest.md":{"get":{"operationId":"departments_subject_easiest_md","summary":"Collection as Markdown","tags":["Collection"],"parameters":[{"name":"subject","in":"path","required":true,"schema":{"type":"string"},"description":"Canonical URL identifier."}],"responses":{"200":{"description":"Public document from the pinned dataset.","content":{"text/markdown":{"schema":{"type":"string"}}},"headers":{"ETag":{"schema":{"type":"string"},"description":"Present on cacheable production GET responses."}}},"304":{"description":"Cached document matches If-None-Match."},"307":{"description":"Ambiguous alias; follow Location to discovery.","headers":{"Location":{"schema":{"type":"string"}}}},"308":{"description":"Canonical identifier; follow Location.","headers":{"Location":{"schema":{"type":"string"}}}},"400":{"description":"Invalid query."},"404":{"description":"Document not found."},"503":{"description":"Dataset unavailable."}}}},"/departments/{subject}/hardest.json":{"get":{"operationId":"departments_subject_hardest_json","summary":"Collection as JSON","tags":["Collection"],"parameters":[{"name":"subject","in":"path","required":true,"schema":{"type":"string"},"description":"Canonical URL identifier."}],"responses":{"200":{"description":"Public document from the pinned dataset.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CollectionDocument"}}},"headers":{"ETag":{"schema":{"type":"string"},"description":"Present on cacheable production GET responses."}}},"304":{"description":"Cached document matches If-None-Match."},"307":{"description":"Ambiguous alias; follow Location to discovery.","headers":{"Location":{"schema":{"type":"string"}}}},"308":{"description":"Canonical identifier; follow Location.","headers":{"Location":{"schema":{"type":"string"}}}},"400":{"description":"Invalid query."},"404":{"description":"Document not found."},"503":{"description":"Dataset unavailable."}}}},"/departments/{subject}/hardest.md":{"get":{"operationId":"departments_subject_hardest_md","summary":"Collection as Markdown","tags":["Collection"],"parameters":[{"name":"subject","in":"path","required":true,"schema":{"type":"string"},"description":"Canonical URL identifier."}],"responses":{"200":{"description":"Public document from the pinned dataset.","content":{"text/markdown":{"schema":{"type":"string"}}},"headers":{"ETag":{"schema":{"type":"string"},"description":"Present on cacheable production GET responses."}}},"304":{"description":"Cached document matches If-None-Match."},"307":{"description":"Ambiguous alias; follow Location to discovery.","headers":{"Location":{"schema":{"type":"string"}}}},"308":{"description":"Canonical identifier; follow Location.","headers":{"Location":{"schema":{"type":"string"}}}},"400":{"description":"Invalid query."},"404":{"description":"Document not found."},"503":{"description":"Dataset unavailable."}}}},"/search.json":{"get":{"operationId":"search_json","summary":"Search as JSON","tags":["Search"],"parameters":[{"name":"q","in":"query","description":"Search text, up to 200 characters.","schema":{"type":"string","maxLength":200}},{"name":"page","in":"query","description":"One-based page; 30 results per page.","schema":{"type":"integer","minimum":1,"maximum":10000}},{"name":"term","in":"query","description":"UW term ID, e.g. 1272 (Fall 2026).","schema":{"type":"string","pattern":"^1\\d{2}[246]$"}},{"name":"availability","in":"query","description":"Whether courses must be offered in the selected term.","schema":{"type":"string","enum":["offered","all"]}},{"name":"subject","in":"query","description":"Course subject filter.","schema":{"type":"string"}},{"name":"instructor","in":"query","description":"Course instructor filter.","schema":{"type":"string"}},{"name":"level","in":"query","description":"Course level filter.","schema":{"type":"string"}},{"name":"credits_min","in":"query","description":"Course credits min filter.","schema":{"type":"string"}},{"name":"credits_max","in":"query","description":"Course credits max filter.","schema":{"type":"string"}},{"name":"gpa_min","in":"query","description":"Course gpa min filter.","schema":{"type":"string"}},{"name":"sort","in":"query","description":"Course sort filter.","schema":{"type":"string"}},{"name":"ranking","in":"query","description":"Course ranking filter.","schema":{"type":"string"}}],"responses":{"200":{"description":"Public document from the pinned dataset.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SearchDocument"}}},"headers":{"ETag":{"schema":{"type":"string"},"description":"Present on cacheable production GET responses."}}},"304":{"description":"Cached document matches If-None-Match."},"307":{"description":"Ambiguous alias; follow Location to discovery.","headers":{"Location":{"schema":{"type":"string"}}}},"308":{"description":"Canonical identifier; follow Location.","headers":{"Location":{"schema":{"type":"string"}}}},"400":{"description":"Invalid query."},"404":{"description":"Document not found."},"503":{"description":"Dataset unavailable."}}}},"/search.md":{"get":{"operationId":"search_md","summary":"Search as Markdown","tags":["Search"],"parameters":[{"name":"q","in":"query","description":"Search text, up to 200 characters.","schema":{"type":"string","maxLength":200}},{"name":"page","in":"query","description":"One-based page; 30 results per page.","schema":{"type":"integer","minimum":1,"maximum":10000}},{"name":"term","in":"query","description":"UW term ID, e.g. 1272 (Fall 2026).","schema":{"type":"string","pattern":"^1\\d{2}[246]$"}},{"name":"availability","in":"query","description":"Whether courses must be offered in the selected term.","schema":{"type":"string","enum":["offered","all"]}},{"name":"subject","in":"query","description":"Course subject filter.","schema":{"type":"string"}},{"name":"instructor","in":"query","description":"Course instructor filter.","schema":{"type":"string"}},{"name":"level","in":"query","description":"Course level filter.","schema":{"type":"string"}},{"name":"credits_min","in":"query","description":"Course credits min filter.","schema":{"type":"string"}},{"name":"credits_max","in":"query","description":"Course credits max filter.","schema":{"type":"string"}},{"name":"gpa_min","in":"query","description":"Course gpa min filter.","schema":{"type":"string"}},{"name":"sort","in":"query","description":"Course sort filter.","schema":{"type":"string"}},{"name":"ranking","in":"query","description":"Course ranking filter.","schema":{"type":"string"}}],"responses":{"200":{"description":"Public document from the pinned dataset.","content":{"text/markdown":{"schema":{"type":"string"}}},"headers":{"ETag":{"schema":{"type":"string"},"description":"Present on cacheable production GET responses."}}},"304":{"description":"Cached document matches If-None-Match."},"307":{"description":"Ambiguous alias; follow Location to discovery.","headers":{"Location":{"schema":{"type":"string"}}}},"308":{"description":"Canonical identifier; follow Location.","headers":{"Location":{"schema":{"type":"string"}}}},"400":{"description":"Invalid query."},"404":{"description":"Document not found."},"503":{"description":"Dataset unavailable."}}}},"/explorer.json":{"get":{"operationId":"explorer_json","summary":"Directory as JSON","tags":["Directory"],"parameters":[],"responses":{"200":{"description":"Public document from the pinned dataset.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DirectoryDocument"}}},"headers":{"ETag":{"schema":{"type":"string"},"description":"Present on cacheable production GET responses."}}},"304":{"description":"Cached document matches If-None-Match."},"307":{"description":"Ambiguous alias; follow Location to discovery.","headers":{"Location":{"schema":{"type":"string"}}}},"308":{"description":"Canonical identifier; follow Location.","headers":{"Location":{"schema":{"type":"string"}}}},"400":{"description":"Invalid query."},"404":{"description":"Document not found."},"503":{"description":"Dataset unavailable."}}}},"/explorer.md":{"get":{"operationId":"explorer_md","summary":"Directory as Markdown","tags":["Directory"],"parameters":[],"responses":{"200":{"description":"Public document from the pinned dataset.","content":{"text/markdown":{"schema":{"type":"string"}}},"headers":{"ETag":{"schema":{"type":"string"},"description":"Present on cacheable production GET responses."}}},"304":{"description":"Cached document matches If-None-Match."},"307":{"description":"Ambiguous alias; follow Location to discovery.","headers":{"Location":{"schema":{"type":"string"}}}},"308":{"description":"Canonical identifier; follow Location.","headers":{"Location":{"schema":{"type":"string"}}}},"400":{"description":"Invalid query."},"404":{"description":"Document not found."},"503":{"description":"Dataset unavailable."}}}},"/explorer/all.json":{"get":{"operationId":"explorer_all_json","summary":"Map as JSON","tags":["Map"],"parameters":[],"responses":{"200":{"description":"Public document from the pinned dataset.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MapDocument"}}},"headers":{"ETag":{"schema":{"type":"string"},"description":"Present on cacheable production GET responses."}}},"304":{"description":"Cached document matches If-None-Match."},"307":{"description":"Ambiguous alias; follow Location to discovery.","headers":{"Location":{"schema":{"type":"string"}}}},"308":{"description":"Canonical identifier; follow Location.","headers":{"Location":{"schema":{"type":"string"}}}},"400":{"description":"Invalid query."},"404":{"description":"Document not found."},"503":{"description":"Dataset unavailable."}}}},"/explorer/all.md":{"get":{"operationId":"explorer_all_md","summary":"Map as Markdown","tags":["Map"],"parameters":[],"responses":{"200":{"description":"Public document from the pinned dataset.","content":{"text/markdown":{"schema":{"type":"string"}}},"headers":{"ETag":{"schema":{"type":"string"},"description":"Present on cacheable production GET responses."}}},"304":{"description":"Cached document matches If-None-Match."},"307":{"description":"Ambiguous alias; follow Location to discovery.","headers":{"Location":{"schema":{"type":"string"}}}},"308":{"description":"Canonical identifier; follow Location.","headers":{"Location":{"schema":{"type":"string"}}}},"400":{"description":"Invalid query."},"404":{"description":"Document not found."},"503":{"description":"Dataset unavailable."}}}},"/explorer/{subject}.json":{"get":{"operationId":"explorer_subject_json","summary":"Map as JSON","tags":["Map"],"parameters":[{"name":"subject","in":"path","required":true,"schema":{"type":"string"},"description":"Canonical URL identifier."}],"responses":{"200":{"description":"Public document from the pinned dataset.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MapDocument"}}},"headers":{"ETag":{"schema":{"type":"string"},"description":"Present on cacheable production GET responses."}}},"304":{"description":"Cached document matches If-None-Match."},"307":{"description":"Ambiguous alias; follow Location to discovery.","headers":{"Location":{"schema":{"type":"string"}}}},"308":{"description":"Canonical identifier; follow Location.","headers":{"Location":{"schema":{"type":"string"}}}},"400":{"description":"Invalid query."},"404":{"description":"Document not found."},"503":{"description":"Dataset unavailable."}}}},"/explorer/{subject}.md":{"get":{"operationId":"explorer_subject_md","summary":"Map as Markdown","tags":["Map"],"parameters":[{"name":"subject","in":"path","required":true,"schema":{"type":"string"},"description":"Canonical URL identifier."}],"responses":{"200":{"description":"Public document from the pinned dataset.","content":{"text/markdown":{"schema":{"type":"string"}}},"headers":{"ETag":{"schema":{"type":"string"},"description":"Present on cacheable production GET responses."}}},"304":{"description":"Cached document matches If-None-Match."},"307":{"description":"Ambiguous alias; follow Location to discovery.","headers":{"Location":{"schema":{"type":"string"}}}},"308":{"description":"Canonical identifier; follow Location.","headers":{"Location":{"schema":{"type":"string"}}}},"400":{"description":"Invalid query."},"404":{"description":"Document not found."},"503":{"description":"Dataset unavailable."}}}},"/api/status":{"get":{"operationId":"apiStatus","tags":["Interactions"],"summary":"Status","parameters":[],"responses":{"200":{"description":"Validated response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Dataset"}}}},"400":{"description":"Invalid query."},"404":{"description":"Entity not found."},"409":{"description":"Dataset revision changed; reload with the current revision."},"503":{"description":"Dataset unavailable."}}}},"/api/search":{"get":{"operationId":"apiSearch","tags":["Interactions"],"summary":"Search","parameters":[{"name":"revision","in":"query","description":"Optional pinned HF revision; mismatch returns 409.","schema":{"type":"string"}},{"name":"q","in":"query","description":"Search text, up to 200 characters.","schema":{"type":"string","maxLength":200}},{"name":"page","in":"query","description":"One-based page; 30 results per page.","schema":{"type":"integer","minimum":1,"maximum":10000}},{"name":"term","in":"query","description":"UW term ID, e.g. 1272 (Fall 2026).","schema":{"type":"string","pattern":"^1\\d{2}[246]$"}},{"name":"availability","in":"query","description":"Whether courses must be offered in the selected term.","schema":{"type":"string","enum":["offered","all"]}},{"name":"subject","in":"query","description":"Course subject filter.","schema":{"type":"string"}},{"name":"instructor","in":"query","description":"Course instructor filter.","schema":{"type":"string"}},{"name":"level","in":"query","description":"Course level filter.","schema":{"type":"string"}},{"name":"credits_min","in":"query","description":"Course credits min filter.","schema":{"type":"string"}},{"name":"credits_max","in":"query","description":"Course credits max filter.","schema":{"type":"string"}},{"name":"gpa_min","in":"query","description":"Course gpa min filter.","schema":{"type":"string"}},{"name":"sort","in":"query","description":"Course sort filter.","schema":{"type":"string"}},{"name":"ranking","in":"query","description":"Course ranking filter.","schema":{"type":"string"}},{"name":"kind","in":"query","description":"Entity type.","schema":{"type":"string","enum":["course","instructor"]}}],"responses":{"200":{"description":"Validated response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SearchResponse"}}}},"400":{"description":"Invalid query."},"404":{"description":"Entity not found."},"409":{"description":"Dataset revision changed; reload with the current revision."},"503":{"description":"Dataset unavailable."}}}},"/api/courses/{uid}/grades":{"get":{"operationId":"apiGrades","tags":["Interactions"],"summary":"Grades","parameters":[{"name":"uid","in":"path","required":true,"description":"Dataset entity UID (not the display-name URL).","schema":{"type":"string"}},{"name":"revision","in":"query","description":"Optional pinned HF revision; mismatch returns 409.","schema":{"type":"string"}},{"name":"page","in":"query","description":"One-based result page.","schema":{"type":"integer","minimum":1,"maximum":10000}},{"name":"term","in":"query","description":"UW term ID.","schema":{"type":"string"}},{"name":"instructor","in":"query","description":"Dataset instructor UID.","schema":{"type":"string"}}],"responses":{"200":{"description":"Validated response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GradesResponse"}}}},"400":{"description":"Invalid query."},"404":{"description":"Entity not found."},"409":{"description":"Dataset revision changed; reload with the current revision."},"503":{"description":"Dataset unavailable."}}}},"/api/instructors/{uid}/history":{"get":{"operationId":"apiInstructorHistory","tags":["Interactions"],"summary":"InstructorHistory","parameters":[{"name":"uid","in":"path","required":true,"description":"Dataset entity UID (not the display-name URL).","schema":{"type":"string"}},{"name":"revision","in":"query","description":"Optional pinned HF revision; mismatch returns 409.","schema":{"type":"string"}},{"name":"page","in":"query","description":"One-based result page.","schema":{"type":"integer","minimum":1,"maximum":10000}}],"responses":{"200":{"description":"Validated response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstructorHistoryResponse"}}}},"400":{"description":"Invalid query."},"404":{"description":"Entity not found."},"409":{"description":"Dataset revision changed; reload with the current revision."},"503":{"description":"Dataset unavailable."}}}},"/api/instructors/{uid}/reviews":{"get":{"operationId":"apiInstructorReviews","tags":["Interactions"],"summary":"InstructorReviews","parameters":[{"name":"uid","in":"path","required":true,"description":"Dataset entity UID (not the display-name URL).","schema":{"type":"string"}},{"name":"revision","in":"query","description":"Optional pinned HF revision; mismatch returns 409.","schema":{"type":"string"}},{"name":"page","in":"query","description":"One-based result page.","schema":{"type":"integer","minimum":1,"maximum":10000}},{"name":"course","in":"query","description":"Dataset course UID.","schema":{"type":"string"}}],"responses":{"200":{"description":"Validated response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstructorReviewsResponse"}}}},"400":{"description":"Invalid query."},"404":{"description":"Entity not found."},"409":{"description":"Dataset revision changed; reload with the current revision."},"503":{"description":"Dataset unavailable."}}}},"/api/instructors/{uid}/courses":{"get":{"operationId":"apiInstructorCourses","tags":["Interactions"],"summary":"InstructorCourses","parameters":[{"name":"uid","in":"path","required":true,"description":"Dataset entity UID (not the display-name URL).","schema":{"type":"string"}},{"name":"revision","in":"query","description":"Optional pinned HF revision; mismatch returns 409.","schema":{"type":"string"}},{"name":"term","in":"query","description":"UW term ID.","schema":{"type":"string"}}],"responses":{"200":{"description":"Validated response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstructorCoursesResponse"}}}},"400":{"description":"Invalid query."},"404":{"description":"Entity not found."},"409":{"description":"Dataset revision changed; reload with the current revision."},"503":{"description":"Dataset unavailable."}}}},"/api/weather":{"get":{"operationId":"madisonWeather","summary":"Cached Madison weather observations","responses":{"200":{"description":"Current observations, or available=false when unavailable or stale.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Weather"}}}}}}}},"components":{"schemas":{"JsonValue":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"null"},{"type":"array","items":{"$ref":"#/components/schemas/JsonValue"}},{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/JsonValue"}}]},"Dataset":{"type":"object","properties":{"revision":{"type":"string"},"projection_id":{"type":"string"},"repository":{"type":"string"},"observed_at":{"type":"string"},"built_at":{"type":"string"},"term":{"type":"string"},"terms":{"type":"array","items":{"type":"string"}},"courses":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"current_instructors":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"departments":{"type":"array","items":{"type":"object","properties":{"subject":{"type":"string"},"count":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["subject","count"],"additionalProperties":false}}},"required":["revision","projection_id","repository","observed_at","built_at","term","terms","courses","current_instructors","departments"],"additionalProperties":{"$ref":"#/components/schemas/JsonValue"}},"Citation":{"type":"object","properties":{"type":{"type":"string"},"source_url":{"type":["string","null"]},"source_review_id":{"type":["string","null"]},"instructor_name":{"type":["string","null"]},"instructor_uid":{"type":["string","null"]},"review_date":{"type":["string","null"]},"term_id":{"type":["string","null"]},"course_id":{"type":["string","null"]}},"additionalProperties":{"$ref":"#/components/schemas/JsonValue"}},"Claim":{"type":"object","properties":{"text":{"type":"string"},"citations":{"type":"array","items":{"$ref":"#/components/schemas/Citation"}}},"required":["text"],"additionalProperties":{"$ref":"#/components/schemas/JsonValue"}},"Requirements":{"type":"object","properties":{"root":{"type":"string"},"status":{"type":"string"},"notes":{"type":"array","items":{"type":"string"}},"nodes":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"kind":{"type":"string"},"children":{"type":"array","items":{"type":"string"}},"condition":{"type":["string","null"]},"evidence":{"type":["string","null"]},"course":{"anyOf":[{"type":"object","properties":{"subjects":{"type":"array","items":{"type":"string"}},"course_number":{"type":"number"},"minimum_grade":{"type":["string","null"]},"timing":{"type":["string","null"]}},"required":["subjects","course_number"],"additionalProperties":{"$ref":"#/components/schemas/JsonValue"}},{"type":"null"}]}},"required":["id","kind","children"],"additionalProperties":{"$ref":"#/components/schemas/JsonValue"}}}},"required":["root","nodes"],"additionalProperties":{"$ref":"#/components/schemas/JsonValue"}},"InstructorRating":{"type":"object","properties":{"quality":{"type":["number","null"]},"quality_count":{"type":["number","null"]},"difficulty":{"type":["number","null"]},"difficulty_count":{"type":["number","null"]},"bayesian_quality":{"type":["number","null"]},"source_url":{"type":["string","null"]}},"additionalProperties":{"$ref":"#/components/schemas/JsonValue"}},"Instructor":{"type":"object","properties":{"instructor_uid":{"type":"string"},"name":{"type":["string","null"]},"instructor_url":{"type":"string"},"ratings":{"anyOf":[{"$ref":"#/components/schemas/InstructorRating"},{"type":"null"}]}},"required":["instructor_uid","name"],"additionalProperties":{"$ref":"#/components/schemas/JsonValue"}},"GradeSnapshot":{"type":"object","properties":{"term_id":{"type":"string"},"term_name":{"type":["string","null"]},"course_uid":{"type":"string"},"a":{"type":["number","null"]},"ab":{"type":["number","null"]},"b":{"type":["number","null"]},"bc":{"type":["number","null"]},"c":{"type":["number","null"]},"d":{"type":["number","null"]},"f":{"type":["number","null"]},"total":{"type":["number","null"]},"instructors":{"type":"array","items":{"type":"string"}},"observed_at":{"type":["string","null"]},"run_id":{"type":["string","null"]}},"required":["term_id","a","ab","b","bc","c","d","f"],"additionalProperties":{"$ref":"#/components/schemas/JsonValue"}},"StudentSummary":{"type":"object","properties":{"quick_take":{"type":"array","items":{"$ref":"#/components/schemas/Claim"}},"difficulty_workload":{"type":"array","items":{"$ref":"#/components/schemas/Claim"}},"student_experience":{"type":"array","items":{"$ref":"#/components/schemas/Claim"}},"historical_context":{"type":"array","items":{"$ref":"#/components/schemas/Claim"}},"teaching_history":{"type":"array","items":{"$ref":"#/components/schemas/Claim"}},"current_instructors":{"type":"array","items":{"type":"object","properties":{"instructor_uid":{"type":"string"},"message":{"type":["string","null"]}},"required":["instructor_uid"],"additionalProperties":{"$ref":"#/components/schemas/JsonValue"}}},"term_id":{"type":["string","null"]},"term_name":{"type":["string","null"]},"offered":{"type":"boolean"}},"additionalProperties":{"$ref":"#/components/schemas/JsonValue"}},"Course":{"type":"object","properties":{"course_uid":{"type":"string"},"course_id":{"type":"string"},"title":{"type":"string"},"course_number":{"type":"number"},"subjects":{"type":"array","items":{"type":"string"}},"description":{"type":["string","null"]},"requirements_text":{"type":["string","null"]},"credits_min":{"type":["number","null"]},"credits_max":{"type":["number","null"]},"semester":{"type":["string","null"]},"observed_at":{"type":["string","null"]},"llm_model":{"type":["string","null"]},"llm_model_revision":{"type":["string","null"]},"llm_summary":{"type":["string","null"]},"llm_topics":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}]},"llm_skills":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}]},"llm_assumed_background":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}]},"llm_search_phrases":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}]},"student_summary":{"anyOf":[{"$ref":"#/components/schemas/StudentSummary"},{"type":"null"}]},"requirements":{"anyOf":[{"$ref":"#/components/schemas/Requirements"},{"type":"null"}]},"instructors":{"type":"array","items":{"$ref":"#/components/schemas/Instructor"}},"grade_instructors":{"type":"array","items":{"$ref":"#/components/schemas/Instructor"}},"grades":{"type":"array","items":{"$ref":"#/components/schemas/GradeSnapshot"}},"offerings":{"type":"array","items":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/JsonValue"}}},"sections":{"type":"array","items":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/JsonValue"}}},"evidence":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"array","items":{"type":"string"}}},"revision":{"type":"string"}},"required":["course_uid","course_id","title","course_number","subjects","description","requirements_text","credits_min","credits_max","semester","observed_at","student_summary","requirements","instructors","grade_instructors","grades","offerings","sections","evidence","revision"],"additionalProperties":{"$ref":"#/components/schemas/JsonValue"}},"CourseCard":{"type":"object","properties":{"course_uid":{"type":"string"},"course_id":{"type":"string"},"title":{"type":"string"},"description":{"type":["string","null"]},"credits_min":{"type":["number","null"]},"credits_max":{"type":["number","null"]},"gpa":{"type":["number","null"]}},"required":["course_id","title"],"additionalProperties":{"$ref":"#/components/schemas/JsonValue"}},"SearchResults":{"type":"object","properties":{"items":{"type":"array","items":{"anyOf":[{"$ref":"#/components/schemas/CourseCard"},{"$ref":"#/components/schemas/Instructor"}]}},"total":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"page":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"kind":{"type":"string","enum":["course","instructor"]},"q":{"type":"string"},"term":{"type":"string"},"availability":{"type":"string"},"filters":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}}},"required":["items","total","page","kind","q","term","availability","filters"],"additionalProperties":{"$ref":"#/components/schemas/JsonValue"}},"GradeProjection":{"type":"object","properties":{"target":{"type":"string"},"gpa":{"type":"number"},"interval":{"anyOf":[{"type":"object","properties":{"lower":{"type":"number"},"upper":{"type":"number"},"coverage":{"type":"number"},"terms":{"type":"number"}},"required":["lower","upper","coverage","terms"],"additionalProperties":{"$ref":"#/components/schemas/JsonValue"}},{"type":"null"}]},"grades":{"type":"array","items":{"type":"object","properties":{"grade":{"type":"string"},"percentage":{"type":"number"}},"required":["grade","percentage"],"additionalProperties":false}},"sourceTerms":{"type":"array","items":{"type":"string"}},"sourceCount":{"type":"number"},"sameSeason":{"type":"boolean"}},"required":["target","gpa","interval","grades","sourceTerms","sourceCount","sameSeason"],"additionalProperties":{"$ref":"#/components/schemas/JsonValue"}},"CourseData":{"type":"object","properties":{"course":{"$ref":"#/components/schemas/Course"},"context":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/JsonValue"}},{"type":"null"}]},"instructorTrends":{"type":"array","items":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/JsonValue"}}},"following":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"title":{"type":"string"}},"required":["code","title"],"additionalProperties":false}},"projection":{"anyOf":[{"$ref":"#/components/schemas/GradeProjection"},{"type":"null"}]}},"required":["course","context","instructorTrends","following","projection"],"additionalProperties":false},"InstructorData":{"type":"object","properties":{"instructor":{"$ref":"#/components/schemas/Instructor"},"history":{"type":"array","items":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/JsonValue"}}},"timeline":{"type":"array","items":{"type":"object","properties":{"term":{"type":"string"},"courses":{"type":"number"}},"required":["term","courses"],"additionalProperties":false}},"term":{"type":"string"},"courses":{"type":"array","items":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/JsonValue"}}},"reviews":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/JsonValue"}}},"total":{"type":"number"},"page":{"type":"number"},"matched":{"type":"boolean"},"courses":{"type":"array","items":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/JsonValue"}}}},"required":["items","total","page","matched","courses"],"additionalProperties":{"$ref":"#/components/schemas/JsonValue"}}},"required":["instructor","history","timeline","term","courses","reviews"],"additionalProperties":{"$ref":"#/components/schemas/JsonValue"}},"DepartmentData":{"type":"object","properties":{"subject":{"type":"string"},"results":{"$ref":"#/components/schemas/SearchResults"},"stats":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/JsonValue"}}},"required":["subject","results","stats"],"additionalProperties":false},"CatalogData":{"type":"object","properties":{"subject":{"type":"string"},"catalog":{"type":"array","items":{"$ref":"#/components/schemas/CourseCard"}}},"required":["subject","catalog"],"additionalProperties":false},"CollectionData":{"type":"object","properties":{"subject":{"type":"string"},"collection":{"type":"string","enum":["easiest","hardest"]},"results":{"$ref":"#/components/schemas/SearchResults"}},"required":["subject","collection","results"],"additionalProperties":false},"SearchData":{"type":"object","properties":{"results":{"$ref":"#/components/schemas/SearchResults"},"discoveryFiltered":{"type":"boolean"}},"required":["results","discoveryFiltered"],"additionalProperties":false},"MapData":{"type":"object","properties":{"subject":{"type":["string","null"]},"graph":{"type":"object","properties":{"courses":{"type":"array","items":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/JsonValue"}}},"edges":{"type":"array","items":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/JsonValue"}}}},"required":["courses","edges"],"additionalProperties":false}},"required":["subject","graph"],"additionalProperties":false},"HomeData":{"type":"object","properties":{"courses":{"type":"array","items":{"$ref":"#/components/schemas/CourseCard"}},"campus":{"type":"object","properties":{"timezone":{"type":"string","const":"America/Chicago"},"from":{"type":["string","null"]},"through":{"type":["string","null"]},"assetBase":{"type":["string","null"]}},"required":["timezone","from","through","assetBase"],"additionalProperties":false}},"required":["courses","campus"],"additionalProperties":false},"DirectoryData":{"type":"object","properties":{},"additionalProperties":false},"CourseDocument":{"type":"object","properties":{"schema_version":{"type":"number","const":1},"url":{"type":"string"},"title":{"type":"string"},"dataset":{"$ref":"#/components/schemas/Dataset"},"data":{"$ref":"#/components/schemas/CourseData"}},"required":["schema_version","url","title","dataset","data"],"additionalProperties":false},"InstructorDocument":{"type":"object","properties":{"schema_version":{"type":"number","const":1},"url":{"type":"string"},"title":{"type":"string"},"dataset":{"$ref":"#/components/schemas/Dataset"},"data":{"$ref":"#/components/schemas/InstructorData"}},"required":["schema_version","url","title","dataset","data"],"additionalProperties":false},"DepartmentDocument":{"type":"object","properties":{"schema_version":{"type":"number","const":1},"url":{"type":"string"},"title":{"type":"string"},"dataset":{"$ref":"#/components/schemas/Dataset"},"data":{"$ref":"#/components/schemas/DepartmentData"}},"required":["schema_version","url","title","dataset","data"],"additionalProperties":false},"CatalogDocument":{"type":"object","properties":{"schema_version":{"type":"number","const":1},"url":{"type":"string"},"title":{"type":"string"},"dataset":{"$ref":"#/components/schemas/Dataset"},"data":{"$ref":"#/components/schemas/CatalogData"}},"required":["schema_version","url","title","dataset","data"],"additionalProperties":false},"CollectionDocument":{"type":"object","properties":{"schema_version":{"type":"number","const":1},"url":{"type":"string"},"title":{"type":"string"},"dataset":{"$ref":"#/components/schemas/Dataset"},"data":{"$ref":"#/components/schemas/CollectionData"}},"required":["schema_version","url","title","dataset","data"],"additionalProperties":false},"SearchDocument":{"type":"object","properties":{"schema_version":{"type":"number","const":1},"url":{"type":"string"},"title":{"type":"string"},"dataset":{"$ref":"#/components/schemas/Dataset"},"data":{"$ref":"#/components/schemas/SearchData"}},"required":["schema_version","url","title","dataset","data"],"additionalProperties":false},"MapDocument":{"type":"object","properties":{"schema_version":{"type":"number","const":1},"url":{"type":"string"},"title":{"type":"string"},"dataset":{"$ref":"#/components/schemas/Dataset"},"data":{"$ref":"#/components/schemas/MapData"}},"required":["schema_version","url","title","dataset","data"],"additionalProperties":false},"HomeDocument":{"type":"object","properties":{"schema_version":{"type":"number","const":1},"url":{"type":"string"},"title":{"type":"string"},"dataset":{"$ref":"#/components/schemas/Dataset"},"data":{"$ref":"#/components/schemas/HomeData"}},"required":["schema_version","url","title","dataset","data"],"additionalProperties":false},"DirectoryDocument":{"type":"object","properties":{"schema_version":{"type":"number","const":1},"url":{"type":"string"},"title":{"type":"string"},"dataset":{"$ref":"#/components/schemas/Dataset"},"data":{"$ref":"#/components/schemas/DirectoryData"}},"required":["schema_version","url","title","dataset","data"],"additionalProperties":false},"Weather":{"type":"object","properties":{"available":{"type":"boolean"},"temperatureF":{"type":["number","null"]},"description":{"type":["string","null"]},"observedAt":{"type":["string","null"]},"source":{"type":"string"},"sourceUrl":{"type":"string"}},"required":["available","temperatureF","description","observedAt","source","sourceUrl"],"additionalProperties":false},"SearchResponse":{"type":"object","properties":{"items":{"type":"array","items":{"anyOf":[{"$ref":"#/components/schemas/CourseCard"},{"$ref":"#/components/schemas/Instructor"}]}},"total":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"page":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"kind":{"type":"string","enum":["course","instructor"]},"q":{"type":"string"},"term":{"type":"string"},"availability":{"type":"string"},"filters":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},"revision":{"type":"string"}},"required":["items","total","page","kind","q","term","availability","filters","revision"],"additionalProperties":{"$ref":"#/components/schemas/JsonValue"}},"GradesResponse":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/GradeSnapshot"}},"total":{"type":"number"},"page":{"type":"number"},"revision":{"type":"string"}},"required":["items","total","page","revision"],"additionalProperties":false},"InstructorHistoryResponse":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"term":{"type":"string"},"course_uid":{"type":"string"},"course_id":{"type":"string"},"title":{"type":"string"}},"required":["term","course_uid","course_id","title"],"additionalProperties":false}},"page":{"type":"number"},"revision":{"type":"string"}},"required":["items","page","revision"],"additionalProperties":false},"InstructorReviewsResponse":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/JsonValue"}}},"total":{"type":"number"},"page":{"type":"number"},"courses":{"type":"array","items":{"type":"object","properties":{"course_uid":{"type":"string"},"course_id":{"type":"string"}},"required":["course_uid","course_id"],"additionalProperties":false}},"matched":{"type":"boolean"},"revision":{"type":"string"}},"required":["items","total","page","courses","matched","revision"],"additionalProperties":false},"InstructorCoursesResponse":{"type":"object","properties":{"courses":{"type":"array","items":{"$ref":"#/components/schemas/CourseCard"}},"term":{"type":"string"},"revision":{"type":"string"}},"required":["courses","term","revision"],"additionalProperties":false}}}}