Skip to main content

Conventions

Rules that apply across every endpoint in this section.


Base URL​

https://<your-api-host>/api/v2

All paths in the Endpoint reference are relative to it.

Format​

All responses are JSON. All endpoints in this guide are GET only.

Money​

Amounts are in cents. 129500 is $1,295.00.

cost is an integer; down_payment on the class detail endpoint is a numeric string ("25000") — cast it before doing arithmetic. Do not assume a currency symbol; format it in your own application.

Dates​

Class start and end are calendar dates (YYYY-MM-DD). Timestamps on administrative resources are ISO-8601 UTC.

Date filters use a different format

Date filters on the search endpoints use MM-DD-YYYY, not YYYY-MM-DD — see Search classes.

Visibility​

Only courses and classes marked public in AnchorPoint are returned. A private course or class behaves as if it does not exist: 404, not 403.

Do not treat a 404 here as an integration bug; it is the normal answer for non-public or deleted content.

Seat counts​

available_seats (and open_seats on the class detail endpoint) is the tighter of the class capacity and the room capacity, minus active registrations, floored at zero.

It is null when a class is uncapped — meaning unlimited seats, not sold out. Always distinguish null from 0:

const label =
seats === null
? "Open enrolment"
: seats === 0
? "Full"
: `${seats} seats left`;

Seat counts are live but not reserved. A class showing one seat can fill between your read and a student's registration attempt.

Course types​

The type field is one of Online, Brick and Mortar, or Blended. Online courses have no physical location, so location fields are null (or the string "online" on the class detail endpoint).