Skip to content

Catalog endpoints

The catalog endpoints surface the contents of the published index read-only. They do not require a state token (though responses may be shorter or have different bounds when called from authenticated state context).

All return the standard envelope.

Index metadata

GET /api/v1/index

Returns the catalog version, build timestamp, validation summary, and release decision of the index the backend is currently serving.

Useful for “is uwwoe up?”, “what catalog am I against?”, and “what was this index’s build commit?”.

Courses

List

GET /api/v1/courses?limit=N&cursor=...&subject=MATH&q=alg

Returns a paged list of courses. Filters:

  • subject — narrow to one subject code.
  • q — partial match on subject + catalog number + title.
  • limit — page size (server-bounded).
  • cursor — opaque pagination cursor from a prior response.

Used by the frontend command palette to populate course search.

Detail

GET /api/v1/courses/{subject}/{catalog_number}

Path-encoded; e.g., /api/v1/courses/MATH/247. Returns the full course record:

  • Title, description, units.
  • Structured prerequisite expression (with UnparsedRequirement records preserved as first-class nodes).
  • Antirequisites.
  • Cross-listings.
  • source_reference_ids for every claim.

The full set of referenced records is included in the response envelope’s source_references array.

Credentials

List

GET /api/v1/credentials?limit=N&cursor=...&kind=minor

Filters:

  • kinddegree, major, minor, option, specialization.
  • q — partial match on credential id or title.
  • limit, cursor — pagination.

Detail

GET /api/v1/credentials/{credential_id}

Returns the structured requirement tree for the credential, with each rule carrying its own source reference. Use this to render the requirement structure without any student state attached.

For state-overlaid progress, use the POST /api/v1/query/credential-progress endpoint instead.

Source references

GET /api/v1/source-references/{source_reference_id}

Returns the full record for one source reference: kind, raw catalog text, capture timestamp, catalog version.

Used by the in-app inspector when the user clicks “view source” on any node or claim.

Bounds

Catalog list endpoints are paginated. There is no graph-view-style truncation here — pagination is via cursor + limit, and exceeding a server-set max limit returns 400 bad_request.

Errors

Standard errors apply (see Errors). Specific to catalog:

StatusCodeCause
404course_not_foundThe subject/catalog combination doesn’t exist in the current index.
404credential_not_foundNo such credential id.
404source_reference_not_foundReference id doesn’t exist (or belongs to a different catalog version).

Want more?