Read Teachworks students, families, tutors, lessons, invoices and payments; book lessons.
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
WRITE: add a student to an existing lesson (the lesson must still be Scheduled). PUT /lessons/{id}/add_student.
Lesson id.
Student id to add.
The server marks this tool as destructive. Running it may delete or overwrite data on the server or in any account you connected with your headers.
WRITE: add a student to an existing lesson (the lesson must still be Scheduled). PUT /lessons/{id}/add_student.
| Argument | Type | Description |
|---|---|---|
| lesson_id* | any | Lesson id. |
| student_id* | any | Student id to add. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"lesson_id",
"student_id"
],
"properties": {
"lesson_id": {
"anyOf": [
{
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
{
"type": "string",
"pattern": "^\\d+$"
}
],
"description": "Lesson id."
},
"student_id": {
"anyOf": [
{
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
{
"type": "string",
"pattern": "^\\d+$"
}
],
"description": "Student id to add."
}
}
}WRITE: create a child student under an existing family (the family is billed for their lessons). POST /students.
| Argument | Type | Description |
|---|---|---|
| string | ||
| grade | string | |
| school | string | |
| status | string | |
| last_name* | string | |
| birth_date | string | |
| first_name* | string | |
| start_date | string | |
| customer_id* | any | The family (customer) id the student belongs to. |
| mobile_phone | string | |
| additional_notes | string | |
| default_location_id | any | |
| default_service_ids | array | Default service ids. |
| default_teacher_ids | array |
WRITE: create a family customer (the billed parent profile that child students belong to). Add children afterwards with teachworks_create_child_student. POST /customers/family.
| Argument | Type | Description |
|---|---|---|
| zip | string | |
| city | string | |
| string | Primary email (notifications, user account). | |
| state | string | |
| status | string | Defaults to Active; use Prospective for leads. |
| address | string | |
| country | string | |
| last_name* | string | Family last name. |
| first_name* | string | Parent first name(s), e.g. 'Frank & Tina'. |
| home_phone | string |
WRITE: schedule a single lesson on the calendar for one or more students with a teacher, service and location. Check teachworks_list_availabilities and teachworks_list_lessons first to avoid conflicts. POST /lessons.
| Argument | Type | Description |
|---|---|---|
| name | string | Lesson name (defaults per Teachworks settings). |
| spaces | integer | Number of student spaces (group lessons). |
| to_date | string | End date (defaults to from_date). |
| to_time* | string | End time, e.g. 17:00. |
| from_date* | string | Start date. |
| from_time* | string | Start time, e.g. 16:00. |
| time_zone | string | Rails time zone name, e.g. 'Eastern Time (US & Canada)' (defaults to the account's). |
| service_id* | any | Service id (sets the default cost and wage). |
WRITE: record a payment received from a customer (bookkeeping only — it does not charge a card). POST /payments.
| Argument | Type | Description |
|---|---|---|
| date* | string | Payment date. |
| amount* | number | Amount paid. |
| customer_id* | any | Customer that paid. |
| description | string | Details, e.g. 'Payment for INV-0216'. |
| payment_method | string |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"customer_id",
"amount",
"date"
],
"properties": {
"date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Payment date."
},
"amount": {
"type": "number",
"description": "Amount paid.",
"exclusiveMinimum": 0
},
"customer_id": {
"anyOf": [
{
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
{
"type": "string",
"pattern": "^\\d+$"
}
],
"description": "Customer that paid."
},
"description": {
"type": "string",
"description": "Details, e.g. 'Payment for INV-0216'."
},
"payment_method": {
"enum": [
"Cash",
"Check",
"Credit Card",
"Debit Card",
"Bank Transfer",
"PayPal",
"Other"
],
"type": "string"
}
}
}Retrieve one customer (family or independent student) with contact details and custom fields. GET /customers/{id}.
| Argument | Type | Description |
|---|---|---|
| customer_id* | any | Customer id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"customer_id"
],
"properties": {
"customer_id": {
"anyOf": [
{
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
{
"type": "string",
"pattern": "^\\d+$"
}
],
"description": "Customer id."
}
}
}Retrieve one employee (teacher or staff): contact details, subjects, wage type, bio, permissions. GET /employees/{id}.
| Argument | Type | Description |
|---|---|---|
| employee_id* | any | Employee id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"employee_id"
],
"properties": {
"employee_id": {
"anyOf": [
{
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
{
"type": "string",
"pattern": "^\\d+$"
}
],
"description": "Employee id."
}
}
}Total earnings of one employee (lessons, other events, other compensation, total) for an optional lesson status and date range. GET /employees/{id}/earnings.
| Argument | Type | Description |
|---|---|---|
| status | string | Only lessons with this status. |
| date_to | string | Lessons starting on or before this date. |
| date_from | string | Lessons starting on or after this date. |
| employee_id* | any | Employee id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"employee_id"
],
"properties": {
"status": {
"enum": [
"Scheduled",
"Attended",
"Cancelled",
"Missed"
],
"type": "string",
"description": "Only lessons with this status."
},
"date_to": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Lessons starting on or before this date."
},
"date_from": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Lessons starting on or after this date."
},
"employee_id": {
"anyOf": [
{
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
{
"type": "string",
"pattern": "^\\d+$"
}
],
"description": "Employee id."
}
}
}Retrieve one invoice with its line items (lessons, charges), taxes and totals. GET /invoices/{id}.
| Argument | Type | Description |
|---|---|---|
| invoice_id* | any | Invoice id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"invoice_id"
],
"properties": {
"invoice_id": {
"anyOf": [
{
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
{
"type": "string",
"pattern": "^\\d+$"
}
],
"description": "Invoice id."
}
}
}Retrieve one lesson with its participants (students, statuses, charges, notes), teacher, wage and cost. GET /lessons/{id}.
| Argument | Type | Description |
|---|---|---|
| lesson_id* | any | Lesson id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"lesson_id"
],
"properties": {
"lesson_id": {
"anyOf": [
{
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
{
"type": "string",
"pattern": "^\\d+$"
}
],
"description": "Lesson id."
}
}
}Lesson totals for one student, customer or employee: count (default), duration in minutes, or (employees only) earnings, broken down by status, for an optional status and date range. GET /{students|customers|employees}/{id}/lesson_totals.
| Argument | Type | Description |
|---|---|---|
| id* | any | The student, customer or employee id. |
| kind* | string | Whose lessons to total. |
| status | string | Only lessons with this status. |
| date_to | string | Lessons starting on or before this date. |
| measure | string | count (default), duration (minutes) or earnings (employees only). |
| date_from | string | Lessons starting on or after this date. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"kind",
"id"
],
"properties": {
"id": {
"anyOf": [
{
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
{
"type": "string",
"pattern": "^\\d+$"
}
],
"description": "The student, customer or employee id."
},
"kind": {
"enum": [
"student",
"customer",
"employee"
],
"type": "string",
"description": "Whose lessons to total."
},
"status": {
"enum": [
"Scheduled",
"Attended",
"Cancelled",
"Missed"
],
"type": "string",
"description": "Only lessons with this status."
},
"date_to": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Lessons starting on or before this date."
},
"measure": {
"enum": [
"count",
"duration",
"earnings"
],
"type": "string",
"description": "count (default), duration (minutes) or earnings (employees only)."
},
"date_from": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Lessons starting on or after this date."
}
}
}Retrieve one payment with its refunds and the invoices it is allocated to. GET /payments/{id}.
| Argument | Type | Description |
|---|---|---|
| payment_id* | any | Payment id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"payment_id"
],
"properties": {
"payment_id": {
"anyOf": [
{
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
{
"type": "string",
"pattern": "^\\d+$"
}
],
"description": "Payment id."
}
}
}Retrieve one student profile: contact details, school/grade, billing, custom fields, default teachers/services. GET /students/{id}.
| Argument | Type | Description |
|---|---|---|
| student_id* | any | Student id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"student_id"
],
"properties": {
"student_id": {
"anyOf": [
{
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
{
"type": "string",
"pattern": "^\\d+$"
}
],
"description": "Student id."
}
}
}List teachers' weekly availability slots (day of week + start/end time). Use before scheduling a lesson. GET /availabilities.
| Argument | Type | Description |
|---|---|---|
| day | integer | Day of week, Sunday = 0 … Saturday = 6. |
| page | integer | Page number (1-based, default 1). |
| per_page | integer | Records per page (default 20, max 50). |
| direction | string | Sort by id ascending (default) or descending (newest first). |
| employee_id | any | Only this teacher's availability. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"day": {
"type": "integer",
"maximum": 6,
"minimum": 0,
"description": "Day of week, Sunday = 0 … Saturday = 6."
},
"page": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Page number (1-based, default 1).",
"exclusiveMinimum": 0
},
"per_page": {
"type": "integer",
"maximum": 50,
"description": "Records per page (default 20, max 50).",
"exclusiveMinimum": 0
},
"direction": {
"enum": [
"asc",
"desc"
],
"type": "string",
"description": "Sort by id ascending (default) or descending (newest first)."
},
"employee_id": {
"anyOf": [
{
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
{
"type": "string",
"pattern": "^\\d+$"
}
],
"description": "Only this teacher's availability."
}
}
}List or search customers — the billed profiles: families (with child students) and independent students. Returns contact details, status and last invoice date. GET /customers.
| Argument | Type | Description |
|---|---|---|
| zip | string | |
| city | string | |
| page | integer | Page number (1-based, default 1). |
| type | string | family or independent. |
| string | Search by email. | |
| state | string | |
| status | string | |
| country | string | |
| per_page | integer | Records per page (default 20, max 50). |
| direction | string | Sort by id ascending (default) or descending (newest first). |
List or search employees — teachers/tutors and administrative staff — with subjects, status and wage settings. GET /employees.
| Argument | Type | Description |
|---|---|---|
| zip | string | |
| city | string | |
| page | integer | Page number (1-based, default 1). |
| string | Search by email. | |
| state | string | |
| status | string | |
| subject | string | Search by subject taught. |
| per_page | integer | Records per page (default 20, max 50). |
| direction | string | Sort by id ascending (default) or descending (newest first). |
| last_name | string | Search by last name. |
List invoices with customer, number, dates, status (Saved, Approved, Paid, Void) and totals. Filter by customer, status, invoice date or due date range. GET /invoices.
| Argument | Type | Description |
|---|---|---|
| page | integer | Page number (1-based, default 1). |
| due_to | string | Due date on or before (e.g. today, to find overdue invoices together with status Approved). |
| number | any | Invoice number. |
| status | string | |
| date_to | string | Invoice date on or before. |
| due_from | string | Due date on or after. |
| per_page | integer | Records per page (default 20, max 50). |
| date_from | string | Invoice date on or after. |
| direction | string | Sort by id ascending (default) or descending (newest first). |
| customer_id |
List lessons (the calendar) with teacher, service, location, start/end, duration, status and participants. Filter by teacher, student, location, service, status and date range. GET /lessons.
| Argument | Type | Description |
|---|---|---|
| name | string | Search by lesson name. |
| page | integer | Page number (1-based, default 1). |
| status | string | |
| date_to | string | Lessons starting on or before this date. |
| joinable | boolean | true = only lessons marked joinable. |
| per_page | integer | Records per page (default 20, max 50). |
| date_from | string | Lessons starting on or after this date. |
| direction | string | Sort by id ascending (default) or descending (newest first). |
| from_date | string | Lessons starting on exactly this date. |
List locations and sub-locations (rooms) where lessons take place. GET /locations.
| Argument | Type | Description |
|---|---|---|
| name | string | Search by name. |
| page | integer | Page number (1-based, default 1). |
| per_page | integer | Records per page (default 20, max 50). |
| direction | string | Sort by id ascending (default) or descending (newest first). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"name": {
"type": "string",
"description": "Search by name."
},
"page": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Page number (1-based, default 1).",
"exclusiveMinimum": 0
},
"per_page": {
"type": "integer",
"maximum": 50,
"description": "Records per page (default 20, max 50).",
"exclusiveMinimum": 0
},
"direction": {
"enum": [
"asc",
"desc"
],
"type": "string",
"description": "Sort by id ascending (default) or descending (newest first)."
}
}
}List non-lesson calendar events (meetings, open houses, staff work) with location, times and participants. GET /other_events.
| Argument | Type | Description |
|---|---|---|
| page | integer | Page number (1-based, default 1). |
| date_to | string | Events starting on or before this date. |
| per_page | integer | Records per page (default 20, max 50). |
| date_from | string | Events starting on or after this date. |
| direction | string | Sort by id ascending (default) or descending (newest first). |
| from_date | string | Events starting on exactly this date. |
| series_id | any | Only events of this repeating series. |
| employee_id | any | Only events of this employee. |
| location_id | any | Only events at this location. |
List customer payments (amount, method, date, refunds, invoice allocations). Filter by customer and date range. GET /payments.
| Argument | Type | Description |
|---|---|---|
| page | integer | Page number (1-based, default 1). |
| date_to | string | Payment date on or before. |
| per_page | integer | Records per page (default 20, max 50). |
| date_from | string | Payment date on or after. |
| direction | string | Sort by id ascending (default) or descending (newest first). |
| customer_id | any | Only payments of this customer. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"page": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Page number (1-based, default 1).",
"exclusiveMinimum": 0
},
"date_to": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Payment date on or before."
},
"per_page": {
"type": "integer",
"maximum": 50,
"description": "Records per page (default 20, max 50).",
"exclusiveMinimum": 0
},
"date_from": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Payment date on or after."
},
"direction": {
"enum": [
"asc",
"desc"
],
"type": "string",
"description": "Sort by id ascending (default) or descending (newest first)."
},
"customer_id": {
"anyOf": [
{
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
{
"type": "string",
"pattern": "^\\d+$"
}
],
"description": "Only payments of this customer."
}
}
}List services (lesson types such as 'Math Tutoring') with their default cost and wage. GET /services.
| Argument | Type | Description |
|---|---|---|
| name | string | Search by name. |
| page | integer | Page number (1-based, default 1). |
| per_page | integer | Records per page (default 20, max 50). |
| direction | string | Sort by id ascending (default) or descending (newest first). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"name": {
"type": "string",
"description": "Search by name."
},
"page": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Page number (1-based, default 1).",
"exclusiveMinimum": 0
},
"per_page": {
"type": "integer",
"maximum": 50,
"description": "Records per page (default 20, max 50).",
"exclusiveMinimum": 0
},
"direction": {
"enum": [
"asc",
"desc"
],
"type": "string",
"description": "Sort by id ascending (default) or descending (newest first)."
}
}
}List or search students (child students of families and independent students) with their school, grade, subjects, status, billing method and default teachers. GET /students.
| Argument | Type | Description |
|---|---|---|
| page | integer | Page number (1-based, default 1). |
| type | string | family = child students, independent = independent students. |
| string | Search by email. | |
| grade | string | Search by grade. |
| school | string | Search by school. |
| status | string | |
| subject | string | Search by subject. |
| per_page | integer | Records per page (default 20, max 50). |
| direction | string | Sort by id ascending (default) or descending (newest first). |
| last_name | string |
List standard subjects (used on student and teacher profiles). GET /subjects.
| Argument | Type | Description |
|---|---|---|
| name | string | Search by name (partial match). |
| page | integer | Page number (1-based, default 1). |
| per_page | integer | Records per page (default 20, max 50). |
| direction | string | Sort by id ascending (default) or descending (newest first). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"name": {
"type": "string",
"description": "Search by name (partial match)."
},
"page": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Page number (1-based, default 1).",
"exclusiveMinimum": 0
},
"per_page": {
"type": "integer",
"maximum": 50,
"description": "Records per page (default 20, max 50).",
"exclusiveMinimum": 0
},
"direction": {
"enum": [
"asc",
"desc"
],
"type": "string",
"description": "Sort by id ascending (default) or descending (newest first)."
}
}
}| Default teacher (employee) ids. |
| standard_subject_ids | array | Subject ids. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"customer_id",
"first_name",
"last_name"
],
"properties": {
"email": {
"type": "string"
},
"grade": {
"type": "string"
},
"school": {
"type": "string"
},
"status": {
"enum": [
"Active",
"Inactive",
"Prospective"
],
"type": "string"
},
"last_name": {
"type": "string",
"minLength": 1
},
"birth_date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"first_name": {
"type": "string",
"minLength": 1
},
"start_date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"customer_id": {
"anyOf": [
{
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
{
"type": "string",
"pattern": "^\\d+$"
}
],
"description": "The family (customer) id the student belongs to."
},
"mobile_phone": {
"type": "string"
},
"additional_notes": {
"type": "string"
},
"default_location_id": {
"anyOf": [
{
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
{
"type": "string",
"pattern": "^\\d+$"
}
]
},
"default_service_ids": {
"type": "array",
"items": {
"anyOf": [
{
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
{
"type": "string",
"pattern": "^\\d+$"
}
]
},
"description": "Default service ids."
},
"default_teacher_ids": {
"type": "array",
"items": {
"anyOf": [
{
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
{
"type": "string",
"pattern": "^\\d+$"
}
]
},
"description": "Default teacher (employee) ids."
},
"standard_subject_ids": {
"type": "array",
"items": {
"anyOf": [
{
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
{
"type": "string",
"pattern": "^\\d+$"
}
]
},
"description": "Subject ids."
}
}
}| mobile_phone | string |
| additional_notes | string |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"first_name",
"last_name"
],
"properties": {
"zip": {
"type": "string"
},
"city": {
"type": "string"
},
"email": {
"type": "string",
"description": "Primary email (notifications, user account)."
},
"state": {
"type": "string"
},
"status": {
"enum": [
"Active",
"Inactive",
"Prospective"
],
"type": "string",
"description": "Defaults to Active; use Prospective for leads."
},
"address": {
"type": "string"
},
"country": {
"type": "string"
},
"last_name": {
"type": "string",
"minLength": 1,
"description": "Family last name."
},
"first_name": {
"type": "string",
"minLength": 1,
"description": "Parent first name(s), e.g. 'Frank & Tina'."
},
"home_phone": {
"type": "string"
},
"mobile_phone": {
"type": "string"
},
"additional_notes": {
"type": "string"
}
}
}| description |
| string |
| employee_id* | any | Teacher (employee) id. |
| location_id | any | Location id. |
| student_ids* | array | Student ids attending. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"employee_id",
"student_ids",
"service_id",
"from_date",
"from_time",
"to_time"
],
"properties": {
"name": {
"type": "string",
"description": "Lesson name (defaults per Teachworks settings)."
},
"spaces": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Number of student spaces (group lessons).",
"exclusiveMinimum": 0
},
"to_date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "End date (defaults to from_date)."
},
"to_time": {
"type": "string",
"pattern": "^\\d{1,2}:\\d{2}(:\\d{2})?$",
"description": "End time, e.g. 17:00."
},
"from_date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Start date."
},
"from_time": {
"type": "string",
"pattern": "^\\d{1,2}:\\d{2}(:\\d{2})?$",
"description": "Start time, e.g. 16:00."
},
"time_zone": {
"type": "string",
"description": "Rails time zone name, e.g. 'Eastern Time (US & Canada)' (defaults to the account's)."
},
"service_id": {
"anyOf": [
{
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
{
"type": "string",
"pattern": "^\\d+$"
}
],
"description": "Service id (sets the default cost and wage)."
},
"description": {
"type": "string"
},
"employee_id": {
"anyOf": [
{
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
{
"type": "string",
"pattern": "^\\d+$"
}
],
"description": "Teacher (employee) id."
},
"location_id": {
"anyOf": [
{
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
{
"type": "string",
"pattern": "^\\d+$"
}
],
"description": "Location id."
},
"student_ids": {
"type": "array",
"items": {
"anyOf": [
{
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
{
"type": "string",
"pattern": "^\\d+$"
}
]
},
"minItems": 1,
"description": "Student ids attending."
}
}
}| last_name |
| string |
| Search by last name. |
| first_name | string | Search by first name. |
| phone_number | string | Search by phone number. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"zip": {
"type": "string"
},
"city": {
"type": "string"
},
"page": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Page number (1-based, default 1).",
"exclusiveMinimum": 0
},
"type": {
"enum": [
"family",
"independent"
],
"type": "string",
"description": "family or independent."
},
"email": {
"type": "string",
"description": "Search by email."
},
"state": {
"type": "string"
},
"status": {
"enum": [
"Active",
"Inactive",
"Prospective"
],
"type": "string"
},
"country": {
"type": "string"
},
"per_page": {
"type": "integer",
"maximum": 50,
"description": "Records per page (default 20, max 50).",
"exclusiveMinimum": 0
},
"direction": {
"enum": [
"asc",
"desc"
],
"type": "string",
"description": "Sort by id ascending (default) or descending (newest first)."
},
"last_name": {
"type": "string",
"description": "Search by last name."
},
"first_name": {
"type": "string",
"description": "Search by first name."
},
"phone_number": {
"type": "string",
"description": "Search by phone number."
}
}
}| first_name |
| string |
| Search by first name. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"zip": {
"type": "string"
},
"city": {
"type": "string"
},
"page": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Page number (1-based, default 1).",
"exclusiveMinimum": 0
},
"email": {
"type": "string",
"description": "Search by email."
},
"state": {
"type": "string"
},
"status": {
"enum": [
"Active",
"Inactive",
"Prospective"
],
"type": "string"
},
"subject": {
"type": "string",
"description": "Search by subject taught."
},
"per_page": {
"type": "integer",
"maximum": 50,
"description": "Records per page (default 20, max 50).",
"exclusiveMinimum": 0
},
"direction": {
"enum": [
"asc",
"desc"
],
"type": "string",
"description": "Sort by id ascending (default) or descending (newest first)."
},
"last_name": {
"type": "string",
"description": "Search by last name."
},
"first_name": {
"type": "string",
"description": "Search by first name."
}
}
}| any |
| Only invoices of this customer. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"page": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Page number (1-based, default 1).",
"exclusiveMinimum": 0
},
"due_to": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Due date on or before (e.g. today, to find overdue invoices together with status Approved)."
},
"number": {
"anyOf": [
{
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991
},
{
"type": "string"
}
],
"description": "Invoice number."
},
"status": {
"enum": [
"Saved",
"Approved",
"Paid",
"Void"
],
"type": "string"
},
"date_to": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Invoice date on or before."
},
"due_from": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Due date on or after."
},
"per_page": {
"type": "integer",
"maximum": 50,
"description": "Records per page (default 20, max 50).",
"exclusiveMinimum": 0
},
"date_from": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Invoice date on or after."
},
"direction": {
"enum": [
"asc",
"desc"
],
"type": "string",
"description": "Sort by id ascending (default) or descending (newest first)."
},
"customer_id": {
"anyOf": [
{
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
{
"type": "string",
"pattern": "^\\d+$"
}
],
"description": "Only invoices of this customer."
}
}
}| series_id |
| any |
| Only lessons of this repeating series. |
| service_id | any | Only lessons of this service. |
| student_id | any | Only lessons with this student. |
| employee_id | any | Only lessons taught by this teacher (employee id). |
| location_id | any | Only lessons at this location (exact). |
| custom_status | string | Search by custom status (Custom Statuses add-on). |
| include_deleted | boolean | true = include deleted lessons. |
| location_or_parent_location_id | any | Lessons at this location or any of its sub-locations. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"name": {
"type": "string",
"description": "Search by lesson name."
},
"page": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Page number (1-based, default 1).",
"exclusiveMinimum": 0
},
"status": {
"enum": [
"Scheduled",
"Attended",
"Cancelled",
"Missed"
],
"type": "string"
},
"date_to": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Lessons starting on or before this date."
},
"joinable": {
"type": "boolean",
"description": "true = only lessons marked joinable."
},
"per_page": {
"type": "integer",
"maximum": 50,
"description": "Records per page (default 20, max 50).",
"exclusiveMinimum": 0
},
"date_from": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Lessons starting on or after this date."
},
"direction": {
"enum": [
"asc",
"desc"
],
"type": "string",
"description": "Sort by id ascending (default) or descending (newest first)."
},
"from_date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Lessons starting on exactly this date."
},
"series_id": {
"anyOf": [
{
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
{
"type": "string",
"pattern": "^\\d+$"
}
],
"description": "Only lessons of this repeating series."
},
"service_id": {
"anyOf": [
{
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
{
"type": "string",
"pattern": "^\\d+$"
}
],
"description": "Only lessons of this service."
},
"student_id": {
"anyOf": [
{
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
{
"type": "string",
"pattern": "^\\d+$"
}
],
"description": "Only lessons with this student."
},
"employee_id": {
"anyOf": [
{
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
{
"type": "string",
"pattern": "^\\d+$"
}
],
"description": "Only lessons taught by this teacher (employee id)."
},
"location_id": {
"anyOf": [
{
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
{
"type": "string",
"pattern": "^\\d+$"
}
],
"description": "Only lessons at this location (exact)."
},
"custom_status": {
"type": "string",
"description": "Search by custom status (Custom Statuses add-on)."
},
"include_deleted": {
"type": "boolean",
"description": "true = include deleted lessons."
},
"location_or_parent_location_id": {
"anyOf": [
{
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
{
"type": "string",
"pattern": "^\\d+$"
}
],
"description": "Lessons at this location or any of its sub-locations."
}
}
}{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"page": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Page number (1-based, default 1).",
"exclusiveMinimum": 0
},
"date_to": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Events starting on or before this date."
},
"per_page": {
"type": "integer",
"maximum": 50,
"description": "Records per page (default 20, max 50).",
"exclusiveMinimum": 0
},
"date_from": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Events starting on or after this date."
},
"direction": {
"enum": [
"asc",
"desc"
],
"type": "string",
"description": "Sort by id ascending (default) or descending (newest first)."
},
"from_date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Events starting on exactly this date."
},
"series_id": {
"anyOf": [
{
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
{
"type": "string",
"pattern": "^\\d+$"
}
],
"description": "Only events of this repeating series."
},
"employee_id": {
"anyOf": [
{
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
{
"type": "string",
"pattern": "^\\d+$"
}
],
"description": "Only events of this employee."
},
"location_id": {
"anyOf": [
{
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
{
"type": "string",
"pattern": "^\\d+$"
}
],
"description": "Only events at this location."
}
}
}| Search by last name. |
| first_name | string | Search by first name. |
| customer_id | any | Only students of this customer/family id. |
| phone_number | string | Search by phone number. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"page": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Page number (1-based, default 1).",
"exclusiveMinimum": 0
},
"type": {
"enum": [
"family",
"independent"
],
"type": "string",
"description": "family = child students, independent = independent students."
},
"email": {
"type": "string",
"description": "Search by email."
},
"grade": {
"type": "string",
"description": "Search by grade."
},
"school": {
"type": "string",
"description": "Search by school."
},
"status": {
"enum": [
"Active",
"Inactive",
"Prospective"
],
"type": "string"
},
"subject": {
"type": "string",
"description": "Search by subject."
},
"per_page": {
"type": "integer",
"maximum": 50,
"description": "Records per page (default 20, max 50).",
"exclusiveMinimum": 0
},
"direction": {
"enum": [
"asc",
"desc"
],
"type": "string",
"description": "Sort by id ascending (default) or descending (newest first)."
},
"last_name": {
"type": "string",
"description": "Search by last name."
},
"first_name": {
"type": "string",
"description": "Search by first name."
},
"customer_id": {
"anyOf": [
{
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
{
"type": "string",
"pattern": "^\\d+$"
}
],
"description": "Only students of this customer/family id."
},
"phone_number": {
"type": "string",
"description": "Search by phone number."
}
}
}