API

An API for your academy data, with read and write endpoints plus webhooks, available on the Multi-site plan.

Create a key

  • Owner dashboard, open API.
  • Give the key a name and create it. Copy it straight away, it is shown only once.
  • Keep it secret. Revoke a key any time and apps using it stop working.

Authentication

Send your key as a bearer token on every request. The base URL is https://tutorroom.app/api/v1.

curl https://tutorroom.app/api/v1/students \
  -H "Authorization: Bearer dh_live_your_key_here"

Read endpoints

  • GET /api/v1/students active and past students.
  • GET /api/v1/classes classes and their schedule.
  • GET /api/v1/payments dues and payments. Filter with ?status=paid|pending|overdue.
  • GET /api/v1/attendance attendance records. Filter with ?from=YYYY-MM-DD&to=YYYY-MM-DD (defaults to the last 30 days).

Write endpoints

Create a student or a due. Both return the created record.

curl https://tutorroom.app/api/v1/students \
  -H "Authorization: Bearer dh_live_…" \
  -H "Content-Type: application/json" \
  -d '{"name":"Zara Bello","level":"Year 6","subjects":["Maths"]}'

curl https://tutorroom.app/api/v1/payments \
  -H "Authorization: Bearer dh_live_…" \
  -H "Content-Type: application/json" \
  -d '{"studentId":"…","amountCents":8500,"description":"June tuition"}'

Webhooks

Add an endpoint in the owner dashboard (API tab). We POST a signed JSON body on student.created, payment.created, and payment.paid. Verify the X-TutorRoom-Signature header (HMAC-SHA256 of the raw body using your signing secret).

{ "event": "payment.paid", "data": { "id": "…", "amountCents": 8500 }, "sentAt": "…" }

Responses

Every endpoint returns JSON with a data array. Amounts are in minor units (pence or kobo).

{
  "data": [
    {
      "id": "…",
      "name": "Zara Bello",
      "level": "Year 6",
      "status": "active",
      "monthlyFeeCents": 8500
    }
  ]
}

Limits and errors

  • Around 120 requests per minute per key.
  • 401 missing or invalid key, 403 plan does not include API access, 429 rate limited.
FAQ