New: campus map with indoor floor plans and walking times →

Developers

A free, read-only API and open data for NTU modules, class indexes and exams. Built for student projects and AI tools.

Terms of use (no opt out)#

By using any API or file on this page, you accept these terms. There is no opt out. If you do not accept them, do not use the APIs.

  • You use these APIs entirely at your own risk. The owner of NTUMods is not responsible for, and is not implicated in, anything you build or do with them.
  • The owner can change, restrict or remove any API, dataset or response format at any time, without notice.

Basics#

  • Free to use. No API key and no sign-up. Every endpoint is a plain GET.
  • The data is NTU public course data. It can be out of date or wrong, so always check STARS before you rely on it.
  • A machine-readable OpenAPI 3.1 file is available.

Best practices#

  • Cache what you fetch. Course data changes a few times a semester, so store responses instead of asking again.
  • Download files for bulk work. If you need many modules, download /data/api/modules.json or a semester file once. Do not call /api/modules/{code} in a loop.
  • Keep your request rate modest. Space requests out and avoid bursts of parallel calls.
  • Back off on errors. On 429 or 503, wait the number of seconds in the Retry-After header before you retry. Never retry in a tight loop.
  • Use the canonical URL. Send an uppercase module code with no query string, so you skip the 308 redirect.
  • Do not abuse the service. Do not try to overload it, get around its limits or probe other routes, and do not use it to harm others.
  • Tell your users the data can be wrong. Show how fresh your copy is and point them to STARS for anything that affects registration.

Modules#

One module as JSON.

Open data#

Whole-dataset JSON files.

Discovery#

Files for tools and AI assistants.

AI assistants and WebMCP#

NTUMods also offers its tools to browser AI assistants through WebMCP. This is an early developer preview. The standard is still a draft and support is limited, so treat it as something to test, not to build on. The discovery files above list what is available. For setup steps, read the WebMCP guide.