Skip to content

API Reference

The WCONLINE API provides a single read endpoint, GET /api, that exports appointments, cancellations, client report forms (CRFs), availability, and orphaned appointments for a given date. It’s used by reporting and data-warehouse integrations.

Every request is made against your center’s own WCONLINE domain. The examples below use the demo center https://demo.mywconline.com — replace it with your own domain (e.g. https://yourschool.mywconline.com or your custom domain).

Authenticate with the API key configured under Global System Settings → Area Tools → API Configuration. Send it as a bearer token:

Authorization: Bearer {api_key}

If you configure one or more IP addresses on the API Configuration page, requests from any other address are rejected with 403. Leaving the allowlist empty disables the IP restriction.

The endpoint is limited to 300 requests per hour per API key. Exceeding it returns 429 Too Many Requests.

GET /api?type={type}&date={date}

Returns a JSON array of records for the requested date. All values are returned as strings; boolean-style fields are either "YES" or an empty string "". When no records match, an empty array [] is returned.

ParameterRequiredDescription
typeYesThe kind of records to export (case-insensitive). One of the values in the table below.
dateYesThe date to export. Both YYYYMMDD and YYYY-MM-DD are accepted.
typeReturnsRow format
APPTAppointments on the dateAppointment
CANCELEDCancellations on the dateCanceled
CRFClient report forms filed for the dateClient report form
ORPHANAppointments with no matching CRFAppointment
AVAILOpen (available) appointment slots per visible scheduleAvailability
CUSTOMTenant-defined export with dynamic columnsCustom
Request
GET https://demo.mywconline.com/api?type=APPT&date=2025-04-01
Authorization: Bearer 7bff5c9d-ff7e-410f-b39f-b8da03017470
Response
[
{
"Appointment ID": "sc6f1a2b3c4d5e",
"First Name": "Jordan",
"Last Name": "Rivera",
"Email Address": "jrivera@example.edu",
"Schedule Title": "Main Writing Center",
"Staff or Resource": "Alex T.",
"Date": "2025-04-01",
"Start Time": "9:00 am",
"End Time": "9:30 am",
"Walk-In": "",
"No-Show": "",
"Placeholder": "",
"Online": "ONLINE",
"Focus": "Brainstorming"
}
]

All dates and times in API responses are returned in your institution’s time zone — the one configured under Global System Settings → General Settings — rather than in UTC. Times use a 12-hour format (e.g. 9:00 am).

Every value is a string. Boolean-style fields are "YES" or "".

Returned for type=APPT and type=ORPHAN (orphans are appointments with no matching CRF).

FieldDescription
Appointment IDThe appointment’s unique ID.
First NameReflects your center’s “first name” field label (default First Name).
Last NameReflects your center’s “last name” field label (default Last Name).
Email AddressThe client’s email address.
Schedule TitleThe schedule the appointment is on.
Staff or ResourceThe staff member or resource.
DateThe appointment date (YYYY-MM-DD).
Start Timee.g. 9:00 am.
End Timee.g. 9:30 am.
Walk-In"YES" for a walk-in/drop-in appointment, otherwise "".
No-Show"YES" if the appointment was missed, otherwise "".
Placeholder"YES" for a placeholder appointment, otherwise "".
Online"ONLINE", "ETUTORING", or "".
FocusThe appointment focus, or "" if none.

Returned for type=CANCELED. Includes every Appointment field above, plus:

FieldDescription
Canceled ByThe name of the person who canceled, or "".
Canceled DateWhen the cancellation happened (center timezone), or "".

Returned for type=CRF.

FieldDescription
Report IDThe report’s unique ID.
Appointment IDThe originating appointment ID when the report is tied to a scheduled appointment, otherwise "".
First NameThe client’s first name.
Last NameThe client’s last name.
Email AddressThe client’s email address.
Schedule TitleThe schedule the report is on.
Staff or ResourceThe staff member or resource.
DateThe report date (YYYY-MM-DD).
Start Timee.g. 9:00 am.
End Timee.g. 9:30 am.
LengthAppointment length in minutes.
Off-Schedule?"YES" for an off-schedule report, otherwise "".

Returned for type=AVAIL.

FieldDescription
Schedule TitleThe schedule the open slot is on.
DateThe slot date (YYYY-MM-DD).
Start Timee.g. 9:00 am.
ResourceThe staff member or resource the slot is open on.

Returned for type=CUSTOM. The columns are dynamic — they’re defined by your center’s custom-export configuration and reflect your renamed field labels, custom form questions, and language settings. Because of this, there’s no fixed schema: every value is a string and the keys are whatever your custom export selects (e.g. "Member ID", "Email Address", the text of a registration question, "Appointment Date", "Last Login").

CodeMeaning
200Success — a JSON array of records (empty [] if none matched).
403Authentication failed (missing or invalid bearer token), or the caller’s IP is not on the allowlist.
404No API key is configured for this center.
422The request parameters failed validation.
429Rate limit exceeded (300 requests per hour per API key).

Errors return a JSON body with a message, and — for validation failures — an errors object keyed by field name:

{
"message": "The given data was invalid.",
"errors": { "type": ["The selected type is invalid."] }
}