{"ok":true,"site":{"host":"uwcourses.com","url":"https://uwcourses.com/","type":"live","desc":"Search UW–Madison courses and compare historical grade distributions, prerequisites, class schedules, and professor ratings and reviews.","tools":[{"name":"scan_images_c2pa","kind":"answer","impl":"imperative","description":"Scan every <img> on the current page for C2PA Content Credentials (content provenance metadata) and return a per-image summary: whether a manifest is present, the claim generator (the tool that produced or edited the image), the title, and the signer name. Use this to find which images on a page carry provenance data. Note: provenance is decoded but NOT cryptographically verified.","inputSchema":{"type":"object","properties":{"limit":{"type":"integer","minimum":1,"maximum":100,"default":25,"description":"Maximum number of images to fetch and scan (default 25, max 100)."}},"required":[]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/departments","/stats","/explorer","/search","/instructors/by-rating-count"]},{"name":"inspect_image_c2pa","kind":"answer","impl":"imperative","description":"Fetch a single image (by CSS selector or URL) and return its fully decoded C2PA manifest store: every manifest's claim, assertions (e.g. c2pa.actions edit history, schema.org authorship), and the COSE signature details (algorithm and signing-certificate identity). Provide exactly one of `selector` or `url`. Note: the signature is decoded but NOT cryptographically verified.","inputSchema":{"type":"object","properties":{"selector":{"type":"string","maxLength":8192,"description":"CSS selector for an <img> element on the page."},"url":{"type":"string","maxLength":8192,"description":"Same-origin image URL (absolute same-origin, or relative to the current page) to fetch and inspect. Cross-origin URLs are rejected."}},"required":[]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/departments","/stats","/explorer","/search","/instructors/by-rating-count"]},{"name":"search_courses","kind":"answer","impl":"imperative","description":"Search UW–Madison courses. Returns up to 30 results per page, course_uid identifiers for grade history, and course_id codes for course details. Defaults to courses offered in the dataset's current term; use availability=all to include other courses.","title":"search courses","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"q":{"description":"Course code or search text, e.g. CS 300 or programming.","type":"string","maxLength":200},"subject":{"description":"Subject codes combined with OR, up to 12. Example: COMPSCI,MATH.","anyOf":[{"type":"string","minLength":1,"maxLength":32,"pattern":"^[A-Za-z0-9]+$","description":"Subject code, e.g. COMPSCI."},{"minItems":1,"maxItems":12,"type":"array","items":{"type":"string","minLength":1,"maxLength":32,"pattern":"^[A-Za-z0-9]+$","description":"Subject code, e.g. COMPSCI."}}]},"term":{"description":"UW term ID, e.g. 1272 for Fall 2026. Omit to use the endpoint default.","type":"string","pattern":"^1\\d{2}[246]$"},"availability":{"type":"string","enum":["offered","all"]},"page":{"type":"integer","minimum":1,"maximum":10000},"level":{"description":"Hundred-level bands combined with OR, from 0 through 900. Example: 300,700. Undergraduate is every band below 700. Graduate is 700, 800, and 900.","anyOf":[{"type":"integer","minimum":0,"maximum":900,"multipleOf":100},{"minItems":1,"maxItems":12,"type":"array","items":{"type":"integer","minimum":0,"maximum":900,"multipleOf":100}}]},"tags":{"description":"small-lectures, large-lectures, higher-grades, lower-grades, or rated-teacher, combined with AND. Lecture enrollment and assigned instructors use the selected term. Grades use the latest released term at or before it, compared with the selected department (one subject) or school; requires 30+ letter grades and 10+ peer courses. These are evidence-based highlights, not predicted difficulty.","maxItems":5,"type":"array","items":{"type":"string","enum":["small-lectures","higher-grades","rated-teacher","large-lectures","lower-grades"]}},"credits_min":{"description":"The course can be taken for at least this many credits (its credit maximum is at least this value). 0 through 20.","type":"number","minimum":0,"maximum":20},"credits_max":{"description":"The course can be taken for at most this many credits (its credit minimum is at most this value). 0 through 20.","type":"number","minimum":0,"maximum":20},"gpa_min":{"description":"Historical letter-grade average is at least this value, from 0 through 4. Courses with no letter grades in the five-year window do not match.","type":"number","minimum":0,"maximum":4},"gpa_max":{"description":"Historical letter-grade average is at most this value, from 0 through 4. Courses with no letter grades in the five-year window do not match.","type":"number","minimum":0,"maximum":4},"gpa_max_exclusive":{"description":"Set to true to exclude the upper GPA bound, as when selecting a histogram bin. Defaults to false; requires gpa_max to have an effect.","type":"boolean"},"requisites":{"description":"none: parsed catalog text lists no course and no condition. listed: it lists at least one. Unparsed requisites match neither.","type":"string","enum":["none","listed"]},"season":{"description":"fall, spring, or summer, combined with OR. Matches a typically-offered line that names that season, including every-other-term lines. Occasionally and Not Applicable match none.","maxItems":12,"type":"array","items":{"type":"string","enum":["fall","spring","summer"]}},"designation":{"description":"family:value tokens combined with OR, up to 12. Example: breadth:natural-science,quantitative-reasoning:b. A well-formed token that is not in the snapshot matches nothing. A malformed token is rejected.","maxItems":12,"type":"array","items":{"type":"string","pattern":"^[a-z0-9-]+:[a-z0-9-]+$"}},"instructor":{"description":"Instructor uid. With recorded offerings, they must teach the course in the selected term. With the full catalog, any recorded teaching row matches.","type":"string","minLength":1,"maxLength":200},"days":{"description":"Weekdays mon,tue,wed,thu,fri,sat,sun. Default days_match=within requires every class meeting that term to fall on a selected day. days_match=any requires one class meeting on a selected day. Exams are ignored.","maxItems":7,"type":"array","items":{"type":"string","enum":["mon","tue","wed","thu","fri","sat","sun"]}},"days_match":{"description":"within (default) or any. Ignored when days is empty.","type":"string","enum":["within","any"]},"time":{"description":"morning, afternoon, or evening, combined with OR. Uses the class start in America/Chicago. Morning is before 12:00, afternoon is 12:00 until 17:00, evening is 17:00 or later.","maxItems":12,"type":"array","items":{"type":"string","enum":["morning","afternoon","evening"]}},"mode":{"description":"in_person, online, or mixed, combined with OR. Classroom Instruction, Online Only, and Online (some classroom). When days or time is also set, one section must satisfy the whole schedule.","maxItems":12,"type":"array","items":{"type":"string","enum":["in_person","online","mixed"]}},"sort":{"description":"Order by historical GPA; omit for default search ordering.","type":"string","enum":["gpa"]},"ranking":{"description":"Historical GPA ranking, requiring at least 100 grades; not a guarantee of difficulty.","type":"string","enum":["easiest","hardest"]}},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/departments","/stats","/explorer","/search","/instructors/by-rating-count"]},{"name":"get_course","kind":"answer","impl":"imperative","description":"Get a compact UW–Madison course summary: description, requirements, instructors, and the JSON document URL. Use the course_id returned by search_courses, not course_uid.","title":"get course","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"course":{"type":"string","minLength":1,"maxLength":100,"pattern":"^[a-zA-Z0-9 _&/-]+$","description":"Course code, e.g. COMPSCI 300 or COMPSCI_300."}},"required":["course"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/departments","/stats","/explorer","/search","/instructors/by-rating-count"]},{"name":"get_course_grades","kind":"answer","impl":"imperative","description":"Get paginated historical grade records for a course. Use course_uid returned by search_courses. Historical grades do not predict an individual student's grade.","title":"get course grades","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"course_uid":{"type":"string","minLength":1,"maxLength":200,"pattern":"^[a-zA-Z0-9_-]+$","description":"Dataset course_uid from search_courses, not a course code."},"term":{"description":"UW term ID, e.g. 1272 for Fall 2026. Omit to use the endpoint default.","type":"string","pattern":"^1\\d{2}[246]$"},"instructor":{"description":"Optional dataset instructor UID.","type":"string","minLength":1,"maxLength":200,"pattern":"^[a-zA-Z0-9_-]+$"},"page":{"type":"integer","minimum":1,"maximum":10000}},"required":["course_uid"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/departments","/stats","/explorer","/search","/instructors/by-rating-count"]},{"name":"search_instructors","kind":"answer","impl":"imperative","description":"Search UW–Madison instructors. Returns instructor_uid for reviews, courses, and history, and instructor_url slugs for instructor documents and open_instructor.","title":"search instructors","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"q":{"description":"Instructor name or search text.","type":"string","maxLength":200},"page":{"type":"integer","minimum":1,"maximum":10000}},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/departments","/stats","/explorer","/search","/instructors/by-rating-count"]},{"name":"get_instructor","kind":"answer","impl":"imperative","description":"Get a compact instructor summary: ratings, current courses, and review count. Use the instructor_url slug from search_instructors, not instructor_uid.","title":"get instructor","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"instructor":{"type":"string","minLength":1,"maxLength":200,"pattern":"^(?:\\/instructors\\/)?[a-zA-Z0-9_-]+$","description":"Instructor URL slug from search_instructors, e.g. HOBBES_LEGAULT or /instructors/HOBBES_LEGAULT."}},"required":["instructor"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/departments","/stats","/explorer","/search","/instructors/by-rating-count"]},{"name":"get_instructor_reviews","kind":"answer","impl":"imperative","description":"Get paginated student reviews for an instructor. Use instructor_uid from search_instructors. Reviews are student-written and may be incomplete or outdated.","title":"get instructor reviews","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"instructor_uid":{"type":"string","minLength":1,"maxLength":200,"pattern":"^[a-zA-Z0-9_-]+$","description":"Dataset instructor_uid from search_instructors, not the URL slug."},"course_uid":{"description":"Optional dataset course_uid to limit reviews.","type":"string","minLength":1,"maxLength":200,"pattern":"^[a-zA-Z0-9_-]+$"},"page":{"type":"integer","minimum":1,"maximum":10000}},"required":["instructor_uid"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/departments","/stats","/explorer","/search","/instructors/by-rating-count"]},{"name":"get_instructor_courses","kind":"answer","impl":"imperative","description":"Get courses an instructor is teaching in a term. Use instructor_uid from search_instructors.","title":"get instructor courses","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"instructor_uid":{"type":"string","minLength":1,"maxLength":200,"pattern":"^[a-zA-Z0-9_-]+$","description":"Dataset instructor_uid from search_instructors, not the URL slug."},"term":{"description":"UW term ID, e.g. 1272 for Fall 2026. Omit to use the endpoint default.","type":"string","pattern":"^1\\d{2}[246]$"}},"required":["instructor_uid"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/departments","/stats","/explorer","/search","/instructors/by-rating-count"]},{"name":"get_instructor_history","kind":"answer","impl":"imperative","description":"Get paginated teaching history for an instructor. Use instructor_uid from search_instructors.","title":"get instructor history","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"instructor_uid":{"type":"string","minLength":1,"maxLength":200,"pattern":"^[a-zA-Z0-9_-]+$","description":"Dataset instructor_uid from search_instructors, not the URL slug."},"page":{"type":"integer","minimum":1,"maximum":10000}},"required":["instructor_uid"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/departments","/stats","/explorer","/search","/instructors/by-rating-count"]},{"name":"list_departments","kind":"answer","impl":"imperative","description":"List UW–Madison subject codes and course counts from the current dataset.","title":"list departments","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/departments","/stats","/explorer","/search","/instructors/by-rating-count"]},{"name":"get_department","kind":"answer","impl":"imperative","description":"Get a compact department summary and sample courses. Use a subject code from list_departments, e.g. COMPSCI.","title":"get department","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"subject":{"type":"string","minLength":1,"maxLength":32,"pattern":"^[A-Za-z0-9]+$","description":"Subject code, e.g. COMPSCI."}},"required":["subject"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/departments","/stats","/explorer","/search","/instructors/by-rating-count"]},{"name":"get_department_catalog","kind":"answer","impl":"imperative","description":"Get compact catalog entries for a department. Use a subject code from list_departments. Results may be truncated; open_department for the full page.","title":"get department catalog","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"subject":{"type":"string","minLength":1,"maxLength":32,"pattern":"^[A-Za-z0-9]+$","description":"Subject code, e.g. COMPSCI."}},"required":["subject"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/departments","/stats","/explorer","/search","/instructors/by-rating-count"]},{"name":"open_course","kind":"act","impl":"imperative","description":"Open a course page in the current tab so the student can see the full catalog UI. Use a course_id from search_courses.","title":"open course","annotations":{"readOnlyHint":false,"untrustedContentHint":false,"consequentialHint":false},"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"course":{"type":"string","minLength":1,"maxLength":100,"pattern":"^[a-zA-Z0-9 _&/-]+$","description":"Course code, e.g. COMPSCI 300 or COMPSCI_300."}},"required":["course"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/departments","/stats","/explorer","/search","/instructors/by-rating-count"]},{"name":"open_instructor","kind":"act","impl":"imperative","description":"Open an instructor page in the current tab. Use the instructor_url slug from search_instructors.","title":"open instructor","annotations":{"readOnlyHint":false,"untrustedContentHint":false,"consequentialHint":false},"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"instructor":{"type":"string","minLength":1,"maxLength":200,"pattern":"^(?:\\/instructors\\/)?[a-zA-Z0-9_-]+$","description":"Instructor URL slug from search_instructors, e.g. HOBBES_LEGAULT or /instructors/HOBBES_LEGAULT."}},"required":["instructor"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/departments","/stats","/explorer","/search","/instructors/by-rating-count"]},{"name":"open_department","kind":"act","impl":"imperative","description":"Open a department page in the current tab. Use a subject code from list_departments.","title":"open department","annotations":{"readOnlyHint":false,"untrustedContentHint":false,"consequentialHint":false},"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"subject":{"type":"string","minLength":1,"maxLength":32,"pattern":"^[A-Za-z0-9]+$","description":"Subject code, e.g. COMPSCI."}},"required":["subject"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/departments","/stats","/explorer","/search","/instructors/by-rating-count"]},{"name":"open_explorer","kind":"act","impl":"imperative","description":"Open the prerequisite explorer map. Omit subject for the directory; pass a subject code for that department's map.","title":"open explorer","annotations":{"readOnlyHint":false,"untrustedContentHint":false,"consequentialHint":false},"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"subject":{"type":"string","minLength":1,"maxLength":32,"pattern":"^[A-Za-z0-9]+$","description":"Subject code, e.g. COMPSCI."}},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/departments","/stats","/explorer","/search","/instructors/by-rating-count"]},{"name":"open_search","kind":"act","impl":"imperative","description":"Open the search page in the current tab with optional text and entity type.","title":"open search","annotations":{"readOnlyHint":false,"untrustedContentHint":false,"consequentialHint":false},"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"q":{"description":"Search text.","type":"string","maxLength":200},"kind":{"type":"string","enum":["course","instructor"]},"subject":{"type":"string","minLength":1,"maxLength":32,"pattern":"^[A-Za-z0-9]+$","description":"Subject code, e.g. COMPSCI."}},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/departments","/stats","/explorer","/search","/instructors/by-rating-count"]}],"category":"Health & Education","favicon":"/favicons/uwcourses.com.png","apiSurface":"spec","platforms":["cloudflare"],"toolCount":18}}