ASU Course Catalog microservices API

ASU's own course, class and subject search API, running at eadvs-cscc-catalog-api.apps.asu.edu/catalog-microservices/api/v1 and consumed by the public class-search single-page application at catalog.apps.asu.edu. Endpoints observed include /search/terms, /search/subjects, /search/classes, /search/courses, /search/seats, /search/cohortcount and /search/reservedseats. ASU-built and ASU-hosted, but OAuth-gated: every path returns 401 Unauthorized without a bearer token obtained against an ASU client_id, and no client registration, token endpoint or scope catalogue is published for outside developers. The catalog itself is public through the web UI only; third-party tools scrape it.

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/course-catalog-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

API entry from apis.yml

apis.yml Raw ↑
aid: arizona-state-university:course-catalog-api
name: ASU Course Catalog microservices API
description: 'ASU''s own course, class and subject search API, running at eadvs-cscc-catalog-api.apps.asu.edu/catalog-microservices/api/v1
  and consumed by the public class-search single-page application at catalog.apps.asu.edu. Endpoints observed
  include /search/terms, /search/subjects, /search/classes, /search/courses, /search/seats, /search/cohortcount
  and /search/reservedseats. ASU-built and ASU-hosted, but OAuth-gated: every path returns 401 Unauthorized
  without a bearer token obtained against an ASU client_id, and no client registration, token endpoint
  or scope catalogue is published for outside developers. The catalog itself is public through the web
  UI only; third-party tools scrape it.'
humanURL: https://catalog.apps.asu.edu/catalog/classes
baseURL: https://eadvs-cscc-catalog-api.apps.asu.edu/catalog-microservices/api/v1
tags:
- Course Catalog
- Class Search
- Registrar
- Education
- Undocumented
- Gated
properties:
- type: CourseCatalog
  url: https://catalog.apps.asu.edu/catalog/classes
- type: Authentication
  url: authentication/arizona-state-university-authentication.yml
x-operator: institution
x-operator-evidence: Host is under apps.asu.edu, ASU's own registrable domain; the SPA that calls it is
  served from catalog.apps.asu.edu. No vendor name appears anywhere in the endpoint grammar or the bundle.
x-discovery: Endpoint inventory read from the public SPA bundle https://catalog.apps.asu.edu/assets/index-BkWV8O6a.js
  (200, 2342417 bytes) on 2026-09-01. The SPA shell at /catalog/classes is 391 bytes of markup — link
  presence alone would have shown a "public course catalog API" that does not exist.
x-probe:
  baseURL_status: 404
  probed: '2026-09-01'
  operation_probe: https://eadvs-cscc-catalog-api.apps.asu.edu/catalog-microservices/api/v1/search/terms
  operation_probe_status: 401
  negative_probe: https://eadvs-cscc-catalog-api.apps.asu.edu/catalog-microservices/api/v1/NOT-REAL
  negative_probe_status: 404
  note: The bare base path 404s (it is a prefix, not an operation); every real operation under it 401s;
    a fabricated operation 404s. The three differ, so the 401 is a genuine authorization boundary on a
    live service rather than a catch-all. Graded LIVE but auth_required.