Skip to content

Gap planning

Gapwise gap planning assesses whether a free interval is practically usable after accounting for travel, transition time, and explicit planning preferences. The public API never retrieves a student’s private timetable.

POST https://api.gapwise.ca/v1/gaps/plan
Content-Type: application/json

Example:

{
"from": "MN",
"to": "IB",
"term": "Fall",
"weekday": "Wednesday",
"startTime": 660,
"endTime": 780
}

startTime and endTime are explicit minute-of-day boundaries for the interval being assessed. Your application is responsible for deciding which interval to send.

The request may include routePreferences and gapPreferences. Route preferences use the same deterministic routing controls as POST /v1/routes. Gap preferences can express setup/pack-up time, meal-window assumptions, willingness to leave campus, home-commute assumptions, and risk tolerance where supported by the contract.

Only documented top-level and nested fields are accepted. Unknown fields fail validation instead of being ignored.

Gap planning is deterministic for the same inputs and data version. Preserve the result’s route coverage, confidence/assessment information, warnings, and uncertainty fields in your own application.

A recommendation is constrained by the public campus facts Gapwise can support. Unknown or unavailable routing/accessibility evidence remains unknown or unavailable; the planner does not fabricate certainty to produce a more convenient answer.

The v1 endpoint accepts only the explicit interval and boundary buildings you provide. It does not accept an uploaded timetable, read a Gapwise session, query private calendar data, inspect friends, or access precise live location.

Validation errors are not retryable. For transient failures or HTTP 429, use bounded retries and honor Retry-After when supplied. Canonical errors contain a stable error code and request ID.