For everyone

Search

API

Welcome to the EMS360 export API documentation.

The EMS360 export API provides a simple way to access school data stored in the EMS360 cloud using standard HTTP requests. It is designed for systems that need to securely connect to EMS360, retrieve specific data, and exchange information between platforms.

You can export data from several parts of the system, including:

  • Time and attendance.

  • Activities, Camps and Excursions (ACE).

  • Accreditations.

  • Professional learning events.

Making a request

All export requests are made to the following URL:

Requests should be sent as a GET request.

Authentication

To use the EMS360 Export API, you will need a username and password from EMS Support.

Authentication is handled using the custom EMS360EXPORT request header. The header value must be a Base64-encoded string in the format:

username:password
username:password
username:password

A cURL request might look like this:

curl "https://app.ems360.com.au/export/asJson?startDate=20260401&endDate=20260430&exportType=LEAVE" \
  -H "EMS360EXPORT: BASE64_ENCODED_USERNAME_PASSWORD"
curl "https://app.ems360.com.au/export/asJson?startDate=20260401&endDate=20260430&exportType=LEAVE" \
  -H "EMS360EXPORT: BASE64_ENCODED_USERNAME_PASSWORD"
curl "https://app.ems360.com.au/export/asJson?startDate=20260401&endDate=20260430&exportType=LEAVE" \
  -H "EMS360EXPORT: BASE64_ENCODED_USERNAME_PASSWORD"

Date format

All request dates must use the YYYYMMDD format.

Examples:

  • 20260401

  • 20260430

Response dates

Response dates vary by export type.

  • LEAVE and ABSENCE return API-style date values in YYYY-MM-DD format.

  • TILO, EXTRAHOURS, and WFH currently return raw database date or datetime values.

Request parameters

Name

Type

Required

Description

startDate

string

Yes

Start date in YYYYMMDD format.

endDate

string

Yes

End date in YYYYMMDD format.

exportType

string

Yes

The export type to return.

Supported export types

All exported data is returned for the specified date range.

exportType value

Description

LEAVE

All staff on leave.

ABSENCE

All staff that are absent.

TILO

Staff time in lieu and overtime.

EXTRAHOURS

Staff extra hours.

WFH

Staff working remotely.

LEAVESTAFF

Combined data for staff on leave or absent.

ACE

Details associated with Activities, Camps and Excursions events. E.g. name, description, location, costs etc.

PDSTAFF

All staff attending professional learning events.

PDCOSTS

All professional learning event costings.

PDATTENDED

All staff who have attended professional learning events.

STAFFACCRED

Staff accreditations.

Error responses

Condition

Example response

Missing or invalid startDate

start date parameter not present or invalid

Missing or invalid endDate

end date parameter not present or invalid

Missing or invalid exportType

export type parameter not present or invalid

Missing EMS360EXPORT header

header is not present

Invalid export credentials

username/password is invalid

SQL date range over 365 days

{"msg":"Date range must be less than 365 days"}

LEAVE

This export returns leave records for the requested date range. The response structure depends on whether the site uses one-stage or two-stage leave approval.

One-stage LEAVE

Response body
json{
  "success": true,
  "data": [
    {
      "leaveStatus": "Approved",
      "certificateProvided": true,
      "certificateVerified": "2026-04-10",
      "leaveManagerActioned": true,
      "payrollActioned": false,
      "organiserActioned": true,
      "firstName": "Jane",
      "lastName": "Smith",
      "startDate": "2026-05-12",
      "endDate": "2026-05-14",
      "startTime": "09:00",
      "endTime": "17:00",
      "duration": "All Day",
      "category": "Annual Leave",
      "approver": "John Brown",
      "approvedOn": "2026-04-15",
      "rejectedOn": null,
      "requestDate": "2026-04-01",
      "employeeId": "EMP001",
      "noLeaveDeduction": false,
      "daysNoticeGiven": 41,
      "submissionToApproval": 14,
      "submissionToRejection": null
    }
  ]
}
json{
  "success": true,
  "data": [
    {
      "leaveStatus": "Approved",
      "certificateProvided": true,
      "certificateVerified": "2026-04-10",
      "leaveManagerActioned": true,
      "payrollActioned": false,
      "organiserActioned": true,
      "firstName": "Jane",
      "lastName": "Smith",
      "startDate": "2026-05-12",
      "endDate": "2026-05-14",
      "startTime": "09:00",
      "endTime": "17:00",
      "duration": "All Day",
      "category": "Annual Leave",
      "approver": "John Brown",
      "approvedOn": "2026-04-15",
      "rejectedOn": null,
      "requestDate": "2026-04-01",
      "employeeId": "EMP001",
      "noLeaveDeduction": false,
      "daysNoticeGiven": 41,
      "submissionToApproval": 14,
      "submissionToRejection": null
    }
  ]
}
json{
  "success": true,
  "data": [
    {
      "leaveStatus": "Approved",
      "certificateProvided": true,
      "certificateVerified": "2026-04-10",
      "leaveManagerActioned": true,
      "payrollActioned": false,
      "organiserActioned": true,
      "firstName": "Jane",
      "lastName": "Smith",
      "startDate": "2026-05-12",
      "endDate": "2026-05-14",
      "startTime": "09:00",
      "endTime": "17:00",
      "duration": "All Day",
      "category": "Annual Leave",
      "approver": "John Brown",
      "approvedOn": "2026-04-15",
      "rejectedOn": null,
      "requestDate": "2026-04-01",
      "employeeId": "EMP001",
      "noLeaveDeduction": false,
      "daysNoticeGiven": 41,
      "submissionToApproval": 14,
      "submissionToRejection": null
    }
  ]
}
Fields

Field

Type

Description

leaveStatus

string

Current leave status.

certificateProvided

boolean

Whether a certificate was provided.

certificateVerified

string(date) or null

Certificate verification date.

leaveManagerActioned

boolean

Leave manager action flag.

payrollActioned

boolean

Payroll action flag.

organiserActioned

boolean

Organiser action flag.

firstName

string

Requester first name.

lastName

string

Requester last name.

startDate

string(date)

Leave start date.

endDate

string(date)

Leave end date.

startTime

string or null

Leave start time.

endTime

string or null

Leave end time.

duration

string or null

Display duration value.

category

string

Leave category.

approver

string or null

Approver name.

approvedOn

string(date) or null

Approval date.

rejectedOn

string(date) or null

Rejection date.

requestDate

string(date) or null

Request submission date.

employeeId

string or null

Employee identifier.

noLeaveDeduction

boolean

No leave deduction flag.

daysNoticeGiven

integer or null

Days from request to leave start.

submissionToApproval

integer or null

Days from request to approval.

submissionToRejection

integer or null

Days from request to rejection.

Two-stage LEAVE

Response body
json{
  "success": true,
  "data": [
    {
      "leaveStatus": "Fully Approved",
      "certificateProvided": true,
      "certificateVerified": "2026-04-10",
      "leaveManagerActioned": true,
      "payrollActioned": false,
      "organiserActioned": true,
      "firstName": "Jane",
      "lastName": "Smith",
      "startDate": "2026-05-12",
      "endDate": "2026-05-14",
      "startTime": "09:00",
      "endTime": "17:00",
      "duration": "All Day",
      "category": "Annual Leave",
      "initialApprover": "Alex Green",
      "initialApprovedOn": "2026-04-08",
      "finalApprover": "John Brown",
      "finalApprovedOn": "2026-04-15",
      "rejectedOn": null,
      "requestDate": "2026-04-01",
      "employeeId": "EMP001",
      "noLeaveDeduction": false,
      "daysNoticeGiven": 41,
      "submissionToInitialApproval": 7,
      "initialApprovalToFinalApproval": 7,
      "submissionToFinalApproval": 14,
      "submissionToRejection": null
    }
  ]
}
json{
  "success": true,
  "data": [
    {
      "leaveStatus": "Fully Approved",
      "certificateProvided": true,
      "certificateVerified": "2026-04-10",
      "leaveManagerActioned": true,
      "payrollActioned": false,
      "organiserActioned": true,
      "firstName": "Jane",
      "lastName": "Smith",
      "startDate": "2026-05-12",
      "endDate": "2026-05-14",
      "startTime": "09:00",
      "endTime": "17:00",
      "duration": "All Day",
      "category": "Annual Leave",
      "initialApprover": "Alex Green",
      "initialApprovedOn": "2026-04-08",
      "finalApprover": "John Brown",
      "finalApprovedOn": "2026-04-15",
      "rejectedOn": null,
      "requestDate": "2026-04-01",
      "employeeId": "EMP001",
      "noLeaveDeduction": false,
      "daysNoticeGiven": 41,
      "submissionToInitialApproval": 7,
      "initialApprovalToFinalApproval": 7,
      "submissionToFinalApproval": 14,
      "submissionToRejection": null
    }
  ]
}
json{
  "success": true,
  "data": [
    {
      "leaveStatus": "Fully Approved",
      "certificateProvided": true,
      "certificateVerified": "2026-04-10",
      "leaveManagerActioned": true,
      "payrollActioned": false,
      "organiserActioned": true,
      "firstName": "Jane",
      "lastName": "Smith",
      "startDate": "2026-05-12",
      "endDate": "2026-05-14",
      "startTime": "09:00",
      "endTime": "17:00",
      "duration": "All Day",
      "category": "Annual Leave",
      "initialApprover": "Alex Green",
      "initialApprovedOn": "2026-04-08",
      "finalApprover": "John Brown",
      "finalApprovedOn": "2026-04-15",
      "rejectedOn": null,
      "requestDate": "2026-04-01",
      "employeeId": "EMP001",
      "noLeaveDeduction": false,
      "daysNoticeGiven": 41,
      "submissionToInitialApproval": 7,
      "initialApprovalToFinalApproval": 7,
      "submissionToFinalApproval": 14,
      "submissionToRejection": null
    }
  ]
}
Fields

Field

Type

Description

leaveStatus

string

Current leave status.

certificateProvided

boolean

Whether a certificate was provided.

certificateVerified

string(date) or null

Certificate verification date.

leaveManagerActioned

boolean

Leave manager action flag.

payrollActioned

boolean

Payroll action flag.

organiserActioned

boolean

Organiser action flag.

firstName

string

Requester first name.

lastName

string

Requester last name.

startDate

string(date)

Leave start date.

endDate

string(date)

Leave end date.

startTime

string or null

Leave start time.

endTime

string or null

Leave end time.

duration

string or null

Display duration value.

category

string

Leave category.

initialApprover

string or null

Initial approver name.

initialApprovedOn

string(date) or null

Initial approval date.

finalApprover

string or null

Final approver name.

finalApprovedOn

string(date) or null

Final approval date.

rejectedOn

string(date) or null

Rejection date.

requestDate

string(date) or null

Request submission date.

employeeId

string or null

Employee identifier.

noLeaveDeduction

boolean

No leave deduction flag.

daysNoticeGiven

integer or null

Days from request to leave start.

submissionToInitialApproval

integer or null

Days from request to initial approval.

initialApprovalToFinalApproval

integer or null

Days between initial and final approval.

submissionToFinalApproval

integer or null

Days from request to final approval.

submissionToRejection

integer or null

Days from request to rejection.

ABSENCE

This export returns absence records for the requested date range.

Response body
json{
  "success": true,
  "data": [
    {
      "certificateProvided": true,
      "certificateVerified": "2026-04-10",
      "leaveManagerActioned": true,
      "payrollActioned": false,
      "organiserActioned": true,
      "firstName": "Jane",
      "lastName": "Smith",
      "startDate": "2026-05-12",
      "endDate": "2026-05-12",
      "startTime": "09:00",
      "endTime": "17:00",
      "duration": "All Day",
      "category": "Sick Leave",
      "submittedOn": "2026-05-01",
      "employeeId": "EMP001"
    }
  ]
}
json{
  "success": true,
  "data": [
    {
      "certificateProvided": true,
      "certificateVerified": "2026-04-10",
      "leaveManagerActioned": true,
      "payrollActioned": false,
      "organiserActioned": true,
      "firstName": "Jane",
      "lastName": "Smith",
      "startDate": "2026-05-12",
      "endDate": "2026-05-12",
      "startTime": "09:00",
      "endTime": "17:00",
      "duration": "All Day",
      "category": "Sick Leave",
      "submittedOn": "2026-05-01",
      "employeeId": "EMP001"
    }
  ]
}
json{
  "success": true,
  "data": [
    {
      "certificateProvided": true,
      "certificateVerified": "2026-04-10",
      "leaveManagerActioned": true,
      "payrollActioned": false,
      "organiserActioned": true,
      "firstName": "Jane",
      "lastName": "Smith",
      "startDate": "2026-05-12",
      "endDate": "2026-05-12",
      "startTime": "09:00",
      "endTime": "17:00",
      "duration": "All Day",
      "category": "Sick Leave",
      "submittedOn": "2026-05-01",
      "employeeId": "EMP001"
    }
  ]
}
Fields

Field

Type

Description

certificateProvided

boolean

Whether a certificate was provided.

certificateVerified

string(date) or null

Certificate verification date.

leaveManagerActioned

boolean

Leave manager action flag.

payrollActioned

boolean

Payroll action flag.

organiserActioned

boolean

Organiser action flag.

firstName

string

Requester first name.

lastName

string

Requester last name.

startDate

string(date)

Absence start date.

endDate

string(date)

Absence end date.

startTime

string or null

Absence start time.

endTime

string or null

Absence end time.

duration

string or null

Display duration value.

category

string

Absence category.

submittedOn

string(date) or null

Submission date.

employeeId

string or null

Employee identifier.

TILO

This export returns Time In Lieu and Overtime records for the requested date range.

Response body
json{
  "success": true,
  "data": [
    {
      "firstName": "Jane",
      "lastName": "Smith",
      "takeAccrue": "Accrue",
      "overtime": "",
      "timeInLieu": "2:00",
      "date": "2026-04-18",
      "description": "Weekend event support",
      "category": "After Hours Duty",
      "status": "Fully Approved",
      "tiloManagerActioned": true,
      "payrollActioned": false,
      "organiserActioned": true
    }
  ]
}
json{
  "success": true,
  "data": [
    {
      "firstName": "Jane",
      "lastName": "Smith",
      "takeAccrue": "Accrue",
      "overtime": "",
      "timeInLieu": "2:00",
      "date": "2026-04-18",
      "description": "Weekend event support",
      "category": "After Hours Duty",
      "status": "Fully Approved",
      "tiloManagerActioned": true,
      "payrollActioned": false,
      "organiserActioned": true
    }
  ]
}
json{
  "success": true,
  "data": [
    {
      "firstName": "Jane",
      "lastName": "Smith",
      "takeAccrue": "Accrue",
      "overtime": "",
      "timeInLieu": "2:00",
      "date": "2026-04-18",
      "description": "Weekend event support",
      "category": "After Hours Duty",
      "status": "Fully Approved",
      "tiloManagerActioned": true,
      "payrollActioned": false,
      "organiserActioned": true
    }
  ]
}
Fields

Field

Type

Description

firstName

string

Staff first name.

lastName

string

Staff last name.

takeAccrue

string

Either Take or Accrue.

overtime

string

Duration value when the record is overtime, otherwise empty string.

timeInLieu

string

Duration value when the record is time in lieu, otherwise empty string.

date

string(date)

Time In Lieu date.

description

string or null

Description text.

category

string

Time In Lieu category.

status

string

One of Awaiting Approval, Initially Approved, Fully Approved, or Declined.

tiloManagerActioned

boolean

TiLO manager action flag.

payrollActioned

boolean

Payroll action flag.

organiserActioned

boolean

Organiser action flag.

Notes

  • status reflects the site’s two-stage Time In Lieu configuration.

  • overtime and timeInLieu are mutually exclusive display fields.

EXTRAHOURS

This export returns Extra Hours records for the requested date range.

Response body
json{
  "success": true,
  "data": [
    {
      "firstName": "Jane",
      "lastName": "Smith",
      "takeAccrue": "Take",
      "extraHours": "1:30",
      "date": "2026-04-22",
      "description": "Exam supervision",
      "status": "Awaiting Approval",
      "leaveManagerActioned": false,
      "organiserActioned": true
    }
  ]
}
json{
  "success": true,
  "data": [
    {
      "firstName": "Jane",
      "lastName": "Smith",
      "takeAccrue": "Take",
      "extraHours": "1:30",
      "date": "2026-04-22",
      "description": "Exam supervision",
      "status": "Awaiting Approval",
      "leaveManagerActioned": false,
      "organiserActioned": true
    }
  ]
}
json{
  "success": true,
  "data": [
    {
      "firstName": "Jane",
      "lastName": "Smith",
      "takeAccrue": "Take",
      "extraHours": "1:30",
      "date": "2026-04-22",
      "description": "Exam supervision",
      "status": "Awaiting Approval",
      "leaveManagerActioned": false,
      "organiserActioned": true
    }
  ]
}
Fields

Field

Type

Description

firstName

string

Staff first name.

lastName

string

Staff last name.

takeAccrue

string

Either Take or Accrue.

extraHours

string

Duration value in H:MM style.

date

string(date)

Extra Hours date.

description

string or null

Description text.

status

string

One of Awaiting Approval, Fully Approved, or Declined.

leaveManagerActioned

boolean

Leave manager action flag.

organiserActioned

boolean

Organiser action flag.

Notes

  • EXTRAHOURS does not currently expose a category field in the JSON export.

WFH

This export returns Working Remotely records for the requested date range.

Response body
json{
  "success": true,
  "data": [
    {
      "firstName": "Jane",
      "lastName": "Smith",
      "date": "2026-04-24 00:00:00",
      "startTime": "08:30",
      "endTime": "16:30",
      "duration": "All Day",
      "reason": "Working remotely for planning day",
      "leaveManagerActioned": true,
      "organiserActioned": false
    }
  ]
}
json{
  "success": true,
  "data": [
    {
      "firstName": "Jane",
      "lastName": "Smith",
      "date": "2026-04-24 00:00:00",
      "startTime": "08:30",
      "endTime": "16:30",
      "duration": "All Day",
      "reason": "Working remotely for planning day",
      "leaveManagerActioned": true,
      "organiserActioned": false
    }
  ]
}
json{
  "success": true,
  "data": [
    {
      "firstName": "Jane",
      "lastName": "Smith",
      "date": "2026-04-24 00:00:00",
      "startTime": "08:30",
      "endTime": "16:30",
      "duration": "All Day",
      "reason": "Working remotely for planning day",
      "leaveManagerActioned": true,
      "organiserActioned": false
    }
  ]
}
Field

Field

Type

Description

firstName

string

Staff first name.

lastName

string

Staff last name.

date

string(date)

Work From Home date.

startTime

string or null

Start time.

endTime

string or null

End time.

duration

string or null

Display duration value.

reason

string or null

Reason for working from home.

leaveManagerActioned

boolean

Leave manager action flag.

organiserActioned

boolean

Organiser action flag.

Notes

  • duration is a display field derived from all-day and additional info values.


LEAVESTAFF

The LEAVESTAFF export returns staff records with nested approved leave and absence entries within the requested date range.

Response body
json{
  "success": true,
  "data": [
    {
      "firstName": "Jane",
      "lastName": "Smith",
      "email": "jane.smith@example.com",
      "classification": "Teacher",
      "leave": [
        {
          "startDate": "2026-04-10",
          "endDate": "2026-04-12",
          "startTime": "09:00",
          "endTime": "17:00",
          "leaveCategory": "Annual Leave",
          "leaveType": "Leave"
        },
        {
          "startDate": "2026-05-03",
          "endDate": "2026-05-03",
          "startTime": "08:30",
          "endTime": "15:00",
          "leaveCategory": "Sick Leave",
          "leaveType": "Absence"
        }
      ]
    }
  ]
}
json{
  "success": true,
  "data": [
    {
      "firstName": "Jane",
      "lastName": "Smith",
      "email": "jane.smith@example.com",
      "classification": "Teacher",
      "leave": [
        {
          "startDate": "2026-04-10",
          "endDate": "2026-04-12",
          "startTime": "09:00",
          "endTime": "17:00",
          "leaveCategory": "Annual Leave",
          "leaveType": "Leave"
        },
        {
          "startDate": "2026-05-03",
          "endDate": "2026-05-03",
          "startTime": "08:30",
          "endTime": "15:00",
          "leaveCategory": "Sick Leave",
          "leaveType": "Absence"
        }
      ]
    }
  ]
}
json{
  "success": true,
  "data": [
    {
      "firstName": "Jane",
      "lastName": "Smith",
      "email": "jane.smith@example.com",
      "classification": "Teacher",
      "leave": [
        {
          "startDate": "2026-04-10",
          "endDate": "2026-04-12",
          "startTime": "09:00",
          "endTime": "17:00",
          "leaveCategory": "Annual Leave",
          "leaveType": "Leave"
        },
        {
          "startDate": "2026-05-03",
          "endDate": "2026-05-03",
          "startTime": "08:30",
          "endTime": "15:00",
          "leaveCategory": "Sick Leave",
          "leaveType": "Absence"
        }
      ]
    }
  ]
}
Top-level fields

Field

Type

Description

firstName

string

Staff first name.

lastName

string

Staff last name.

email

string or null

Staff email address.

classification

string

Staff classification.

leave

array or null

Nested leave and absence entries.

Nested leave fields

Field

Type

Description

startDate

string(date)

Leave start date.

endDate

string(date)

Leave end date.

startTime

string or null

Leave start time.

endTime

string or null

Leave end time.

leaveCategory

string

Leave category title.

leaveType

string

Either Leave or Absence.

ACE

The ACE export returns Activities, Camps and Excursion activity records for the requested date range.

Response body
json{
  "success": true,
  "data": [
    {
      "activity_name": "Year 6 Camp",
      "startDate": "2026-04-20",
      "endDate": "2026-04-22",
      "startTime": "08:00",
      "endTime": "17:00",
      "category": "Excursion",
      "yearLevelDesc": "Year 6",
      "description": "Outdoor education camp",
      "status": "finalApproved",
      "finalApprovalDate": "2026-03-15",
      "initialApprovalDate": "2026-03-10",
      "initialApprovalBy": "Alex Green",
      "finalApprovalBy": "John Brown",
      "venueName": "Camp Blue Gum",
      "venueAddress": "123 Forest Rd",
      "venueAddress2": null,
      "venueCity": "Ballarat",
      "venueState": "VIC",
      "venueCountry": "Australia",
      "venuePostcode": "3350"
    }
  ]
}
json{
  "success": true,
  "data": [
    {
      "activity_name": "Year 6 Camp",
      "startDate": "2026-04-20",
      "endDate": "2026-04-22",
      "startTime": "08:00",
      "endTime": "17:00",
      "category": "Excursion",
      "yearLevelDesc": "Year 6",
      "description": "Outdoor education camp",
      "status": "finalApproved",
      "finalApprovalDate": "2026-03-15",
      "initialApprovalDate": "2026-03-10",
      "initialApprovalBy": "Alex Green",
      "finalApprovalBy": "John Brown",
      "venueName": "Camp Blue Gum",
      "venueAddress": "123 Forest Rd",
      "venueAddress2": null,
      "venueCity": "Ballarat",
      "venueState": "VIC",
      "venueCountry": "Australia",
      "venuePostcode": "3350"
    }
  ]
}
json{
  "success": true,
  "data": [
    {
      "activity_name": "Year 6 Camp",
      "startDate": "2026-04-20",
      "endDate": "2026-04-22",
      "startTime": "08:00",
      "endTime": "17:00",
      "category": "Excursion",
      "yearLevelDesc": "Year 6",
      "description": "Outdoor education camp",
      "status": "finalApproved",
      "finalApprovalDate": "2026-03-15",
      "initialApprovalDate": "2026-03-10",
      "initialApprovalBy": "Alex Green",
      "finalApprovalBy": "John Brown",
      "venueName": "Camp Blue Gum",
      "venueAddress": "123 Forest Rd",
      "venueAddress2": null,
      "venueCity": "Ballarat",
      "venueState": "VIC",
      "venueCountry": "Australia",
      "venuePostcode": "3350"
    }
  ]
}
Fields

Field

Type

Description

activity_name

string

Activity name.

startDate

string(date)

Activity start date.

endDate

string(date)

Activity end date.

startTime

string or null

Activity start time.

endTime

string or null

Activity end time.

category

string or null

ACE category description.

yearLevelDesc

string or null

Year level description.

description

string or null

Activity description.

status

string

One of deleted, finalApproved, initialApproved, or pending.

finalApprovalDate

string(date) or null

Final approval date.

initialApprovalDate

string(date) or null

Initial approval date.

initialApprovalBy

string or null

Initial approver name.

finalApprovalBy

string or null

Final approver name.

venueName

string or null

Venue name.

venueAddress

string or null

Venue address line 1.

venueAddress2

string or null

Venue address line 2.

venueCity

string or null

Venue city.

venueState

string or null

Venue state.

venueCountry

string or null

Venue country.

venuePostcode

string or null

Venue postcode.

PDSTAFF

The PDSTAFF export returns confirmed professional development attendance records.

Response body
json{
  "success": true,
"data": [
{
"firstName": "Jane",
"lastName": "Smith",
"email": "jane.smith@example.com",
"startDate": "2026-04-10",
"endDate": "2026-04-10",
"eventName": "Child Safety Training",
"eventDescription": "Mandatory PD session",
"categoryName": "Compliance",
"startTime": "09:00",
"endTime": "15:00",
"location": "Main Hall"
}
]
}
json{
  "success": true,
"data": [
{
"firstName": "Jane",
"lastName": "Smith",
"email": "jane.smith@example.com",
"startDate": "2026-04-10",
"endDate": "2026-04-10",
"eventName": "Child Safety Training",
"eventDescription": "Mandatory PD session",
"categoryName": "Compliance",
"startTime": "09:00",
"endTime": "15:00",
"location": "Main Hall"
}
]
}
json{
  "success": true,
"data": [
{
"firstName": "Jane",
"lastName": "Smith",
"email": "jane.smith@example.com",
"startDate": "2026-04-10",
"endDate": "2026-04-10",
"eventName": "Child Safety Training",
"eventDescription": "Mandatory PD session",
"categoryName": "Compliance",
"startTime": "09:00",
"endTime": "15:00",
"location": "Main Hall"
}
]
}
Fields

Field

Type

Description

firstName

string

Staff first name

lastName

string

Staff last name

email

string or null

Staff email address

startDate

string(date)

Event start date

endDate

string(date)

Event end date

eventName

string

Event name

eventDescription

string or null

Event description

categoryName

string

PD category name

startTime

string or null

Event start time

endTime

string or null

Event end time

location

string or null

Event location

PDCOSTS

The PDCOSTS export returns professional development costs aggregated by month and category.

Response body
json{
  "success": true,
  "data": [
    {
      "month": "202604",
      "categoryName": "Compliance",
      "totalCost": 1250.0
    }
  ]
}
json{
  "success": true,
  "data": [
    {
      "month": "202604",
      "categoryName": "Compliance",
      "totalCost": 1250.0
    }
  ]
}
json{
  "success": true,
  "data": [
    {
      "month": "202604",
      "categoryName": "Compliance",
      "totalCost": 1250.0
    }
  ]
}
Fields

Field

Type

Description

month

string

Event month in YYYYMM format.

categoryName

string

PD category name.

totalCost

number

Aggregated total cost.

PDATTENDED

The PDATTENDED export returns professional development events attended by staff.

Response body
json{
  "success": true,
  "data": [
    {
      "staffName": "Jane Smith",
      "classificationName": "Teacher",
      "eventName": "Child Safety Training",
      "completionDate": "2026-04-10"
    }
  ]
}
json{
  "success": true,
  "data": [
    {
      "staffName": "Jane Smith",
      "classificationName": "Teacher",
      "eventName": "Child Safety Training",
      "completionDate": "2026-04-10"
    }
  ]
}
json{
  "success": true,
  "data": [
    {
      "staffName": "Jane Smith",
      "classificationName": "Teacher",
      "eventName": "Child Safety Training",
      "completionDate": "2026-04-10"
    }
  ]
}
Fields

Field

Type

Description

staffName

string

Staff full name.

classificationName

string

Staff classification.

eventName

string

Event name.

completionDate

string(date)

Event completion date.

STAFFACCRED

The STAFFACCRED export returns staff accreditation data for the site.

Response body
json{
  "success": true,
  "data": [
    {
      "email": "jane.smith@example.com",
      "firstName": "Jane",
      "lastName": "Smith",
      "classification": "Teacher",
      "status": "Active",
      "accreditation": [
        {
          "name": "First Aid",
          "validFor": "12 months",
          "status": "Accredited until 2026-12-31",
          "dateAccredited": "2025-12-31",
          "renewalDate": "2026-12-31"
        }
      ]
    }
  ]
}
json{
  "success": true,
  "data": [
    {
      "email": "jane.smith@example.com",
      "firstName": "Jane",
      "lastName": "Smith",
      "classification": "Teacher",
      "status": "Active",
      "accreditation": [
        {
          "name": "First Aid",
          "validFor": "12 months",
          "status": "Accredited until 2026-12-31",
          "dateAccredited": "2025-12-31",
          "renewalDate": "2026-12-31"
        }
      ]
    }
  ]
}
json{
  "success": true,
  "data": [
    {
      "email": "jane.smith@example.com",
      "firstName": "Jane",
      "lastName": "Smith",
      "classification": "Teacher",
      "status": "Active",
      "accreditation": [
        {
          "name": "First Aid",
          "validFor": "12 months",
          "status": "Accredited until 2026-12-31",
          "dateAccredited": "2025-12-31",
          "renewalDate": "2026-12-31"
        }
      ]
    }
  ]
}
Top-level fields

Field

Type

Description

email

string or null

Staff email address.

firstName

string

Staff first name.

lastName

string

Staff last name.

classification

string

Staff classification.

status

string

Site staff status, for example Active or Inactive.

accreditation

array or null

Nested accreditation entries.

Nested accreditation fields

Field

Type

Description

name

string

Accreditation name.

validFor

string

Human-readable validity period.

status

string

Accreditation status label generated by SQL.

dateAccredited

string(date) or null

Accreditation date.

renewalDate

string(date) or null

Renewal date.

Notes
  • The underlying SQL function only uses idSiteIn, but /export/asJson still requires the standard request parameters.



On this page