uwcourses.com
Search UW–Madison courses and compare historical grade distributions, prerequisites, class schedules, and professor ratings and reviews.
First seen 2026-11-05 · Last seen 2026-11-05 · Source: webmcp.com
Answer 13 · Act 5 · Transact 0 · Score: Not yet scored
Tool inspector
search_courses
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.
Page: /
Input schema
| Property | Type | Required | Description |
|---|---|---|---|
q |
string | no | Course code or search text, e.g. CS 300 or programming. |
subject |
— | no | Subject codes combined with OR, up to 12. Example: COMPSCI,MATH. |
term |
string | no | UW term ID, e.g. 1272 for Fall 2026. Omit to use the endpoint default. |
availability |
string | no | — |
page |
integer | no | — |
level |
— | no | 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. |
tags |
array | no | 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. |
credits_min |
number | no | The course can be taken for at least this many credits (its credit maximum is at least this value). 0 through 20. |
credits_max |
number | no | The course can be taken for at most this many credits (its credit minimum is at most this value). 0 through 20. |
gpa_min |
number | no | 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. |
gpa_max |
number | no | 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. |
gpa_max_exclusive |
boolean | no | 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. |
requisites |
string | no | none: parsed catalog text lists no course and no condition. listed: it lists at least one. Unparsed requisites match neither. |
season |
array | no | 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. |
designation |
array | no | 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. |
instructor |
string | no | Instructor uid. With recorded offerings, they must teach the course in the selected term. With the full catalog, any recorded teaching row matches. |
days |
array | no | 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. |
days_match |
string | no | within (default) or any. Ignored when days is empty. |
time |
array | no | 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. |
mode |
array | no | 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. |
sort |
string | no | Order by historical GPA; omit for default search ordering. |
ranking |
string | no | Historical GPA ranking, requiring at least 100 grades; not a guarantee of difficulty. |
Raw JSON schema
{
"$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
}
Similar websites
pocketgull.app
Pocket Gull is a real-time clinical AI consult engine powered by Google Gemini. Features 10D multi-paradigm strategy, FHIR R4 export & 3D spatial anatomy.
webmcp-six-lac.vercel.app
AI Navigation Layer: Model Context Protocol (MCP) Semantic DOM integration for intelligent, safe, and observable web navigation.
ghqsandbox.net
Interactive math and physics tools an AI agent can drive directly through WebMCP.
app.formative.com
Formative classroom assessment and learning platform