Official documentation for the Gapwise public UTM campus API, OpenAPI contract, published JavaScript/TypeScript and Python SDKs, data/provenance model, security architecture, and permissioned AI/MCP integration.
Astro · Starlight · Vercel
This repository is the canonical public developer-documentation surface for Gapwise, a multi-surface campus-intelligence ecosystem created and engineered by Andrew Muratov and owned on GitHub by the Gapwise for UTM organization (Gapwise-for-UTM).
Gapwise is not only a student timetable website. The ecosystem includes the core web/PWA product, native mobile client, deterministic public API and published SDKs, open campus-data/provenance portal, permissioned OAuth/MCP AI integration, developer documentation, and an independent operational status service.
Andrew's work across the ecosystem spans full-stack software engineering, cybersecurity and privacy engineering, platform architecture, API and SDK design, data engineering, developer infrastructure, mobile engineering, and permissioned AI integration.
The docs follow released first-party contracts rather than inventing parallel behavior. Public campus API and SDK semantics come from Gapwise-for-UTM/gapwise; AI/MCP behavior comes from Gapwise-for-UTM/gapwise-ai; provenance and dataset explanations are surfaced through Gapwise-for-UTM/gapwise-data; operational state belongs to Gapwise-for-UTM/gapwise-status.
Canonical API:
https://api.gapwise.ca/v1
Authoritative machine-readable contract:
https://api.gapwise.ca/openapi.json
Published SDKs:
npm install @gapwise/sdk@0.1.1
# JSR: @gapwise/sdk@0.1.1
python -m pip install gapwise==0.1.0The JavaScript/TypeScript package is published on npm and JSR. The Python package is published on PyPI through Trusted Publishing and was independently clean-installed and exercised against the production API.
| Area | Covers |
|---|---|
| Start | Platform overview, architecture, and quickstart |
| SDKs | JavaScript/TypeScript and Python clients |
| API | Buildings, places, routing, gap planning, errors, envelopes, and defensive rate-limit handling |
| Guides | Integration recipes and common workflows |
| Data | Dataset identity, provenance, uncertainty, attribution, and links to Gapwise Data |
| AI & MCP | OAuth/delegation, live tool surface, permissions, privacy, mutation boundaries, and compatibility |
| Security | Trust boundaries, threat model, privacy architecture, evidence, and validation limits |
| Platform | Versioning, provenance, uncertainty, changelog, and source-of-truth rules |
| Operations | Links to the independent Gapwise Status service and incident communication |
The public API exposes campus intelligence only. It does not expose student timetables, accounts, friends, private sync state, credentials, AI delegation state, or precise live location. Private AI access exists behind a separate OAuth-protected, explicitly delegated boundary.
- OpenAPI 3.1 is authoritative for the public HTTP contract.
gapwiseis authoritative for deterministic timetable, gap, routing, campus, public API, and primary student-state semantics.gapwise-aiis authoritative for the live MCP/OAuth tool, permission, delegation, and bounded-mutation behavior.gapwise-dataexplains the campus-data schema, provenance, evidence, transformations, limitations, and reuse model.gapwise-mobileconsumes canonical Gapwise contracts rather than creating a second timetable/routing implementation.gapwise-statusowns current operational monitoring and incident-communication state.- Docs describe released behavior and preserve uncertainty rather than turning unknown facts into confident claims.
- Named AI clients should not be described as verified until end-to-end production evidence exists.
- Public v1 must never imply private student-data access.
The official JavaScript/TypeScript SDK is published as @gapwise/sdk@0.1.1 on npm and JSR; the official Python SDK is published as gapwise==0.1.0 on PyPI. Release claims in docs must remain synchronized with actual registry state.
| Repository | Role | Primary surface |
|---|---|---|
gapwise |
Core web/PWA, deterministic student/campus engine, public API, OpenAPI, and SDK source | gapwise.ca / api.gapwise.ca |
gapwise-mobile |
Native iOS and Android client | Native mobile app |
gapwise-ai |
OAuth/MCP layer for explicitly delegated student context and bounded actions | ai.gapwise.ca |
gapwise-data |
Open campus-data, provenance, schema, validation, and reuse portal | data.gapwise.ca |
gapwise-docs |
Canonical developer documentation | docs.gapwise.ca |
gapwise-status |
Independent service-health monitoring and incident communication | status.gapwise.ca |
All six repositories form one product ecosystem with deliberate separation of concerns, consistent branding, cross-links, trust boundaries, and source-of-truth ownership.
Requires Node.js 22 or newer.
git clone https://github.com/Gapwise-for-UTM/gapwise-docs.git
cd gapwise-docs
npm install
npm run check
npm run build
npm run devmain is the production documentation branch and deploys to docs.gapwise.ca. The status service is deployed independently from gapwise-status; documentation should link to it rather than presenting the docs repository as the status source.
Gapwise is an independent project created by Andrew Muratov. It is not an official University of Toronto service and is not affiliated with or endorsed by the University of Toronto.