Install our app for a better experience!

Student Provisioning API — Overview

Student Provisioning API — Overview

The Student Provisioning API lets your own systems onboard students automatically. When something happens on your side (a payment on your WordPress or WooCommerce site, a membership activation, a CRM event), one HTTP call creates the student's account, gives them the right course for the right length of time, and emails them a link to sign in.

It works the same from Pabbly Connect, Zapier, Make.com, or any script that can send an HTTP request.

What one call does

  1. Creates the account, or reuses it if the email already has one.
  2. Adds the person to your organization.
  3. Grants the course(s) you name, for the duration you choose:
  4. by course type ("courses": ["ielts"]) into your organization's default course for that type, which is created automatically the first time; or
  5. by course id ("course_ids": [371]) into a specific course or batch you run.
  6. Places starter practice tests in the student's dashboard, if your organization has them switched on.
  7. Emails the student: a link to set their own password, or the username and password when you choose password_mode of set or generate. Students who already sign in get a summary of their access.

Repeating a call is always safe: the same email never becomes a second account, and a course that is still running is never granted twice.

How it fits together

Your WordPress / WooCommerce / membership plugin
        │   (payment completed, member activated, …)
        ▼
  Pabbly Connect  /  Zapier  /  Make.com            ← the glue; each just sends an HTTP POST
        │
        │   POST https://<your-platform-host>/api/v1/provision/student/
        │   Header: X-API-Key: <your organization's key>
        │   Body:   { email, first_name, courses or course_ids, tenure_months, external_ref }
        ▼
  Platform: account → organization → course(s) with an access window → starter tests → email

The words used in these pages

Term Meaning
API key A secret that identifies your organization. Every call acts on that organization only.
Course type The exam a course prepares for, such as ielts, pte_academic or gmat. GET /courses/ lists them.
Default course One ongoing course per course type in your organization. Created automatically the first time you grant that type.
Course Any course in your organization, including batches you created yourself. Each has an id.
Enrolment One student in one course, with its own access window.
Access window start_date to end_date, followed by a grace period up to grace_period_end.
external_ref Your own reference (such as an order id). Used for tracing and to make extensions safe to retry.

Endpoints

Method & path What it's for
GET /api/v1/ping/ Check your key.
GET /api/v1/organization/ Your organization and its onboarding defaults (duration, grace, starter tests).
GET /api/v1/courses/ Course types with your default course for each, plus all your courses and their ids.
POST /api/v1/provision/student/ Onboard, renew, extend, add a course, or resend the email.
GET /api/v1/students/?email= One student's courses, dates and whether they have access now.
POST /api/v1/roster/import/ Sync a whole roster file on a schedule.

Quick start — two minutes

# 1. Check the key: returns your organization
curl -s https://<your-platform-host>/api/v1/ping/ -H "X-API-Key: <your-key>"

# 2. Onboard yourself as a test student into IELTS for 1 month
curl -s -X POST https://<your-platform-host>/api/v1/provision/student/ \
  -H "X-API-Key: <your-key>" -H "Content-Type: application/json" \
  -d '{"email":"you@yourcompany.com","first_name":"Test","courses":["ielts"],"tenure_months":1}'

# 3. Check what was granted
curl -s "https://<your-platform-host>/api/v1/students/?email=you@yourcompany.com" -H "X-API-Key: <your-key>"

Use an inbox you can read for the test student, so you also see the welcome email the student receives.

Where to go next

  • Complete Onboarding Walkthrough — every step in order, with real responses.
  • Access Duration, Renewals & Expiry — how long access lasts and how to renew or extend it.
  • API Endpoints & Payloads — every field, response, status and error.
  • Connect Pabbly, Zapier, or Make — no‑code recipes.
  • Troubleshooting & Security — common problems and key handling.