# Upsked > Read-only catalog API for Philippine university class schedules: schools, semesters, course search, and schedulable sections. Upsked is a student schedule planner. **Catalog API** exposes catalog data for third-party integrations. ## Catalog API (start here for agents) - [Full API reference (Markdown)](https://upsked.com/developers.md): Auth, quickstart curl, endpoints, JSON samples, error codes, changelog. **Copy this URL into any LLM.** - [Interactive reference](https://upsked.com/developers): Human docs and a live request console. Keys from Account settings at https://upsked.com/?settings=account. ## Base URLs **Use this for all API calls (always available):** - `https://upsked.com/api/public/v1` with paths `/universities`, `/semesters`, `/courses`, `/sections` **Optional subdomain alias** (same handlers when attached): - `https://api.upsked.com` with paths without the `/api/public/v1` prefix ## Recommended integrator flow Every request: `Authorization: Bearer upsked_api_v1_...` (scope `catalog:read`). Create keys in Account settings at https://upsked.com/?settings=account, then open Public REST API. 1. `GET https://upsked.com/api/public/v1/universities` to pick `university_id` and read `capabilities` before search or sections. 2. `GET https://upsked.com/api/public/v1/semesters?university=` to pick `semester_id` (or `default_semester_id`). 3. `GET https://upsked.com/api/public/v1/courses?semester_id=…&query=…` to pick `course_id` (skip if `section_count` is 0). 4. `GET https://upsked.com/api/public/v1/sections?semester_id=…&course_id=…` for schedulable options and schedules. Errors: `{ "object": "error", "code": "...", "message": "..." }`. **429** returns `rate_limited`. Browser CORS is first-party only. Use server-side integrations. ## MCP (planner + connection) - [MCP agent docs (Markdown)](https://upsked.com/developers-mcp.md): OAuth/PAT setup and `upsked://docs/*` guides (readable without MCP session). - MCP HTTP endpoint: `https://upsked.com/api/mcp` requires OAuth or a personal token to call tools. - Prefer MCP in Cursor or Claude. Use REST above for backend scripts and services.