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/indexReturns 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=algReturns 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
UnparsedRequirementrecords preserved as first-class nodes). - Antirequisites.
- Cross-listings.
source_reference_idsfor 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=minorFilters:
kind—degree,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:
| Status | Code | Cause |
|---|---|---|
404 | course_not_found | The subject/catalog combination doesn’t exist in the current index. |
404 | credential_not_found | No such credential id. |
404 | source_reference_not_found | Reference id doesn’t exist (or belongs to a different catalog version). |
Want more?
- Backend API spec — full request/response grammar.
- Architecture: index pipeline — how the index gets built.