Teachworks

Teachworks is business management software for tutoring companies, music schools, test-prep centers, and other education businesses. It handles scheduling, student and family CRM, teacher management, lesson and event calendars, online billing and invoicing, payments, and teacher wages. The Teachworks API is a REST API (base https://api.teachworks.com/v1, token authentication over HTTPS) that exposes account data - customers, students, employees, lessons, services, invoices, payments, and wages - so companies can build custom integrations. The API is available on the Growth and Premium plans; there is no native webhook or WebSocket surface, and event-driven integrations are delivered through Zapier, Make, and Integrately polling.

10 APIs 0 Features
EducationTutoringEdTechSchedulingBusiness ManagementCRMBilling

APIs

Teachworks Customers API

List, retrieve, create, and update customer profiles - the billing account that is either a family or an independent student. Create families and independent students, set custo...

Teachworks Students API

List, retrieve, create, and update students - both child students belonging to a family and independent students. Set custom field values and retrieve per-student lesson totals....

Teachworks Employees API

Manage employees (teachers and staff) - list, retrieve, create, and update employees, set their status, set custom field values, and retrieve an employee's earnings and lesson t...

Teachworks Lessons API

List, retrieve, and create lessons; add students to a lesson and mark a lesson complete. Lesson participants expose the per-student attendance and billing rows attached to each ...

Teachworks Events and Availability API

List and retrieve non-teaching calendar events (other events) and read employee availabilities and unavailabilities that drive scheduling.

Teachworks Services and Subjects API

Read the catalog that lessons are built from - services, subjects, student groups, wage tiers, and cost premiums - plus create, retrieve, and update locations where lessons are ...

Teachworks Invoices API

List and retrieve customer invoices and read credit note allocations that apply credits against invoices.

Teachworks Payments API

List, retrieve, create, and update customer payments, and list, retrieve, and create payment allocations that apply a payment to specific invoices.

Teachworks Wages API

Manage teacher pay - list, retrieve, create, and update wage payments, and list, retrieve, and create other compensation records outside of lesson wages.

Teachworks Results and Repertoires API

Track student progress - list, retrieve, create, and update results and result groups, and manage repertoire items (for music lessons) attached to students.

Collections

Pricing Plans

Teachworks Plans Pricing

4 plans

PLANS

Rate Limits

Teachworks Rate Limits

3 limits

RATE LIMITS

FinOps

Resources

🔗
VulnerabilityDisclosure
VulnerabilityDisclosure
🔗
DomainSecurity
DomainSecurity
🔑
Authentication
Authentication
🔗
LinkedIn
LinkedIn
🔗
Website
Website
🔗
Documentation
Documentation
🔗
Plans
Plans
🔗
RateLimits
RateLimits
🔗
FinOps
FinOps
📰
Blog
Blog

Sources

Raw ↑
opencollection: 1.0.0
info:
  name: Teachworks API
  version: '1.0'
request:
  auth:
    type: apikey
    key: Authorization
    value: Token token={{apiToken}}
    in: header
items:
- info:
    name: Locations
    type: folder
  items:
  - info:
      name: List all Locations
      type: http
    http:
      method: GET
      url: https://api.teachworks.com/v1/locations
    docs: List all Locations.
  - info:
      name: Create a Location
      type: http
    http:
      method: POST
      url: https://api.teachworks.com/v1/locations
      body:
        type: json
        data: '{}'
    docs: Create a Location.
  - info:
      name: Retrieve a Location
      type: http
    http:
      method: GET
      url: https://api.teachworks.com/v1/locations/:id
      params:
      - name: id
        value: ''
        type: path
        description: The ID of the resource.
    docs: Retrieve a Location.
  - info:
      name: Update a Location
      type: http
    http:
      method: PUT
      url: https://api.teachworks.com/v1/locations/:id
      params:
      - name: id
        value: ''
        type: path
        description: The ID of the resource.
      body:
        type: json
        data: '{}'
    docs: Update a Location.
- info:
    name: Services
    type: folder
  items:
  - info:
      name: List all Services
      type: http
    http:
      method: GET
      url: https://api.teachworks.com/v1/services
    docs: List all Services.
  - info:
      name: Retrieve a Service
      type: http
    http:
      method: GET
      url: https://api.teachworks.com/v1/services/:id
      params:
      - name: id
        value: ''
        type: path
        description: The ID of the resource.
    docs: Retrieve a Service.
- info:
    name: Wage Tiers
    type: folder
  items:
  - info:
      name: List all Wage Tiers
      type: http
    http:
      method: GET
      url: https://api.teachworks.com/v1/wage_tiers
    docs: List all Wage Tiers.
  - info:
      name: Retrieve a Wage Tier
      type: http
    http:
      method: GET
      url: https://api.teachworks.com/v1/wage_tiers/:id
      params:
      - name: id
        value: ''
        type: path
        description: The ID of the resource.
    docs: Retrieve a Wage Tier.
- info:
    name: Cost Premiums
    type: folder
  items:
  - info:
      name: List all Cost Premiums
      type: http
    http:
      method: GET
      url: https://api.teachworks.com/v1/cost_premiums
    docs: List all Cost Premiums.
  - info:
      name: Retrieve a Cost Premium
      type: http
    http:
      method: GET
      url: https://api.teachworks.com/v1/cost_premiums/:id
      params:
      - name: id
        value: ''
        type: path
        description: The ID of the resource.
    docs: Retrieve a Cost Premium.
- info:
    name: Employees
    type: folder
  items:
  - info:
      name: List all Employees
      type: http
    http:
      method: GET
      url: https://api.teachworks.com/v1/employees
    docs: List all Employees.
  - info:
      name: Create an Employee
      type: http
    http:
      method: POST
      url: https://api.teachworks.com/v1/employees
      body:
        type: json
        data: '{}'
    docs: Create an Employee.
  - info:
      name: Retrieve an Employee
      type: http
    http:
      method: GET
      url: https://api.teachworks.com/v1/employees/:id
      params:
      - name: id
        value: ''
        type: path
        description: The ID of the resource.
    docs: Retrieve an Employee.
  - info:
      name: Update an Employee
      type: http
    http:
      method: PUT
      url: https://api.teachworks.com/v1/employees/:id
      params:
      - name: id
        value: ''
        type: path
        description: The ID of the resource.
      body:
        type: json
        data: '{}'
    docs: Update an Employee.
  - info:
      name: Retrieve Employee Earnings
      type: http
    http:
      method: GET
      url: https://api.teachworks.com/v1/employees/:id/earnings
      params:
      - name: id
        value: ''
        type: path
        description: The ID of the resource.
    docs: Retrieve Employee Earnings.
  - info:
      name: Retrieve Employee Lesson Totals
      type: http
    http:
      method: GET
      url: https://api.teachworks.com/v1/employees/:id/lesson_totals
      params:
      - name: id
        value: ''
        type: path
        description: The ID of the resource.
    docs: Retrieve Employee Lesson Totals.
  - info:
      name: Set Employee Status
      type: http
    http:
      method: PUT
      url: https://api.teachworks.com/v1/employees/:id/set_status
      params:
      - name: id
        value: ''
        type: path
        description: The ID of the resource.
      body:
        type: json
        data: '{}'
    docs: Set Employee Status.
  - info:
      name: Set Custom Field Values
      type: http
    http:
      method: PUT
      url: https://api.teachworks.com/v1/employees/:id/custom_fields
      params:
      - name: id
        value: ''
        type: path
        description: The ID of the resource.
      body:
        type: json
        data: '{}'
    docs: Set Custom Field Values.
- info:
    name: Customers
    type: folder
  items:
  - info:
      name: List all Customers
      type: http
    http:
      method: GET
      url: https://api.teachworks.com/v1/customers
    docs: List all Customers.
  - info:
      name: Retrieve a Customer
      type: http
    http:
      method: GET
      url: https://api.teachworks.com/v1/customers/:id
      params:
      - name: id
        value: ''
        type: path
        description: The ID of the resource.
    docs: Retrieve a Customer.
  - info:
      name: Retrieve Customer Lesson Totals
      type: http
    http:
      method: GET
      url: https://api.teachworks.com/v1/customers/:id/lesson_totals
      params:
      - name: id
        value: ''
        type: path
        description: The ID of the resource.
    docs: Retrieve Customer Lesson Totals.
  - info:
      name: Create a Family
      type: http
    http:
      method: POST
      url: https://api.teachworks.com/v1/customers/family
      body:
        type: json
        data: '{}'
    docs: Create a Family.
  - info:
      name: Create an Independent Student
      type: http
    http:
      method: POST
      url: https://api.teachworks.com/v1/customers/independent_student
      body:
        type: json
        data: '{}'
    docs: Create an Independent Student.
  - info:
      name: Update a Customer
      type: http
    http:
      method: PUT
      url: https://api.teachworks.com/v1/customers/:id
      params:
      - name: id
        value: ''
        type: path
        description: The ID of the resource.
      body:
        type: json
        data: '{}'
    docs: Update a Customer.
  - info:
      name: Set Custom Field Values
      type: http
    http:
      method: PUT
      url: https://api.teachworks.com/v1/customers/:id/custom_fields
      params:
      - name: id
        value: ''
        type: path
        description: The ID of the resource.
      body:
        type: json
        data: '{}'
    docs: Set Custom Field Values.
- info:
    name: Students
    type: folder
  items:
  - info:
      name: List all Students
      type: http
    http:
      method: GET
      url: https://api.teachworks.com/v1/students
    docs: List all Students.
  - info:
      name: Create a Child Student
      type: http
    http:
      method: POST
      url: https://api.teachworks.com/v1/students
      body:
        type: json
        data: '{}'
    docs: Create a Child Student.
  - info:
      name: Retrieve a Student
      type: http
    http:
      method: GET
      url: https://api.teachworks.com/v1/students/:id
      params:
      - name: id
        value: ''
        type: path
        description: The ID of the resource.
    docs: Retrieve a Student.
  - info:
      name: Update a Child Student
      type: http
    http:
      method: PUT
      url: https://api.teachworks.com/v1/students/:id
      params:
      - name: id
        value: ''
        type: path
        description: The ID of the resource.
      body:
        type: json
        data: '{}'
    docs: Update a Child Student.
  - info:
      name: Retrieve Student Lesson Totals
      type: http
    http:
      method: GET
      url: https://api.teachworks.com/v1/students/:id/lesson_totals
      params:
      - name: id
        value: ''
        type: path
        description: The ID of the resource.
    docs: Retrieve Student Lesson Totals.
  - info:
      name: Set Custom Field Values
      type: http
    http:
      method: PUT
      url: https://api.teachworks.com/v1/students/:id/custom_fields
      params:
      - name: id
        value: ''
        type: path
        description: The ID of the resource.
      body:
        type: json
        data: '{}'
    docs: Set Custom Field Values.
- info:
    name: Subjects
    type: folder
  items:
  - info:
      name: List all Subjects
      type: http
    http:
      method: GET
      url: https://api.teachworks.com/v1/subjects
    docs: List all Subjects.
  - info:
      name: Retrieve a Subject
      type: http
    http:
      method: GET
      url: https://api.teachworks.com/v1/subjects/:id
      params:
      - name: id
        value: ''
        type: path
        description: The ID of the resource.
    docs: Retrieve a Subject.
- info:
    name: Student Groups
    type: folder
  items:
  - info:
      name: List all Student Groups
      type: http
    http:
      method: GET
      url: https://api.teachworks.com/v1/student_groups
    docs: List all Student Groups.
  - info:
      name: Retrieve a Student Group
      type: http
    http:
      method: GET
      url: https://api.teachworks.com/v1/student_groups/:id
      params:
      - name: id
        value: ''
        type: path
        description: The ID of the resource.
    docs: Retrieve a Student Group.
- info:
    name: Lessons
    type: folder
  items:
  - info:
      name: List all Lessons
      type: http
    http:
      method: GET
      url: https://api.teachworks.com/v1/lessons
    docs: List all Lessons.
  - info:
      name: Create a Lesson
      type: http
    http:
      method: POST
      url: https://api.teachworks.com/v1/lessons
      body:
        type: json
        data: '{}'
    docs: Create a Lesson.
  - info:
      name: Retrieve a Lesson
      type: http
    http:
      method: GET
      url: https://api.teachworks.com/v1/lessons/:id
      params:
      - name: id
        value: ''
        type: path
        description: The ID of the resource.
    docs: Retrieve a Lesson.
  - info:
      name: Add Student to Lesson
      type: http
    http:
      method: PUT
      url: https://api.teachworks.com/v1/lessons/:id/add_student
      params:
      - name: id
        value: ''
        type: path
        description: The ID of the resource.
      body:
        type: json
        data: '{}'
    docs: Add Student to Lesson.
  - info:
      name: Complete a Lesson
      type: http
    http:
      method: PUT
      url: https://api.teachworks.com/v1/lessons/:id/complete
      params:
      - name: id
        value: ''
        type: path
        description: The ID of the resource.
      body:
        type: json
        data: '{}'
    docs: Complete a Lesson.
- info:
    name: Lesson Participants
    type: folder
  items:
  - info:
      name: List all Lesson Participants
      type: http
    http:
      method: GET
      url: https://api.teachworks.com/v1/lesson_participants
    docs: List all Lesson Participants.
  - info:
      name: Retrieve a Lesson Participant
      type: http
    http:
      method: GET
      url: https://api.teachworks.com/v1/lesson_participants/:id
      params:
      - name: id
        value: ''
        type: path
        description: The ID of the resource.
    docs: Retrieve a Lesson Participant.
- info:
    name: Other Events
    type: folder
  items:
  - info:
      name: List all Other Events
      type: http
    http:
      method: GET
      url: https://api.teachworks.com/v1/other_events
    docs: List all Other Events.
  - info:
      name: Retrieve an Other Event
      type: http
    http:
      method: GET
      url: https://api.teachworks.com/v1/other_events/:id
      params:
      - name: id
        value: ''
        type: path
        description: The ID of the resource.
    docs: Retrieve an Other Event.
- info:
    name: Availabilities
    type: folder
  items:
  - info:
      name: List all Availabilities
      type: http
    http:
      method: GET
      url: https://api.teachworks.com/v1/availabilities
    docs: List all Availabilities.
  - info:
      name: Retrieve an Availability
      type: http
    http:
      method: GET
      url: https://api.teachworks.com/v1/availabilities/:id
      params:
      - name: id
        value: ''
        type: path
        description: The ID of the resource.
    docs: Retrieve an Availability.
- info:
    name: Unavailabilities
    type: folder
  items:
  - info:
      name: List all Unavailabilities
      type: http
    http:
      method: GET
      url: https://api.teachworks.com/v1/unavailabilities
    docs: List all Unavailabilities.
  - info:
      name: Retrieve an Unavailability
      type: http
    http:
      method: GET
      url: https://api.teachworks.com/v1/unavailabilities/:id
      params:
      - name: id
        value: ''
        type: path
        description: The ID of the resource.
    docs: Retrieve an Unavailability.
- info:
    name: Invoices
    type: folder
  items:
  - info:
      name: List all Invoices
      type: http
    http:
      method: GET
      url: https://api.teachworks.com/v1/invoices
    docs: List all Invoices.
  - info:
      name: Retrieve an Invoice
      type: http
    http:
      method: GET
      url: https://api.teachworks.com/v1/invoices/:id
      params:
      - name: id
        value: ''
        type: path
        description: The ID of the resource.
    docs: Retrieve an Invoice.
- info:
    name: Payments
    type: folder
  items:
  - info:
      name: List all Payments
      type: http
    http:
      method: GET
      url: https://api.teachworks.com/v1/payments
    docs: List all Payments.
  - info:
      name: Create a Payment
      type: http
    http:
      method: POST
      url: https://api.teachworks.com/v1/payments
      body:
        type: json
        data: '{}'
    docs: Create a Payment.
  - info:
      name: Retrieve a Payment
      type: http
    http:
      method: GET
      url: https://api.teachworks.com/v1/payments/:id
      params:
      - name: id
        value: ''
        type: path
        description: The ID of the resource.
    docs: Retrieve a Payment.
  - info:
      name: Update a Payment
      type: http
    http:
      method: PUT
      url: https://api.teachworks.com/v1/payments/:id
      params:
      - name: id
        value: ''
        type: path
        description: The ID of the resource.
      body:
        type: json
        data: '{}'
    docs: Update a Payment.
- info:
    name: Payment Allocations
    type: folder
  items:
  - info:
      name: List all Payment Allocations
      type: http
    http:
      method: GET
      url: https://api.teachworks.com/v1/payment_allocations
    docs: List all Payment Allocations.
  - info:
      name: Create a Payment Allocation
      type: http
    http:
      method: POST
      url: https://api.teachworks.com/v1/payment_allocations
      body:
        type: json
        data: '{}'
    docs: Create a Payment Allocation.
  - info:
      name: Retrieve a Payment Allocation
      type: http
    http:
      method: GET
      url: https://api.teachworks.com/v1/payment_allocations/:id
      params:
      - name: id
        value: ''
        type: path
        description: The ID of the resource.
    docs: Retrieve a Payment Allocation.
- info:
    name: Credit Note Allocations
    type: folder
  items:
  - info:
      name: List all Credit Note Allocations
      type: http
    http:
      method: GET
      url: https://api.teachworks.com/v1/credit_note_allocations
    docs: List all Credit Note Allocations.
  - info:
      name: Retrieve a Credit Note Allocation
      type: http
    http:
      method: GET
      url: https://api.teachworks.com/v1/credit_note_allocations/:id
      params:
      - name: id
        value: ''
        type: path
        description: The ID of the resource.
    docs: Retrieve a Credit Note Allocation.
- info:
    name: Other Compensation
    type: folder
  items:
  - info:
      name: List all Compensation
      type: http
    http:
      method: GET
      url: https://api.teachworks.com/v1/other_compensation
    docs: List all Compensation.
  - info:
      name: Create Other Compensation
      type: http
    http:
      method: POST
      url: https://api.teachworks.com/v1/other_compensation
      body:
        type: json
        data: '{}'
    docs: Create Other Compensation.
  - info:
      name: Retrieve Compensation
      type: http
    http:
      method: GET
      url: https://api.teachworks.com/v1/other_compensation/:id
      params:
      - name: id
        value: ''
        type: path
        description: The ID of the resource.
    docs: Retrieve Compensation.
- info:
    name: Wage Payments
    type: folder
  items:
  - info:
      name: List all Wage Payments
      type: http
    http:
      method: GET
      url: https://api.teachworks.com/v1/wage_payments
    docs: List all Wage Payments.
  - info:
      name: Create a Wage Payment
      type: http
    http:
      method: POST
      url: https://api.teachworks.com/v1/wage_payments
      body:
        type: json
        data: '{}'
    docs: Create a Wage Payment.
  - info:
      name: Retrieve a Wage Payment
      type: http
    http:
      method: GET
      url: https://api.teachworks.com/v1/wage_payments/:id
      params:
      - name: id
        value: ''
        type: path
        description: The ID of the resource.
    docs: Retrieve a Wage Payment.
  - info:
      name: Update a Wage Payment
      type: http
    http:
      method: PUT
      url: https://api.teachworks.com/v1/wage_payments/:id
      params:
      - name: id
        value: ''
        type: path
        description: The ID of the resource.
      body:
        type: json
        data: '{}'
    docs: Update a Wage Payment.
- info:
    name: Result Groups
    type: folder
  items:
  - info:
      name: List all Result Groups
      type: http
    http:
      method: GET
      url: https://api.teachworks.com/v1/result_groups
    docs: List all Result Groups.
  - info:
      name: Retrieve a Result Group
      type: http
    http:
      method: GET
      url: https://api.teachworks.com/v1/result_groups/:id
      params:
      - name: id
        value: ''
        type: path
        description: The ID of the resource.
    docs: Retrieve a Result Group.
- info:
    name: Results
    type: folder
  items:
  - info:
      name: List all Results
      type: http
    http:
      method: GET
      url: https://api.teachworks.com/v1/results
    docs: List all Results.
  - info:
      name: Create a Result
      type: http
    http:
      method: POST
      url: https://api.teachworks.com/v1/results
      body:
        type: json
        data: '{}'
    docs: Create a Result.
  - info:
      name: Retrieve a Result
      type: http
    http:
      method: GET
      url: https://api.teachworks.com/v1/results/:id
      params:
      - name: id
        value: ''
        type: path
        description: The ID of the resource.
    docs: Retrieve a Result.
  - info:
      name: Update a Result
      type: http
    http:
      method: PUT
      url: https://api.teachworks.com/v1/results/:id
      params:
      - name: id
        value: ''
        type: path
        description: The ID of the resource.
      body:
        type: json
        data: '{}'
    docs: Update a Result.
- info:
    name: Repertoires
    type: folder
  items:
  - info:
      name: List all Repertoires
      type: http
    http:
      method: GET
      url: https://api.teachworks.com/v1/repertoires
    docs: List all Repertoires.
  - info:
      name: Create a Repertoire
      type: http
    http:
      method: POST
      url: https://api.teachworks.com/v1/repertoires
      body:
        type: json
        data: '{}'
    docs: Create a Repertoire.
  - info:
      name: Retrieve a Repertoire
      type: http
    http:
      method: GET
      url: https://api.teachworks.com/v1/repertoires/:id
      params:
      - name: id
        value: ''
        type: path
        description: The ID of the resource.
    docs: Retrieve a Repertoire.
bundled: true