All paths are relative to the base URL https://app.openmanagerapp.com/api/v1. Every endpoint is GET and read-only. The machine-readable contract (request and response schemas) is in the OpenAPI document linked below.
GET /api/v1/locations
List your studio locations.
Returns: An array of locations, each with id, title, priority, and is_main.
GET /api/v1/schedule
List classes in a date range (range up to 31 days).
Parameters
date_from — Start of the range, YYYY-MM-DD.
date_to — End of the range, YYYY-MM-DD (≤31 days after date_from).
Returns: An object { date_start, date_end, classes: [...] }, where each class has id, name, date, start, end, teacher, room, capacity, booked_count, and spots_left.
GET /api/v1/classes/:id
Get one class in detail.
Parameters
:id — The class id.
Returns: A single class with its detail, including roster count and waitlist.
GET /api/v1/students
Search students (paginated, 25 per page).
Parameters
query — Optional search text (name or email).
active — Optional boolean to filter active students.
page — Optional page number (25 results per page).
Returns: An object { students: [{ id, name, email, active, ... }], page, per_page, total_entries, total_pages }.
GET /api/v1/students/:id
Get one student profile.
Parameters
:id — The student id.
Returns: A single student profile.
GET /api/v1/students/active_count
Count active students.
Returns: An object { active_count }.
GET /api/v1/students/:id/memberships
List a student's memberships and tickets.
Parameters
:id — The student id.
Returns: The student's memberships and tickets.
GET /api/v1/expiring_memberships
List memberships expiring within N days.
Parameters
within_days — Window in days; returns memberships expiring within it.
Returns: The memberships expiring within the given window.