Introduction
Welcome to the Wonde API documentation.
The Wonde API allows you to manage school data within the Wonde cloud in a simple, programmatic way using conventional HTTP requests. The endpoints are intuitive and powerful, allowing you to easily make calls to retrieve or update information.
The API documentation will start with a general overview about the design and technology that has been implemented, followed by reference information about specific endpoints.
Regional Domains
The domain used for Wonde API requests varies depending on the region that a school is located. This is to ensure data is stored in the correct region to meet data protection requirements.
The domain required for a school is available through the region object returned by a call to the https://docs.wonde.com/docs/api/sync#schools endpoint. This domain can then be used to build the API call by inserting the domain into the following base URL https://{domain}/v1.0/schools/. Using the wrong domain for a school will return no data.
The domain required for schools in the UK and the rest of the world is "api.wonde.com"
The domain required for schools in Australia and New Zealand is "api-ap-southeast-2.wonde.com"
The domain required for schools in South Africa is "api-af-south-1.wonde.com"
Authentication
CURL EXAMPLE
curl https://api.wonde.com/v1.0 \
-u 7e76896f9aca62569048c667db292d72dd84f224:
curl https://api.wonde.com/v1.0 \
-H "Authorization: Bearer 7e76896f9aca62569048c667db292d72dd84f224"
There are two separate ways to authenticate and gain access to the Wonde API.
The first option is to send a bearer authorization header with your request. This is the preferred method of authenticating because it completes the authorization request in the header portion, away from the actual request.
You can also authenticate using basic authentication. The normal way to do this with a tool like curl is to use the
-u
flag which is used for passing authentication information.
You then send the username and password combination delimited by a colon character i.e; (username:password)
. We only require an access token, so use this as the username and leave the password field blank (make sure to include the colon character though).
IDs
Wonde ID
Almost all objects returned by the API have an id
property, in the format A123456789
. This will change only if a school migrates between MIS, or in exceptional circumstances, and not without prior notice. For migration monitoring, please see our 'schoolMigration’ webhook'.
MIS ID
Where available, we also provide the ID used to refer to an object within the source MIS in the mis_id
property. In some situations, we have to create it based on other fields provided by the MIS and it may change without prior notice. It can be useful, but please excercise caution when using this property in your code.
Scopes
After authorisation, the data available is dependant on your active scopes. Scopes are specific to your access token and the school being accessed. Scopes exist for objects and their properties - without an active scope, a property's value will be null
.
Pagination
The API supports two types of pagination: The default is offset pagination, and the optional alternative is cursor pagination.
The pagination object is returned as part of the response body when pagination is enabled. By default, 50 objects are returned per page. If the response contains 50 objects or fewer, no pagination object will be returned. If the response contains more than 50 objects, the first 50 will be returned along with the pagination object.
You can request a different pagination limit or force pagination by appending ?per_page=
to the request with the number of items you would like per page. For instance, to show only two results per page, you could add ?per_page=2
to the end of your query. The maximum number of results per page is set per endpoint.
Key | Description |
---|---|
next | The next page in the paginated response. |
previous | The previous page in the paginated response. |
more | Is there another page after the current page. |
per_page | How many rows are currently being returned per page/response. |
current_page | The current paginated page number. |
Offset Pagination
Curl example
curl "https://api.wonde.com/v1.0/schools/{school_id}/students/?page=1"
-H "Authorization: Bearer API_ACCESS_TOKEN"
Response Meta Object
{
"meta": {
"pagination": {
"next": "https://api.wonde.com/v1.0/schools/{school_id}/students/?page=2",
"previous": null,
"more": true,
"per_page": "50",
"current_page": 1
}
}
}
Offset pagination is the default type of pagination used in the API. It offers the ability to quickly jump to a specific page in a paginated set of results, however this type of pagination carries an overhead the further you traverse through a paginated dataset. With each new page requested from the API in sequential order, the underlying database query will have to fetch all the data up to the point of the desired offset, resulting in slower queries and slower response times as the page number gets larger.
Cursor Pagination
Curl example
curl "https://api.wonde.com/v1.0/schools/{school_id}/students/?cursor=true"
-H "Authorization: Bearer API_ACCESS_TOKEN"
Response Meta Object
{
"meta": {
"pagination": {
"next": "https://api.wonde.com/v1.0/schools/{school_id}/students/?cursor=eyJzY2hvb2xzLmlkIjoxLCJfcG9pbnRzVG9OZXh0SXRlbXMiOnRydWV9",
"previous": null,
"more": true,
"per_page": "50",
"current_page": 1
}
}
}
Cursor pagination is not returned by default in the API. To use cursor pagination, you need to add the ?cursor=true
query parameter. Cursor pagination does not provide the ability to quickly jump to a specific page, but it allows for far quicker traversal of paginated results. If your only requirement is to extract data from the API (and not jump to specific pages out of order) then we would recommend you use this type of pagination.
Includes
Response Body
{
"meta": {
"includes": [
"contacts",
"contacts.contact_details"
]
}
}
By default, the response contains only the basic properties of the specified request for optimised performance. Use include to select additional properties you need. The include options available for a request are specified in the meta data of any request.
Date filtering
Curl example
curl "https://api.wonde.com/v1.0/schools/{school_id}/students?updated_after=2024-11-04 10:11:11&updated_before=2024-11-16 12:11:00"
-H "Authorization: Bearer API_ACCESS_TOKEN"
You can filter the data returned in a request by using the date filtering parameters updated_after
and updated_before
. These parameters require the date to be in ISO format for example ?updated_after=2024-11-04 10:11:11&updated_before=2024-11-16 12:11:00
.
Errors
The Wonde API uses the following error codes:
Error Code | Meaning |
---|---|
400 | Bad Request – Something was wrong with the request. |
401 | Unauthorized – API key is invalid. |
403 | Forbidden – Incorrect permissions to view resource. |
404 | Not Found – The resource could not be found. |
422 | Unprocessable Entity – Invalid data has been supplied, please check the error message. |
423 | School Inactive – School is currently inactive, please try again later. |
429 | Too many requests. |
500 | Internal Server Error – We had a problem with our server. Try again later. |
503 | Service Unavailable – We’re temporarily offline for maintenance. Please try again later. |
Compression
Curl example
curl "https://api.wonde.com/v1.0/schools/all"
-H "Accept-Encoding: gzip"
-H "Authorization: Bearer API_ACCESS_TOKEN"
If the client fetching data from the API supports gzip
, then it is possible to enable this feature and reduce bandwidth usage by provided the following header with a request: Accept-Encoding: gzip
SDKs & Client Libraries
There are currently PHP, Ruby and .NET open source libraries available for the API.
- PHP: https://github.com/wondeltd/php-client
- Ruby: https://github.com/wondeltd/ruby-client
- .Net: https://github.com/wondeltd/dotnet-client
Currently we do not update or maintain these clients unless there is a critical issue or bug preventing it from working.
Deletions
Curl example
curl "https://api.wonde.com/v1.0/schools/{school_id}/deletions"
-H "Authorization: Bearer API_ACCESS_TOKEN"
Response Body
{
"data": [
{
"type": "contact",
"id": "A270887459",
"mis_id": "3462",
"deleted_at": {
"date": "2016-03-10 18:28:44.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"restored_at": {
"date": "2016-03-10 18:28:44.000000",
"timezone_type": 3,
"timezone": "UTC"
}
},
{
"type": "student",
"id": "A791227211",
"mis_id": "3452",
"deleted_at": {
"date": "2016-04-11 09:26:49.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"restored_at": {
"date": "2016-04-11 09:26:49.000000",
"timezone_type": 3,
"timezone": "UTC"
}
}
],
"meta": {
"pagination": {
"next": "https://api.wonde.com/v1.0/schools/{school_id}/deletions?page=2",
"previous": null,
"more": true,
"per_page": 50,
"current_page": 1
}
}
}
It's recommended that you use the updated_after
url parameter to efficiently sync updates to datasets. The deletions endpoint exists to provide a record of when an item is deleted.
The deletions endpoint will have an entry for every top level item (student, contact, employee, group...) unless the object is deleted due to a parent being removed. An example of this would be when a class is removed the associated lessons would be deleted without an entry in the deletions endpoint.
A restored_at
value will be returned for the deletions of students, student pre-admissions, student leavers, contacts, employees, groups and classes when a record that was previously deleted has been restored (it became available in the MIS data again with the same MIS ID).
Url parameters
Name | type | Description |
---|---|---|
updated_after | date | Return rows modified after date. |
updated_before | date | Return rows modified before date. |
per_page | int | Amount of rows to return. |
type | string | Only return records that have the provided type. |
Webhooks
RESPONSE BODY
{
"payload_type": "writeback",
"writeback_id": "A2032141745",
"status": "SUCCESS",
"type": "attendance.session"
}
{
"payload_type": "schoolApproved",
"school_id": "A2032141745",
"school_name": "Sir John Cass's Foundation Primary School",
"school_token": "7e76896f9aca62569048c667db292d72dd84f224",
"school_la_code": "201",
"school_urn": "10000",
"school_establishment_number": "3614"
}
{
"payload_type": "accessRevoked",
"school_id": "A2032141745",
"school_name": "Sir John Cass's Foundation Primary School",
"school_la_code": "201",
"school_urn": "10000",
"school_establishment_number": "3614",
"revoke_reason": "Reason for revoking access"
}
{
"payload_type": "accessDeclined",
"school_id": "A2032141745",
"school_name": "Sir John Cass's Foundation Primary School",
"school_la_code": "201",
"school_urn": "10000",
"school_establishment_number": "3614",
"decline_reason": "Reason for declining access"
}
{
"payload_type": "schoolMigration",
"school_id": "A2032141745",
"school_name": "Sir John Cass's Foundation Primary School",
"migrate_from": "SIMS",
"migrate_to": "SIMS Primary",
"scheduled_at": "2022-03-01T00:00:00.000Z",
"completed_at": null
}
Webhooks allow external services to be notified when certain events happen within Wonde. When the specified events happen, we’ll send a POST request to the URL you provide.
To add a Webhook for your application go to 'Settings' within your Wonde dashboard and then select 'API > Webhook' from the top right menu. The Webhook URL will receive a POST request from Wonde once an action has completed.
Underneath is a list of the webhooks available. You need to tick which webhooks you want to receive. The POST request will contain a payload in its body with a payload_type
property to denote the type being sent.
Payload types
Payload Type | Description |
---|---|
writeback |
Once you have sent a writeback request (for example, for attendance sessions), you’ll receive a |
schoolApproved |
A school approved payload is sent when a school approves the request. Once we check and subsequently approve the data audit, we will notify you by sending a POST request to your Webhook URL with a If you have enabled the automatic school token generation preference in your settings, you will also receive a |
accessRevoked |
An access revoked payload is sent when a school revokes access to your application. We will notify you by sending a POST request to your Webhook URL with a |
accessDeclined |
An access declined payload is sent when a school declines access to your application. We will notify you by sending a POST request to your Webhook URL with a |
schoolMigration |
A school migration payload is sent when a school has been scheduled for migration and when the migration has been completed. We will notify you by sending a POST request to your Webhook URL with a |
Schools
GET Approved Schools
CURL EXAMPLE
curl "https://api.wonde.com/v1.0/schools"
-H "Authorization: Bearer API_ACCESS_TOKEN"
curl "https://api.wonde.com/v1.0/schools/{school_id}"
-H "Authorization: Bearer API_ACCESS_TOKEN"
Response Body
{
"data": [
{
"id": "A1329183376",
"name": "Sir John Cass's Foundation Primary School",
"establishment_number": "3614",
"urn": 10000,
"phase_of_education": "PRIMARY",
"la_code": "201",
"timezone": null,
"mis": null,
"address": {
"address_line_1": "St James's Passage",
"address_line_2": "Duke's Place",
"address_town": "London",
"address_postcode": "EC3A 5DE",
"address_country": {
"code": "GBR",
"name": "United Kingdom"
}
},
"extended": {
"allows_writeback": true,
"has_timetables": false,
"has_lesson_attendance": false
},
"region": {
"code": "GBR",
"domain": "api.wonde.com",
"school_url": "https://api.wonde.com/v1.0/schools/A1300691890",
"identifiers": {
"la_code": 201,
"establishment_number": 3614,
"urn": 10000
}
}
},
{
"id": "A1161584171",
"name": "City of London School for Girls",
"establishment_number": 6005,
"urn": 10001,
"phase_of_education": "NOT APPLICABLE",
"la_code": 201,
"timezone": null,
"mis": null,
"address": {
"address_line_1": "St Giles' Terrace",
"address_line_2": "Barbican",
"address_town": "London",
"address_postcode": "EC2Y 8BB",
"address_country": {
"code": "GBR",
"name": "United Kingdom"
}
},
"extended": {
"allows_writeback": true,
"has_timetables": false,
"has_lesson_attendance": false
},
"region": {
"code": "GBR",
"domain": "api.wonde.com",
"school_url": "https://api.wonde.com/v1.0/schools/A1300691890",
"identifiers": {
"la_code": 201,
"establishment_number": 6005,
"urn": 10001
}
}
}
],
"meta": {
"pagination": {
"next": "https://api.wonde.com/v1.0/schools?page=2",
"previous": null,
"more": true,
"per_page": 50,
"current_page": 1
}
}
}
Return all schools that have approved access for your application. You can request access to a school via the API or the Administration Panel.
Url parameters
Name | type | Description |
---|---|---|
updated_after | date | Return rows modified after date. |
updated_before | date | Return rows modified before date. |
per_page | int | Amount of rows to return. |
postcode | string | Return results matching postcode search string. |
la_code | string | Return results with provided la_code. |
establishment_number | string | Return results with provided establishment_number. |
GET All Schools
CURL EXAMPLE
curl "https://api.wonde.com/v1.0/schools/all"
-H "Authorization: Bearer API_ACCESS_TOKEN"
curl "https://api.wonde.com/v1.0/schools/{school_id}"
-H "Authorization: Bearer API_ACCESS_TOKEN"
Response Body
{
"data": [
{
"id": "A1329183376",
"name": "Sir John Cass's Foundation Primary School",
"establishment_number": "3614",
"urn": 10000,
"phase_of_education": "PRIMARY",
"la_code": "201",
"timezone": null,
"mis": null,
"address": {
"address_line_1": "St James's Passage",
"address_line_2": "Duke's Place",
"address_town": "London",
"address_postcode": "EC3A 5DE",
"address_country": {
"code": "GBR",
"name": "United Kingdom"
}
},
"extended": {
"allows_writeback": true,
"has_timetables": false,
"has_lesson_attendance": false
},
"region": {
"code": "GBR",
"domain": "api.wonde.com",
"school_url": "https://api.wonde.com/v1.0/schools/A1300691890",
"identifiers": {
"la_code": 201,
"establishment_number": 3614,
"urn": 10000
}
}
},
{
"id": "A1161584171",
"name": "City of London School for Girls",
"establishment_number": 6005,
"urn": 10001,
"phase_of_education": "NOT APPLICABLE",
"la_code": 201,
"timezone": null,
"mis": null,
"address": {
"address_line_1": "St Giles' Terrace",
"address_line_2": "Barbican",
"address_town": "London",
"address_postcode": "EC2Y 8BB",
"address_country": {
"code": "GBR",
"name": "United Kingdom"
}
},
"extended": {
"allows_writeback": true,
"has_timetables": false,
"has_lesson_attendance": false
},
"region": {
"code": "GBR",
"domain": "api.wonde.com",
"school_url": "https://api.wonde.com/v1.0/schools/A1300691890",
"identifiers": {
"la_code": 201,
"establishment_number": 6005,
"urn": 10001
}
}
}
],
"meta": {
"pagination": {
"next": "https://api.wonde.com/v1.0/schools?page=2",
"previous": null,
"more": true,
"per_page": 50,
"current_page": 1
}
}
}
Return a list of all schools
Url parameters
Name | type | Description |
---|---|---|
updated_after | date | Return rows modified after date. |
updated_before | date | Return rows modified before date. |
per_page | int | Amount of rows to return. |
postcode | string | Return results matching postcode search string. |
la_code | string | Return results with provided la_code. |
establishment_number | string | Return results with provided establishment_number. |
urn | int | Return results with provided unique reference number. |
GET Pending Schools
CURL EXAMPLE
curl "https://api.wonde.com/v1.0/schools/pending"
-H "Authorization: Bearer API_ACCESS_TOKEN"
curl "https://api.wonde.com/v1.0/schools/{school_id}"
-H "Authorization: Bearer API_ACCESS_TOKEN"
Response Body
{
"data": [
{
"id": "A1329183376",
"name": "Sir John Cass's Foundation Primary School",
"establishment_number": "3614",
"urn": 10000,
"phase_of_education": "PRIMARY",
"la_code": "201",
"timezone": null,
"mis": null,
"address": {
"address_line_1": "St James's Passage",
"address_line_2": "Duke's Place",
"address_town": "London",
"address_postcode": "EC3A 5DE",
"address_country": {
"code": "GBR",
"name": "United Kingdom"
}
},
"extended": {
"allows_writeback": true,
"has_timetables": false,
"has_lesson_attendance": false
},
"region": {
"code": "GBR",
"domain": "api.wonde.com",
"school_url": "https://api.wonde.com/v1.0/schools/A1300691890",
"identifiers": {
"la_code": "201",
"establishment_number": "3614",
"urn": 10000
}
}
},
{
"id": "A1161584171",
"name": "City of London School for Girls",
"establishment_number": 6005,
"urn": 10001,
"phase_of_education": "NOT APPLICABLE",
"la_code": 201,
"timezone": null,
"mis": null,
"address": {
"address_line_1": "St Giles' Terrace",
"address_line_2": "Barbican",
"address_town": "London",
"address_postcode": "EC2Y 8BB",
"address_country": {
"code": "GBR",
"name": "United Kingdom"
}
},
"extended": {
"allows_writeback": true,
"has_timetables": false,
"has_lesson_attendance": false
},
"region": {
"code": "GBR",
"domain": "api.wonde.com",
"school_url": "https://api.wonde.com/v1.0/schools/A1300691890",
"identifiers": {
"la_code": 201,
"establishment_number": 6005,
"urn": 10001
}
}
}
],
"meta": {
"pagination": {
"next": "https://api.wonde.com/v1.0/schools?page=2",
"previous": null,
"more": true,
"per_page": 50,
"current_page": 1
}
}
}
Return all that have a pending access request.
Url parameters
Name | type | Description |
---|---|---|
updated_after | date | Return rows modified after date. |
updated_before | date | Return rows modified before date. |
per_page | int | Amount of rows to return. |
postcode | string | Return results matching postcode search string. |
la_code | string | Return results with provided la_code. |
establishment_number | string | Return results with provided establishment_number. |
GET Audited Schools
CURL EXAMPLE
curl "https://api.wonde.com/v1.0/schools/audited"
-H "Authorization: Bearer API_ACCESS_TOKEN"
curl "https://api.wonde.com/v1.0/schools/{school_id}"
-H "Authorization: Bearer API_ACCESS_TOKEN"
Response Body
{
"data": [
{
"id": "A1329183376",
"name": "Sir John Cass's Foundation Primary School",
"establishment_number": "3614",
"urn": 10000,
"phase_of_education": "PRIMARY",
"la_code": "201",
"timezone": null,
"mis": null,
"address": {
"address_line_1": "St James's Passage",
"address_line_2": "Duke's Place",
"address_town": "London",
"address_postcode": "EC3A 5DE",
"address_country": {
"code": "GBR",
"name": "United Kingdom"
}
},
"extended": {
"allows_writeback": true,
"has_timetables": false,
"has_lesson_attendance": false
},
"region": {
"code": "GBR",
"domain": "api.wonde.com",
"school_url": "https://api.wonde.com/v1.0/schools/A1300691890",
"identifiers": {
"la_code": "201",
"establishment_number": "3614",
"urn": 10000
}
}
},
{
"id": "A1161584171",
"name": "City of London School for Girls",
"establishment_number": 6005,
"urn": 10001,
"phase_of_education": "NOT APPLICABLE",
"la_code": 201,
"timezone": null,
"mis": null,
"address": {
"address_line_1": "St Giles' Terrace",
"address_line_2": "Barbican",
"address_town": "London",
"address_postcode": "EC2Y 8BB",
"address_country": {
"code": "GBR",
"name": "United Kingdom"
}
},
"extended": {
"allows_writeback": true,
"has_timetables": false,
"has_lesson_attendance": false
},
"region": {
"code": "GBR",
"domain": "api.wonde.com",
"school_url": "https://api.wonde.com/v1.0/schools/A1300691890",
"identifiers": {
"la_code": 201,
"establishment_number": 6005,
"urn": 10001
}
}
}
],
"meta": {
"pagination": {
"next": "https://api.wonde.com/v1.0/schools?page=2",
"previous": null,
"more": true,
"per_page": 50,
"current_page": 1
}
}
}
Return all that have passed through our data audit process.
These schools will have passed through our data audit process which is based on reports running successfully and data completeness.
We would recommend that you integrate with approved schools using this endpoint.
Url parameters
Name | type | Description |
---|---|---|
updated_after | date | Return rows modified after date. |
updated_before | date | Return rows modified before date. |
per_page | int | Amount of rows to return. |
postcode | string | Return results matching postcode search string. |
la_code | string | Return results with provided la_code. |
establishment_number | string | Return results with provided establishment_number. |
GET Offline Schools
CURL EXAMPLE
curl "https://api.wonde.com/v1.0/schools/offline"
-H "Authorization: Bearer API_ACCESS_TOKEN"
curl "https://api.wonde.com/v1.0/schools/{school_id}"
-H "Authorization: Bearer API_ACCESS_TOKEN"
Response Body
{
"data": [
{
"id": "A1329183376",
"name": "Sir John Cass's Foundation Primary School",
"establishment_number": "3614",
"urn": 10000,
"phase_of_education": "PRIMARY",
"la_code": "201",
"timezone": null,
"mis": null,
"address": {
"address_line_1": "St James's Passage",
"address_line_2": "Duke's Place",
"address_town": "London",
"address_postcode": "EC3A 5DE",
"address_country": {
"code": "GBR",
"name": "United Kingdom"
}
},
"extended": {
"allows_writeback": true,
"has_timetables": false,
"has_lesson_attendance": false
},
"region": {
"code": "GBR",
"domain": "api.wonde.com",
"school_url": "https://api.wonde.com/v1.0/schools/A1300691890",
"identifiers": {
"la_code": "201",
"establishment_number": "3614",
"urn": 10000
}
}
},
{
"id": "A1161584171",
"name": "City of London School for Girls",
"establishment_number": 6005,
"urn": 10001,
"phase_of_education": "NOT APPLICABLE",
"la_code": 201,
"timezone": null,
"mis": null,
"address": {
"address_line_1": "St Giles' Terrace",
"address_line_2": "Barbican",
"address_town": "London",
"address_postcode": "EC2Y 8BB",
"address_country": {
"code": "GBR",
"name": "United Kingdom"
}
},
"extended": {
"allows_writeback": true,
"has_timetables": false,
"has_lesson_attendance": false
},
"region": {
"code": "GBR",
"domain": "api.wonde.com",
"school_url": "https://api.wonde.com/v1.0/schools/A1300691890",
"identifiers": {
"la_code": 201,
"establishment_number": 6005,
"urn": 10001
}
}
}
],
"meta": {
"pagination": {
"next": "https://api.wonde.com/v1.0/schools?page=2",
"previous": null,
"more": true,
"per_page": 50,
"current_page": 1
}
}
}
Return all SIMS schools have not responded for 24 hours.
Url parameters
Name | type | Description |
---|---|---|
updated_after | date | Return rows modified after date. |
updated_before | date | Return rows modified before date. |
per_page | int | Amount of rows to return. |
postcode | string | Return results matching postcode search string. |
la_code | string | Return results with provided la_code. |
establishment_number | string | Return results with provided establishment_number. |
GET Revoked Schools
CURL EXAMPLE
curl "https://api.wonde.com/v1.0/schools/revoked"
-H "Authorization: Bearer API_ACCESS_TOKEN"
curl "https://api.wonde.com/v1.0/schools/{school_id}"
-H "Authorization: Bearer API_ACCESS_TOKEN"
Response Body
{
"data": [
{
"id": "A1329183376",
"name": "Sir John Cass's Foundation Primary School",
"establishment_number": "3614",
"urn": 10000,
"phase_of_education": "PRIMARY",
"la_code": "201",
"timezone": null,
"mis": null,
"address": {
"address_line_1": "St James's Passage",
"address_line_2": "Duke's Place",
"address_town": "London",
"address_postcode": "EC3A 5DE",
"address_country": {
"code": "GBR",
"name": "United Kingdom"
}
},
"extended": {
"allows_writeback": true,
"has_timetables": false,
"has_lesson_attendance": false
},
"region": {
"code": "GBR",
"domain": "api.wonde.com",
"school_url": "https://api.wonde.com/v1.0/schools/A1300691890",
"identifiers": {
"la_code": "201",
"establishment_number": "3614",
"urn": 10000
}
}
},
{
"id": "A1161584171",
"name": "City of London School for Girls",
"establishment_number": 6005,
"urn": 10001,
"phase_of_education": "NOT APPLICABLE",
"la_code": 201,
"timezone": null,
"mis": null,
"address": {
"address_line_1": "St Giles' Terrace",
"address_line_2": "Barbican",
"address_town": "London",
"address_postcode": "EC2Y 8BB",
"address_country": {
"code": "GBR",
"name": "United Kingdom"
}
},
"extended": {
"allows_writeback": true,
"has_timetables": false,
"has_lesson_attendance": false
},
"region": {
"code": "GBR",
"domain": "api.wonde.com",
"school_url": "https://api.wonde.com/v1.0/schools/A1300691890",
"identifiers": {
"la_code": 201,
"establishment_number": 6005,
"urn": 10001
}
}
}
],
"meta": {
"pagination": {
"next": "https://api.wonde.com/v1.0/schools?page=2",
"previous": null,
"more": true,
"per_page": 50,
"current_page": 1
}
}
}
Return all schools that have revoked access.
Url parameters
Name | type | Description |
---|---|---|
per_page | int | Amount of rows to return. |
GET Declined Schools
CURL EXAMPLE
curl "https://api.wonde.com/v1.0/schools/declined"
-H "Authorization: Bearer API_ACCESS_TOKEN"
curl "https://api.wonde.com/v1.0/schools/{school_id}"
-H "Authorization: Bearer API_ACCESS_TOKEN"
Response Body
{
"data": [
{
"id": "A1329183376",
"name": "Sir John Cass's Foundation Primary School",
"establishment_number": "3614",
"urn": 10000,
"phase_of_education": "PRIMARY",
"la_code": "201",
"timezone": null,
"mis": null,
"address": {
"address_line_1": "St James's Passage",
"address_line_2": "Duke's Place",
"address_town": "London",
"address_postcode": "EC3A 5DE",
"address_country": {
"code": "GBR",
"name": "United Kingdom"
}
},
"extended": {
"allows_writeback": true,
"has_timetables": false,
"has_lesson_attendance": false
},
"region": {
"code": "GBR",
"domain": "api.wonde.com",
"school_url": "https://api.wonde.com/v1.0/schools/A1300691890",
"identifiers": {
"la_code": "201",
"establishment_number": "3614",
"urn": 10000
}
}
},
{
"id": "A1161584171",
"name": "City of London School for Girls",
"establishment_number": 6005,
"urn": 10001,
"phase_of_education": "NOT APPLICABLE",
"la_code": 201,
"timezone": null,
"mis": null,
"address": {
"address_line_1": "St Giles' Terrace",
"address_line_2": "Barbican",
"address_town": "London",
"address_postcode": "EC2Y 8BB",
"address_country": {
"code": "GBR",
"name": "United Kingdom"
}
},
"extended": {
"allows_writeback": true,
"has_timetables": false,
"has_lesson_attendance": false
},
"region": {
"code": "GBR",
"domain": "api.wonde.com",
"school_url": "https://api.wonde.com/v1.0/schools/A1300691890",
"identifiers": {
"la_code": 201,
"establishment_number": 6005,
"urn": 10001
}
}
}
],
"meta": {
"pagination": {
"next": "https://api.wonde.com/v1.0/schools?page=2",
"previous": null,
"more": true,
"per_page": 50,
"current_page": 1
}
}
}
Return all schools that have declined access.
Url parameters
Name | type | Description |
---|---|---|
per_page | int | Amount of rows to return. |
GET School Meta Data
CURL EXAMPLE
curl "https://api.wonde.com/v1.0/meta/schools/{school_id}"
-H "Authorization: Bearer API_ACCESS_TOKEN"
Response Body
{
"data": {
"online": true,
"approved": true,
"audited": false,
"custom_attendance_codes": false
}
}
Return meta data for a school.
Name | type | Description |
---|---|---|
online | boolean | If the school is online. |
approved | boolean | If the school has approved access to application. |
audited | boolean | If the school has been audited for data completeness. |
custom_attendance_codes | boolean | If the school has their own custom attendance codes. |
GET Applied Permissions
CURL EXAMPLE
curl "https://api.wonde.com/v1.0/meta/schools/{school_id}/permissions"
-H "Authorization: Bearer API_ACCESS_TOKEN"
Response Body
{
"data": [
{
"identity": "students.read",
"name": "Students read",
"description": "View student data",
"parent": null,
"group": "Student",
"active_from": {
"date": "2018-02-01 15:32:20.000000",
"timezone_type": 3,
"timezone": "Europe/London",
},
"optional": true,
"approved": true,
"audited": false
},
{
"identity": "students-date-of-birth.read",
"name": "Students date of birth read",
"description": "View student date of birth data",
"parent": "students.read",
"group": "Student",
"active_from": {
"date": "2018-02-01 15:32:20.000000",
"timezone_type": 3,
"timezone": "Europe/London",
},
"optional": false,
"approved": false,
"audited": false
},
]
}
Return your permissions as applied to a school.
GET Access Control List
Return the access control list applied to a school.
CURL EXAMPLE
curl "https://api.wonde.com/v1.0/meta/schools/{school_id}/acl"
-H "Authorization: Bearer API_ACCESS_TOKEN"
Response Body
{
"data": {
"mode": "blacklist",
"ids": [
"A1329183376",
"A1161584171",
"A1529934786",
"A1362597725",
"A1462380788"
]
}
}
CURL EXAMPLE
curl "https://api.wonde.com/v1.0/meta/schools/{school_id}/acl?with_user_type=true"
-H "Authorization: Bearer API_ACCESS_TOKEN"
Response Body
{
"data": {
"mode": "blacklist",
"ids": [
{
"id": "A123456789",
"type": "student"
},
{
"id": "A987654321",
"type": "contact"
}
]
}
}
Url parameters
Name | type | Description |
---|---|---|
with_user_type | boolean | Display the type of user. |
ACL Object
Name | Type | Description |
---|---|---|
mode | string nullable |
This can be "blacklist", "whitelist" or null if an ACL has not been enabled at the school. |
ids | array | Array of person id's that have been added to the ACL. |
POST Request Access
CURL EXAMPLE
curl -X POST -H "Authorization: Bearer API_ACCESS_TOKEN" -H "Content-Type: application/json" -d '{
"contacts": [
{
"first_name": "Joe",
"last_name": "Bloggs",
"phone_number": "07700777777",
"email_address": "[email protected]",
"notes": "Spoke with Joe to discuss our application earlier today."
}
]}' "https://api.wonde.com/v1.0/schools/{school_id}/request-access"
When requesting access to a school it is recommended that you provide details of available contacts at the school. This can speed up the approval process considerably, but it is not required.
The contact should be provided within an array. More than one contact can be provided.
Request body
Request Body
{
"contacts": [
{
"first_name": "Joe",
"last_name": "Bloggs",
"phone_number": "07700777777",
"email_address": "[email protected]",
"notes": "Spoke with Joe to discuss our application earlier today."
},
{
"first_name": "John",
"last_name": "Smith",
"phone_number": "07700888888",
"email_address": "[email protected]",
"notes": "John is the school IT technician."
}
]
}
To add contact details, send a JSON encoded
POST request to /v1.0/schools/{school_id}/request-access
An example of the request body is provided on the right.
The attribute values that must be set successfully to add a contact to the request are:
Name | type | Required | Description |
---|---|---|---|
first_name | string | Yes | First name of contact. |
last_name | string | Yes | Last name of contact. |
phone_number | string | No | Phone number of contact. |
email_address | string | Yes | Email address of contact. |
notes | string | No | Notes for the contact. |
Response Body
{
"success": true,
"state": "pending",
"message": "Access request successfully received"
}
DELETE Revoke Access
CURL EXAMPLE
curl -X DELETE "https://api.wonde.com/v1.0/schools/{school_id}/revoke-access"
-H "Authorization: Bearer API_ACCESS_TOKEN"
Response Body
{
"success": true,
"state": "revoked",
"message": "Access revoked"
}
Achievements
GET Achievements
curl "https://api.wonde.com/v1.0/schools/{school_id}/achievements"
-H "Authorization: Bearer API_ACCESS_TOKEN"
curl "https://api.wonde.com/v1.0/schools/{school_id}/achievements/{achievement_id}"
-H "Authorization: Bearer API_ACCESS_TOKEN"
Response Body
{
"data": [
{
"id": "A408720213",
"mis_id": "1015",
"type": "Musical Activity",
"action": null,
"subject": "Science",
"class": "7A/Science",
"points": 10,
"total_points": 50,
"comment": "Excellent effort in the school band performance at lunchtime",
"parents_notified": true,
"achievement_date": {
"date": "2015-01-09 00:00:00.000000",
"timezone_type": 3,
"timezone": "Europe/London"
},
"action_date": null,
"recorded_date": {
"date": "2015-01-09 00:00:00.000000",
"timezone_type": 3,
"timezone": "Europe/London"
},
"created_at": {
"date": "2016-03-15 11:08:26.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"updated_at": {
"date": "2016-03-15 11:08:26.000000",
"timezone_type": 3,
"timezone": "UTC"
}
},
{
"id": "A803392563",
"mis_id": "1016",
"type": "Excellent Effort",
"action": null,
"subject": "Art",
"class": "7A/Art",
"points": 15,
"comment": null,
"parents_notified": true,
"achievement_date": {
"date": "2015-01-09 00:00:00.000000",
"timezone_type": 3,
"timezone": "Europe/London"
},
"action_date": {
"date": "2015-01-09 00:00:00.000000",
"timezone_type": 3,
"timezone": "Europe/London"
},
"recorded_date": {
"date": "2015-03-13 00:00:00.000000",
"timezone_type": 3,
"timezone": "Europe/London"
},
"created_at": {
"date": "2016-03-15 11:08:26.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"updated_at": {
"date": "2016-03-15 11:08:26.000000",
"timezone_type": 3,
"timezone": "UTC"
}
}
],
"meta": {
"pagination": {
"next": null,
"previous": null,
"more": false,
"per_page": 50,
"current_page": 1
},
"includes": [
"students",
"employees"
]
}
}
Url parameters
Name | type | Description |
---|---|---|
achievement_date_before | date | Return entries before date. |
achievement_date_after | date | Return entries after date. |
updated_after | date | Return rows modified after date. |
updated_before | date | Return rows modified before date. |
per_page | int | Amount of rows to return. |
include | string | Comma separated list of objects to include. |
has_students | string | Only return records that have students attached. |
has_employees | string | Only return records that have employees attached. |
mis_id | string int |
Return records with the provided MIS_ID. |
Related objects
Name | Relationship |
---|---|
students | many |
employees | many |
POST Achievements
Curl example
curl -X POST -H "Authorization: Basic API_ACCESS_TOKEN" -H "Content-Type: application/json" -d '{
"students": [
{
"student_id" : "A1849765024",
"points": 200,
"award" : "TROP",
"award_date" : "2016-04-04"
},
{
"student_id" : "A1682292795",
"points": 200,
"award" : "CERT",
"award_date" : "2016-04-04"
}
],
"employee_id": "A1329183376",
"lesson_id": "A6357932393",
"date": "2016-04-01",
"type": "NYPA",
"comment": "A4",
"activity_type": "RE"
}' "https://api.wonde.com/v1.0/schools/{school_id}/achievements"
To create an achievement record, send a JSON encoded
POST request to /v1.0/schools/{school_id}/achievements
.
- You will need the achievement.write Wonde permission.
Request body
Request Body
{
"students": [
{
"student_id" : "A1849765024",
"points": 200,
"award" : "TROP",
"award_date" : "2016-04-04"
},
{
"student_id" : "A1682292795",
"points": 200,
"award" : "CERT",
"award_date" : "2016-04-04"
}
],
"employee_id": "A1329183376",
"lesson_id": "A6357932393",
"date": "2016-04-01",
"type": "NYPA",
"comment": "A4",
"activity_type": "RE"
}
An example of the request body is provided on the right.
The attribute values that must be set successfully to create achievement records are:
Name | type | Required | Description |
---|---|---|---|
students | array | Yes | |
students > student_id | string | Yes | The Wonde ID of a student. |
students > award | string | No | The code or ID of the award given in response to the achievement. See behaviour attributes ACHIEVEMENT_OUTCOME. |
students > award_date | string | No | The date the associated to the award. |
students > points | integer | Yes | The amount of points associated to the achievement. Points indicate the level of the achievement. |
employee_id | string | Yes | The Wonde ID of the employee that recorded the incident. |
lesson_id | string | No | The Wonde ID of the lesson that the incident occured in. |
date | string | Yes | The date of the incident. |
type | string | Yes | The code or ID of the achievement type. See achievement attributes ACHIEVEMENT_TYPE. |
comment | string | No | Short text note. |
activity_type | string | No | The code or ID of the activity. See achievement attributes EVENT_SUBJECT. |
PUT Achievements
Curl example
curl -X PUT -H "Authorization: Basic API_ACCESS_TOKEN" -H "Content-Type: application/json" -d '{
"students": [
{
"student_id" : "A1849765024",
"points": 200,
"award" : "TROP",
"award_date" : "2016-04-04"
},
{
"student_id" : "A1682292795",
"points": 200,
"award" : "CERT",
"award_date" : "2016-04-04"
}
],
"employee_id": "A1329183376",
"lesson_id": "A6357932393",
"date": "2016-04-01",
"type": "NYPA",
"comment": "A4",
"activity_type": "RE"
}' "https://api.wonde.com/v1.0/schools/{school_id}/achievements/{achievement_id}"
To edit an achievement record, send a JSON encoded
PUT request to /v1.0/schools/{school_id}/achievements/{achievement_id}
.
- You will need the achievement.write Wonde permission.
Request body
Request Body
{
"students": [
{
"student_id" : "A1849765024",
"points": 200,
"award" : "TROP",
"award_date" : "2016-04-04"
},
{
"student_id" : "A1682292795",
"points": 200,
"award" : "CERT",
"award_date" : "2016-04-04"
}
],
"employee_id": "A1329183376",
"lesson_id": "A6357932393",
"date": "2016-04-01",
"type": "NYPA",
"comment": "A4",
"activity_type": "RE"
}
An example of the request body is provided on the right.
The attribute values that must be set successfully to edit achievement records are:
Name | type | Required | Description |
---|---|---|---|
students | array | Yes | Note: Bromcom requires a single student to be present in this array. |
students > student_id | string | Yes | The Wonde ID of a student. |
students > award | string | No | The code or ID of the award given in response to the achievement. See behaviour attributes ACHIEVEMENT_OUTCOME. |
students > award_date | string | No | The date the associated to the award. |
students > points | integer | Yes | The amount of points associated to the achievement. Points indicate the level of the achievement. |
employee_id | string | Yes | The Wonde ID of the employee that recorded the incident. |
lesson_id | string | No | The Wonde ID of the lesson that the incident occured in. |
date | string | Yes | The date of the incident. |
type | string | Yes | The code or ID of the achievement type. See achievement attributes ACHIEVEMENT_TYPE. |
comment | string | No | Short text note. |
activity_type | string | No | The code or ID of the activity. See achievement attributes EVENT_SUBJECT. |
DELETE Achievement
Curl example
curl -X "DELETE" "https://api.wonde.com/v1.0/schools/{school_id}/achievements/{achievement_id}"
-H "Authorization: Bearer API_ACCESS_TOKEN"
You need the achievement delete permission to perform this action.
To delete a achievement record just send a delete request to achievement item's url.
Achievement Object
Response Body
{
"id": "A408720213",
"mis_id": "1015",
"type": "Musical Activity",
"action": null,
"subject": "Music",
"class": "7A/Music",
"points": 10,
"total_points": 100,
"comment": "Excellent effort in the school band performance at lunchtime",
"parents_notified": true,
"achievement_date": {
"date": "2015-01-09 00:00:00.000000",
"timezone_type": 3,
"timezone": "Europe/London"
},
"action_date": {
"date": "2015-01-09 00:00:00.000000",
"timezone_type": 3,
"timezone": "Europe/London"
},
"recorded_date": {
"date": "2015-01-09 00:00:00.000000",
"timezone_type": 3,
"timezone": "Europe/London"
},
"created_at": {
"date": "2016-03-15 11:08:26.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"updated_at": {
"date": "2016-03-15 11:08:26.000000",
"timezone_type": 3,
"timezone": "UTC"
}
}
You need the achievement read permission to view this object.
Name | Type | Description |
---|---|---|
id | string | The ID of the object. |
mis_id | string | The ID in the MIS. |
type | string nullable |
The type of achievement. |
action | string nullable |
The action taken in response to the achievement. |
subject | string nullable |
The subject during which the achievement occurred. |
class | string nullable |
The class in which the achievement occurred. |
points | integer nullable |
The amount of points associated to the incident. Points indicate the severity of the event. |
total_points | integer nullable |
The total amount of points associated to the incident. |
comment | string nullable |
Short text note. |
parents_notified | boolean nullable |
Boolean indicating if the parent has been notified of the achievement. |
achievement_date | datetime nullable |
The date of the achievement. |
action_date | datetime nullable |
The date the action took place. |
recorded_date | datetime nullable |
The date the incident was recorded. |
created_at | datetime | When the record was added to Wonde. |
updated_at | datetime | When the record was last updated on Wonde. |
Achievement Attributes
Curl example
curl "https://api.wonde.com/v1.0/schools/{school_id}/achievements/attributes"
-H "Authorization: Bearer API_ACCESS_TOKEN"
Response Body
{
"data": [
{
"id": "A510231222",
"mis_id": "13",
"type": "EVENT_SUBJECT",
"code": "ART",
"active": true,
"points": null,
"description": "Art",
"bullying_type_enabled": false,
"created_at": {
"date": "2016-03-16 15:23:42.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"updated_at": {
"date": "2016-03-17 15:01:40.000000",
"timezone_type": 3,
"timezone": "UTC"
}
},
{
"id": "A1741747977",
"mis_id": "11",
"type": "ACHIEVEMENT_TYPE",
"code": "ACAD",
"active": false,
"points": 1,
"description": "Academic",
"bullying_type_enabled": false,
"created_at": {
"date": "2016-03-17 14:59:18.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"updated_at": {
"date": "2016-03-24 09:39:22.000000",
"timezone_type": 3,
"timezone": "UTC"
}
}
],
"meta": {
"pagination": {
"next": "https://api.wonde.com/v1.0/schools/{school_id}/achievements/attributes?page=2",
"previous": null,
"more": true,
"per_page": 50,
"current_page": 1
}
}
}
You need the achievement read permission to view this resource.
In SIMS, achievement records are made from multiple select box values. To make it easy to update achievement records, we provide the possible options for these select boxes. When updating / creating a achievement record you can provide the CODE or the ID for the select box value.
It is important that you check the code is valid for a school as missing or disabled codes will not pass Wonde's validation.
Type | Information / Examples |
---|---|
ACHIEVEMENT_TYPE |
This is the achievement category. Some achievement types will have points associated to them. Example: GOL = Gold Award |
EVENT_SUBJECT |
The activity / subject in which the incident took place. Example: ENG = English |
ACHIEVEMENT_OUTCOME |
The action taken as a result of the achievement. Example: MEP = Merit Points |
Assessment
The following diagram shows how assessment (green) and non-assessment (red) objects relate to each other.
GET Aspects
Curl example
curl "https://api.wonde.com/v1.0/schools/{school_id}/assessment/aspects"
-H "Authorization: Bearer API_ACCESS_TOKEN"
curl "https://api.wonde.com/v1.0/schools/{school_id}/assessment/aspects/{aspect_id}"
-H "Authorization: Bearer API_ACCESS_TOKEN"
Response Body
{
"data": [
{
"id": "A729555890",
"mis_id": 25,
"name": "AQA 2600H Forecast Grade F",
"type": "Grade",
"description": "Forecast Grade for AQA 2600H Seg Science:Single Award (H)",
"min_value": null,
"max_value": null,
"created_at": {
"date": "2016-07-05 21:09:39.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"updated_at": {
"date": "2016-07-05 21:09:39.000000",
"timezone_type": 3,
"timezone": "UTC"
}
}
],
"meta": {
"pagination": {
"next": "https://api.wonde.com/v1.0/schools/{school_id}/assessment/aspects?page=2",
"previous": null,
"more": true,
"per_page": 50,
"current_page": 1
},
"includes": [
"templates"
"results"
]
}
}
Url parameters
Name | type | Description |
---|---|---|
aspect_ids | string | Only return aspects included in comma separated list of ids. |
updated_after | date | Return rows modified after date. |
updated_before | date | Return rows modified before date. |
per_page | int | Amount of rows to return. |
include | string | Comma separated list of objects to include. |
Related objects
Name | Relationship |
---|---|
templates | many |
results | many |
GET Results
Curl example
curl "https://api.wonde.com/v1.0/schools/{school_id}/assessment/results"
-H "Authorization: Bearer API_ACCESS_TOKEN"
curl "https://api.wonde.com/v1.0/schools/{school_id}/assessment/results/{result_id}"
-H "Authorization: Bearer API_ACCESS_TOKEN"
Response Body
{
"data": [
{
"id": "A2059689699",
"mis_id": 359965,
"result": "B",
"grade_value": "15.00",
"student": "A1548440551",
"aspect": "A988848411",
"resultset": "A2103671698",
"collection_date": {
"date": "2009-06-29 00:00:00.000000",
"timezone_type": 3,
"timezone": "Europe/London"
},
"result_date": {
"date": "2009-06-29 00:00:00.000000",
"timezone_type": 3,
"timezone": "Europe/London"
},
"created_at": {
"date": "2016-07-06 14:52:19.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"updated_at": {
"date": "2016-07-06 14:52:19.000000",
"timezone_type": 3,
"timezone": "UTC"
}
}
],
"meta": {
"pagination": {
"next": "https://api.wonde.com/v1.0/schools/{school_id}/assessment/results?page=2",
"previous": null,
"more": true,
"per_page": 50,
"current_page": 1
},
"includes": [
"aspect",
"resultset",
"student",
"student_leaver"
]
}
}
Url parameters
Name | type | Description |
---|---|---|
updated_after | date | Return rows modified after date. |
updated_before | date | Return rows modified before date. |
per_page | int | Amount of rows to return. |
include | string | Comma separated list of objects to include. |
has_student | string | Return rows that belong to active students. |
has_student_leaver | string | Return rows that belong to student leavers. Not enabled by default, please contact [email protected] to check availability for your schools. |
Related objects
Name | Relationship |
---|---|
aspect | many |
resultset | many |
student | many |
student leaver | many |
GET Result Sets
Curl example
curl "https://api.wonde.com/v1.0/schools/{school_id}/assessment/resultsets"
-H "Authorization: Bearer API_ACCESS_TOKEN"
curl "https://api.wonde.com/v1.0/schools/{school_id}/assessment/resultsets/{result_set_id}"
-H "Authorization: Bearer API_ACCESS_TOKEN"
Response Body
{
"data": [
{
"id": "A1843063594",
"mis_id": 56,
"name": "Year 11",
"module": "Assessment Services",
"source": "User-defined",
"supplier": null,
"external_id": "56",
"locked": false,
"start_date": null,
"end_date": null,
"created_at": {
"date": "2016-07-06 14:32:40.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"updated_at": {
"date": "2016-07-06 15:22:35.000000",
"timezone_type": 3,
"timezone": "UTC"
}
}
],
"meta": {
"pagination": {
"next": "https://api.wonde.com/v1.0/schools/{school_id}/assessment/resultsets?page=2",
"previous": null,
"more": true,
"per_page": 50,
"current_page": 1
},
"includes": [
"templates"
"results"
]
}
}
Url parameters
Name | type | Description |
---|---|---|
updated_after | date | Return rows modified after date. |
updated_before | date | Return rows modified before date. |
per_page | int | Amount of rows to return. |
include | string | Comma separated list of objects to include. |
Related objects
Name | Relationship |
---|---|
templates | many |
results | many |
GET Templates
Curl example
curl "https://api.wonde.com/v1.0/schools/{school_id}/assessment/templates"
-H "Authorization: Bearer API_ACCESS_TOKEN"
curl "https://api.wonde.com/v1.0/schools/{school_id}/assessment/templates/{template_id}"
-H "Authorization: Bearer API_ACCESS_TOKEN"
Response Body
{
"data": [
{
"id": "A2075337403",
"mis_id": 1146,
"name": "GCSE Mock Exam Grades",
"description": null,
"source": "User-defined",
"external_id": "742",
"created_at": {
"date": "2016-07-05 21:10:05.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"updated_at": {
"date": "2016-07-05 21:10:05.000000",
"timezone_type": 3,
"timezone": "UTC"
}
}
],
"meta": {
"pagination": {
"next": "https://api.wonde.com/v1.0/schools/{school_id}/assessment/templates?page=2",
"previous": null,
"more": true,
"per_page": 50,
"current_page": 1
},
"includes": [
"aspects",
"marksheets",
"resultsets"
]
}
}
Url parameters
Name | type | Description |
---|---|---|
updated_after | date | Return rows modified after date. |
updated_before | date | Return rows modified before date. |
per_page | int | Amount of rows to return. |
include | string | Comma separated list of objects to include. |
Related objects
Name | Relationship |
---|---|
aspects | many |
resultsets | many |
marksheets | many |
GET Mark Sheets
Curl example
curl "https://api.wonde.com/v1.0/schools/{school_id}/assessment/marksheets"
-H "Authorization: Bearer API_ACCESS_TOKEN"
curl "https://api.wonde.com/v1.0/schools/{school_id}/assessment/marksheets/{mark_sheet_id}"
-H "Authorization: Bearer API_ACCESS_TOKEN"
Response Body
{
"data": [
{
"id": "A1749191433",
"mis_id": 7756,
"name": "* Science Year 7 Attainment Data Entry:Science (KStg3)",
"group": "A617633051",
"template": "A459873099",
"class": null
},
{
"id": "A1849765024",
"mis_id": 7757,
"name": "* Science Year 7 Attainment Data Entry:7F/Sc",
"group": null,
"template": "A459873099",
"class": "A1883262536"
}
],
"meta": {
"pagination": {
"next": "https://api.wonde.com/v1.0/schools/{school_id}/assessment/marksheets?page=2",
"previous": null,
"more": true,
"per_page": 50,
"current_page": 1
},
"includes": [
"template",
"group",
"class"
]
}
}
Url parameters
Name | type | Description |
---|---|---|
updated_after | date | Return rows modified after date. |
updated_before | date | Return rows modified before date. |
per_page | int | Amount of rows to return. |
include | string | Comma separated list of objects to include. |
Related objects
Name | Relationship |
---|---|
template | many |
group | many |
class | many |
Aspect Object
Response Body
{
"id": "A729555890",
"mis_id": 25,
"name": "AQA 2600H Forecast Grade F",
"type": "Grade",
"description": "Forecast Grade for AQA 2600H Seg Science:Single Award (H)",
"min_value": null,
"max_value": null,
"created_at": {
"date": "2016-07-05 21:09:39.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"updated_at": {
"date": "2016-07-05 21:09:39.000000",
"timezone_type": 3,
"timezone": "UTC"
}
}
You need the assessment read permission to view this object.
Name | Type | Description |
---|---|---|
id | string | The ID of the object. |
mis_id | string | The ID in the MIS. |
name | string | Aspect name. |
description | string nullable |
Aspect description. |
type | string nullable |
|
min_value | date nullable |
|
max_value | date nullable |
|
created_at | datetime | When the record was added to Wonde. |
updated_at | datetime | When the record was last updated on Wonde. |
Result Object
Response Body
{
"id": "A2059689699",
"mis_id": 359965,
"result": "B",
"grade_value": "15.00",
"student": "A1548440551",
"aspect": "A988848411",
"resultset": "A2103671698",
"collection_date": {
"date": "2009-06-29 00:00:00.000000",
"timezone_type": 3,
"timezone": "Europe/London"
},
"result_date": {
"date": "2009-06-29 00:00:00.000000",
"timezone_type": 3,
"timezone": "Europe/London"
},
"created_at": {
"date": "2016-07-06 14:52:19.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"updated_at": {
"date": "2016-07-06 14:52:19.000000",
"timezone_type": 3,
"timezone": "UTC"
}
}
You need the assessment read permission to view this object.
Name | Type | Description |
---|---|---|
id | string | The ID of the object. |
mis_id | string | The ID in the MIS. |
result | string | The result value. |
grade_value | string | The grade value for this result. |
student | string object |
Student's ID or student object. |
aspect | string object |
Aspect's ID or aspect object. |
resultset | string object nullable |
Result set's ID or result set object. |
collection_date | date nullable |
When the result was collected. |
result_date | date nullable |
The date the of the result. |
created_at | datetime | When the record was added to Wonde. |
updated_at | datetime | When the record was last updated on Wonde. |
Result Set Object
Response Body
{
"id": "A1843063594",
"mis_id": 56,
"name": "Year 11",
"module": "Assessment Services",
"source": "User-defined",
"supplier": null,
"external_id": "56",
"locked": false,
"start_date": null,
"end_date": null,
"created_at": {
"date": "2016-07-06 14:32:40.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"updated_at": {
"date": "2016-07-06 15:22:35.000000",
"timezone_type": 3,
"timezone": "UTC"
}
}
You need the assessment read permission to view this object.
Name | Type | Description |
---|---|---|
id | string | The ID of the object. |
mis_id | string | The ID in the MIS. |
name | string | Result set name. |
module | string nullable |
|
source | string nullable |
|
supplier | string nullable |
|
external_id | string nullable |
|
locked | boolean nullable |
|
start_date | datetime nullable |
|
end_date | datetime nullable |
|
created_at | datetime | When the record was added to Wonde. |
updated_at | datetime | When the record was last updated on Wonde. |
Template Object
Response Body
{
"id": "A2075337403",
"mis_id": 1146,
"name": "GCSE Mock Exam Grades",
"description": null,
"source": "User-defined",
"external_id": "742",
"created_at": {
"date": "2016-07-05 21:10:05.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"updated_at": {
"date": "2016-07-05 21:10:05.000000",
"timezone_type": 3,
"timezone": "UTC"
}
}
You need the assessment read permission to view this object.
Name | Type | Description |
---|---|---|
id | string | The ID of the object. |
mis_id | string | The ID in the MIS. |
name | string | Template name. |
description | string nullable |
Template description. |
source | string nullable |
|
external_id | string nullable |
|
created_at | datetime | When the record was added to Wonde. |
updated_at | datetime | When the record was last updated on Wonde. |
Mark Sheet Object
Response Body
{
"id": "A1849765024",
"mis_id": 7757,
"name": "* Science Year 7 Attainment Data Entry:7F/Sc",
"group": null,
"template": "A459873099",
"class": "A1883262536"
}
You need the assessment read permission to view this object.
Name | Type | Description |
---|---|---|
id | string | The ID of the object. |
mis_id | string | The ID in the MIS. |
name | string | The name of the mark sheet. |
group | string object nullable |
The group this mark sheet is attached to. |
class | string object nullable |
The class this mark sheet is attached to. |
template | string object nullable |
The template this mark sheet is attached to. |
Attendance
GET Session Attendance
Curl example
curl "https://api.wonde.com/v1.0/schools/{school_id}/attendance/session"
-H "Authorization: Bearer API_ACCESS_TOKEN"
Response Body
{
"data": [
{
"id": "A475458937",
"date": {
"date": "2015-10-29 00:00:00.000000",
"timezone_type": 3,
"timezone": "Europe/London"
},
"session": "PM",
"comment": null,
"employee": null,
"attendance_code": "A930902628",
"student": "A1307078120"
},
{
"id": "A106056174",
"date": {
"date": "2015-10-29 00:00:00.000000",
"timezone_type": 3,
"timezone": "Europe/London"
},
"session": "PM",
"comment": "Student was ill",
"employee": null,
"attendance_code": "A930902628",
"student": "A938854481"
}
],
"meta": {
"pagination": {
"next": "https://api.wonde.com/v1.0/schools/{school_id}/attendance/session/?page=2",
"previous": null,
"more": true,
"per_page": "2",
"current_page": 1
},
"includes": []
}
}
Url parameters
Name | type | Description |
---|---|---|
attendance_date_before | date | Return entries before date. |
attendance_date_after | date | Return entries after date. |
student | id | Return rows for a student. |
updated_after | date | Return rows modified after date. |
updated_before | date | Return rows modified before date. |
per_page | int | Amount of rows to return. |
POST Session Attendance
Curl example
curl -X POST -H "Authorization: Bearer API_ACCESS_TOKEN" -H "Content-Type: application/json" -d '{
"attendance": [
{
"student_id": "A1849765024",
"attendance_code_id": "A1329183376",
"date": "2015-12-09",
"session": "AM",
"comment": "Student was late"
}
]}' "https://api.wonde.com/v1.0/schools/{school_id}/attendance/session"
When writing back attendance to a school’s MIS there are a few points you need to take into account:
- You will need attendance.session.write Wonde permission.
- You will need to inform the school that the data you are writing back will overwrite any marks in the MIS platform.
- Wonde will validate the request. If validation fails the response will contain the validation errors.
- If the request passes validation, Wonde will return a writeback ID. This ID can be used to check the status of a writeback.
- If you setup a webhook notification, you will receive a POST request when the status of the writeback changes.
- You should refer to the school attendance code endpoint to ensure a valid attendance code is being used.
- SIMS does not allow writebacks using the F, # or Z attendance marks.
- Minutes late must be between 0 and 255.
- Guest pupils are unable to be written back into SIMS.
Request body
Request Body
{
"attendance": [
{
"student_id": "A960618364",
"date": "2015-12-14",
"session": "AM",
"attendance_code_id": "A1329183376"
},
{
"student_id": "A960618364",
"date": "2015-12-14",
"session": "PM",
"attendance_code_id": "A1161584171"
}
]
}
To change attendance marks, send a JSON encoded
POST request to /v1.0/schools/{school_id}/attendance/session
.
An example of the request body is provided on the right.
The attribute values that must be set successfully to modify attendance marks are:
Name | type | Required | Description |
---|---|---|---|
student_id | string | Yes | The Wonde ID for the student. |
date | string | Yes | The attendance mark’s date. |
session | string | Yes | The attendance mark’s session. (AM or PM). |
attendance_code_id | string | Yes | The Wonde ID for the attendance code or subcode. |
comment | string nullable |
No | Text comment. Emoji characters are not currently supported for this attribute. |
minutes_late | number | No | Minutes the student was late for registration. |
employee_id | string | No | The Wonde ID for the employee. (This is required for Bromcom, Department of Education Western Australia and SchoolBase). |
Response body
Response Body
{
"writeback_id": "A18002453"
}
If your request fails validation the response will contain the validation errors. If your request passes validation you will receive a writeback_id which can be used to check the status of the writeback.
GET Session Leavers Attendance
Curl example
curl "https://api.wonde.com/v1.0/schools/{school_id}/attendance-leavers/session"
-H "Authorization: Bearer API_ACCESS_TOKEN"
Response Body
{
"data": [
{
"id": "A475458937",
"date": {
"date": "2015-10-29 00:00:00.000000",
"timezone_type": 3,
"timezone": "Europe/London"
},
"session": "PM",
"comment": null,
"employee": null,
"attendance_code": "A930902628",
"student": "A1307078120"
},
{
"id": "A106056174",
"date": {
"date": "2015-10-29 00:00:00.000000",
"timezone_type": 3,
"timezone": "Europe/London"
},
"session": "PM",
"comment": "Student was ill",
"employee": null,
"attendance_code": "A930902628",
"student": "A938854481"
}
],
"meta": {
"pagination": {
"next": "https://api.wonde.com/v1.0/schools/{school_id}/attendance-leavers/session/?page=2",
"previous": null,
"more": true,
"per_page": "2",
"current_page": 1
},
"includes": []
}
}
Url parameters
Name | type | Description |
---|---|---|
attendance_date_before | date | Return entries before date. |
attendance_date_after | date | Return entries after date. |
student | id | Return rows for a student. |
updated_after | date | Return rows modified after date. |
updated_before | date | Return rows modified before date. |
per_page | int | Amount of rows to return. |
Session Attendance Object
Response Body
{
"id": "A106056174",
"date": {
"date": "2015-10-29 00:00:00.000000",
"timezone_type": 3,
"timezone": "Europe/London"
},
"session": "PM",
"employee": null,
"attendance_code": "A930902628",
"student": "A938854481"
}
You need the attendance read permission to view this object.
Name | Type | Description |
---|---|---|
id | string | The ID of the object. |
date | date | The date of the attendance mark. |
comment | string nullable |
Short text note. |
session | string | Possible values:
|
employee | string nullable |
The ID of the employee that entered the mark. |
attendance_code | string | The ID of the mark. See attendance codes. |
student | string | The student the mark belongs to. |
GET Lesson Attendance
Curl example
curl "https://api.wonde.com/v1.0/schools/{school_id}/attendance/lesson"
-H "Authorization: Bearer API_ACCESS_TOKEN"
Response Body
{
"data": [
{
"id": "A1964735203",
"date": {
"date": "2016-01-15 00:00:00.000000",
"timezone_type": 3,
"timezone": "Europe\/London"
},
"period_instance_id": 40735,
"comment": null,
"attendance_code": "A1329183376",
"student": "A1329183376"
},
{
"id": "A2133121352",
"date": {
"date": "2016-01-15 00:00:00.000000",
"timezone_type": 3,
"timezone": "Europe\/London"
},
"period_instance_id": 40734,
"comment": "Went home ill",
"attendance_code": "A1329183376",
"student": "A1329183376"
}
],
"meta": {
"pagination": {
"next": "https://api.wonde.com/v1.0/schools/A1329183376/attendance/lesson?page=2",
"previous": null,
"more": true,
"per_page": "2",
"current_page": 1
}
}
}
Url parameters
Name | type | Description |
---|---|---|
attendance_date_before | date | Return entries before date. |
attendance_date_after | date | Return entries after date. |
student | id | Return rows for a student. |
updated_after | date | Return rows modified after date. |
updated_before | date | Return rows modified before date. |
per_page | int | Amount of rows to return. |
POST Lesson Attendance
Curl example
curl -X POST -H "Authorization: Bearer API_ACCESS_TOKEN" -H "Content-Type: application/json" -d '{
"attendance": [
{
"student_id": "A1905879176",
"lesson_id": "A1052845378",
"attendance_code_id": "A1329183376"
}
]}' "https://api.wonde.com/v1.0/schools/{school_id}/attendance/lesson"
When writing back attendance to a school’s MIS there are a few points you need to take into account:
- You will need attendance.session.write Wonde permission.
- You will need to inform the school that the data you are writing back will overwrite any marks in the MIS platform.
- Wonde will validate the request. If validation fails the response will contain the validation errors.
- If the request passes validation, Wonde will return a writeback id. This ID can be used to check the status of a writeback.
- If you setup a webhook notification, you will receive a POST request when the status of the writeback changes.
- You should refer to the school attendance code endpoint to ensure a valid attendance code is being used.
- SIMS does not allow writebacks using the F, # or Z attendance marks.
- Guest pupils are unable to be written back into SIMS.
Request body
Request Body
{
"attendance": [
{
"student_id": "A1905879176",
"lesson_id": "A1052845378",
"attendance_code_id": "A1329183376"
},
{
"student_id": "A1905879176",
"lesson_id": "A312724695",
"attendance_code_id": "A1964735203"
}
]
}
To change attendance marks, send a JSON encoded
POST request to /v1.0/schools/{school_id}/attendance/lesson
.
An example of the request body is provided on the right.
The attribute values that must be set successfully to modify attendance marks are:
Name | type | Required | Description |
---|---|---|---|
student_id | string | Yes | The Wonde ID for the student. |
lesson_id | string | Yes | The Wonde ID for the lesson. |
attendance_code_id | string | Yes | The Wonde ID for the attendance code. |
comment | string nullable |
No | Text comment. |
minutes_late | number | No | Minutes the student was late for registration. |
Response body
Response Body
{
"writeback_id": "A18002453"
}
If your request fails validation the response will contain the validation errors. If your request passes validation you will receive a writeback_id which can be used to check the status of the writeback.
Lesson Attendance Object
Response Body
{
"id": "A1964735203",
"date": {
"date": "2016-01-15 00:00:00.000000",
"timezone_type": 3,
"timezone": "Europe\/London"
},
"period_instance_id": 40735,
"comment": null,
"attendance_code": "A1329183376",
"student": "A1329183376"
}
You need the attendance read permission to view this object.
Name | Type | Description |
---|---|---|
id | string | The ID of the object. |
date | date | The date of the attendance mark. |
period_instance_id | int nullable |
All lessons happening during the same period have the same period_instance_id. This value can be used to match lessons and attendance as SIMS records a mark for a period instance not a lesson instance. |
comment | string nullable |
Short text note. |
attendance_code | string | The ID of the mark. See attendance codes. |
student | string | The student the mark belongs to. |
Attendance Codes
GET Attendance Codes (DfE)
Curl example
curl "https://api.wonde.com/v1.0/attendance-codes"
-H "Authorization: Bearer API_ACCESS_TOKEN"
Response Body
{
"data": [
{
"id": "A1329183376",
"code": "/",
"description": "Present (AM)",
"type": "PRESENT",
"parent_code": null
},
{
"id": "A1529934786",
"code": "B",
"description": "Educated off site",
"type": "PRESENT",
"parent_code": null
}
]
}
GET Attendance Codes
Some schools, particularly international schools, may use their own Attendance Codes rather than the DfE dictated list.
If the school does not have custom Attendance Codes this endpoint will return DfE Attendance Codes.
Curl example
curl "https://api.wonde.com/v1.0/schools/{school_id}/attendance-codes"
-H "Authorization: Bearer API_ACCESS_TOKEN"
Response Body
{
"data": [
{
"id": "A1109295446",
"code":"S",
"description": "Staying home for other reasons",
"type": "AUTHORISED",
"parent_code": "X"
},
{
"id": "A1478304481 ",
"code": "UA",
"description": "Unauthorised absence",
"type": "UNAUTHORISED",
"parent_code": "X"
}
]
}
Attendance Code Object
Response Body
{
"id": "A1529934786",
"code": "B",
"description": "Educated off site",
"type": "PRESENT",
"parent_code": null
}
Name | Type | Description |
---|---|---|
id | string | The ID of the object. |
code | string | |
description | string | |
type | string |
Possible values:
|
parent_code | string nullable |
Present if the code maps to a preset defined by local authority |
Attendance Summaries
GET Attendance Summaries
Curl example
curl "https://api.wonde.com/v1.0/schools/{school_id}/attendance-summaries"
-H "Authorization: Bearer API_ACCESS_TOKEN"
curl "https://api.wonde.com/v1.0/schools/{school_id}/attendance-summaries/{summary_id}"
-H "Authorization: Bearer API_ACCESS_TOKEN"
Response Body
{
"data": [
{
"id": "A1329183376",
"student_id": "A1329183376",
"authorised_absences": 0,
"unauthorized_absences": 0,
"unexplained_absences": 0,
"late_before_registration": 0,
"late_after_registration": 0,
"possible_marks": 74,
"missing_marks": 0,
"attendance_not_required": 42,
"present": 74,
"approved_education_activity": 0,
"created_at": {
"date": "2015-10-29 10:32:22.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"updated_at": {
"date": "2015-10-29 10:32:22.000000",
"timezone_type": 3,
"timezone": "UTC"
}
},
{
"id": "A1161584171",
"student_id": "A1161584171",
"authorised_absences": 10,
"unauthorized_absences": 0,
"unexplained_absences": 0,
"late_before_registration": 0,
"late_after_registration": 0,
"possible_marks": 74,
"missing_marks": 0,
"attendance_not_required": 42,
"present": 64,
"approved_education_activity": 0,
"created_at": {
"date": "2015-10-29 10:32:22.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"updated_at": {
"date": "2015-10-29 10:32:22.000000",
"timezone_type": 3,
"timezone": "UTC"
}
}
],
"meta": {
"pagination": {
"next": "https://api.wonde.com/v1.0/schools/{school_id}/attendance-summaries/?page=2",
"previous": null,
"more": true,
"per_page": "2",
"current_page": 1
},
"includes": [
"student"
]
}
}
Url parameters
Name | type | Description |
---|---|---|
updated_after | date | Return rows modified after date. |
updated_before | date | Return rows modified before date. |
per_page | int | Amount of rows to return. |
include | string | Comma separated list of objects to include. |
Related objects
Name | Relationship |
---|---|
student | one |
Attendance Summary Object
Response Body
{
"id": "A1161584171",
"student_id": "A1161584171",
"authorised_absences": 10,
"unauthorized_absences": 0,
"unexplained_absences": 0,
"late_before_registration": 0,
"late_after_registration": 0,
"possible_marks": 74,
"missing_marks": 0,
"attendance_not_required": 42,
"present": 64,
"approved_education_activity": 0,
"attendance_codes": {
"\/": 32,
"\\": 32,
"#": 0,
"B": 0,
"C": 0,
"D": 0,
"E": 0,
"F": 0,
"G": 0,
"H": 0,
"I": 10,
"J": 0,
"L": 0,
"M": 0,
"N": 0,
"O": 0,
"P": 0,
"R": 0,
"S": 0,
"T": 0,
"U": 0,
"V": 0,
"W": 0,
"X": 0,
"Y": 0,
"Z": 0,
"-": 0
},
"created_at": {
"date": "2015-10-29 10:32:22.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"updated_at": {
"date": "2015-10-29 10:32:22.000000",
"timezone_type": 3,
"timezone": "UTC"
}
}
You need the attendance read permission to view this object.
Name | Type | Description |
---|---|---|
id | string | The ID of the object. |
student_id | string | The student’s ID in the MIS. |
authorised_absences | integer | The number of authorised absences. |
unauthorized_absences | integer | The number of unauthorised absences. |
unexplained_absences | integer | The number of unexplained absences. |
late_before_registration | integer | The number of late before registrations marks. |
late_after_registration | datetime | The number of late after registrations marks. |
possible_marks | integer nullable |
The number of possible marks. |
missing_marks | integer nullable |
The number of missing marks. |
attendance_not_required | integer | The number of attendance not required marks. |
present | integer | The number of present marks. |
approved_education_activity | integer | The number of approved education activity marks. |
attendance_codes | object | An object where a key is the attendance code and the value is the number of occurrences. |
created_at | datetime | When the record was added to Wonde. |
updated_at | datetime | When the record was last updated on Wonde. |
Behaviours
GET Behaviours
Curl example
curl "https://api.wonde.com/v1.0/schools/{school_id}/behaviours"
-H "Authorization: Bearer API_ACCESS_TOKEN"
curl "https://api.wonde.com/v1.0/schools/{school_id}/behaviours/{behaviour_id}"
-H "Authorization: Bearer API_ACCESS_TOKEN"
Response Body
{
"data": [
{
"id": "A1329183376",
"mis_id": "263",
"type": "Homework Issue",
"location": "Science",
"subject": "Science",
"class": "7A/Science",
"status": "Resolved",
"action": "Lunchtime Detention",
"points": 1,
"total_points": 10,
"comment": "Despite previous warnings, one of five students who still have significant homework from two weeks ago still outstanding.",
"parents_notified": false,
"bullying_type": "Bullying-Intimidation",
"incident_date": {
"date": "2009-04-29 00:00:00.000000",
"timezone_type": 3,
"timezone": "Europe/London"
},
"action_date": {
"date": "2009-05-01 00:00:00.000000",
"timezone_type": 3,
"timezone": "Europe/London"
},
"recorded_date": {
"date": "2009-04-29 00:00:00.000000",
"timezone_type": 3,
"timezone": "Europe/London"
},
"created_at": {
"date": "2016-03-15 11:08:55.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"updated_at": {
"date": "2016-03-15 11:08:55.000000",
"timezone_type": 3,
"timezone": "UTC"
}
},
{
"id": "A1161584171",
"mis_id": "264",
"type": "Disruptive Behaviour in Class",
"location": "Art",
"subject": "Art",
"class": "7A/Art",
"status": "Resolved",
"action": "Written Punishment",
"points": 1,
"comment": "Repeatedly off task and talking in class.",
"parents_notified": false,
"bullying_type": "Bullying-Intimidation",
"incident_date": {
"date": "2009-05-06 00:00:00.000000",
"timezone_type": 3,
"timezone": "Europe/London"
},
"action_date": {
"date": "2009-05-06 00:00:00.000000",
"timezone_type": 3,
"timezone": "Europe/London"
},
"recorded_date": {
"date": "2009-05-06 00:00:00.000000",
"timezone_type": 3,
"timezone": "Europe/London"
},
"created_at": {
"date": "2016-03-15 11:08:55.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"updated_at": {
"date": "2016-03-15 11:08:55.000000",
"timezone_type": 3,
"timezone": "UTC"
}
}
],
"meta": {
"pagination": {
"next": "https://api.wonde.com/v1.0/schools/A1329183376/behaviours?page=2",
"previous": null,
"more": true,
"per_page": 50,
"current_page": 1
},
"includes": [
"students",
"employees"
]
}
}
Url parameters
Name | type | Description |
---|---|---|
incident_date_before | date | Return entries before date. |
incident_date_after | date | Return entries after date. |
updated_after | date | Return rows modified after date. |
updated_before | date | Return rows modified before date. |
per_page | int | Amount of rows to return. |
include | string | Comma separated list of objects to include. |
has_students | string | Only return records that have students attached. |
has_employees | string | Only return records that have employees attached. |
mis_id | string int |
Return records with the provided MIS_ID. |
Related objects
Name | Relationship |
---|---|
students | many |
employees | many |
POST Behaviour
Curl example
curl -X POST -H "Authorization: Bearer API_ACCESS_TOKEN" -H "Content-Type: application/json" -d '{
"students": [
{
"student_id": "A1849765024",
"role": "AG",
"action": "COOL",
"action_date": "2016-04-01",
"points": 200
},
{
"student_id": "A1682292795",
"role": "TA",
"points": 0
}
],
"employee_id": "A1329183376",
"lesson_id": "A6357932393",
"date": "2016-03-31",
"status": "REV2",
"type": "BULL",
"bullying_type": "B_INT",
"comment": "Bulling incident",
"activity_type": "RE",
"location": "CORR",
"time": "LUN"
}' "https://api.wonde.com/v1.0/schools/{school_id}/behaviours"
To create a behaviour record, send a JSON encoded
POST request to /v1.0/schools/{school_id}/behaviours
.
- You will need the behaviour.write Wonde permission.
Request body
Request Body
{
"students": [
{
"student_id": "A1849765024",
"role": "AG",
"action": "COOL",
"action_date": "2016-04-01",
"points": 200
},
{
"student_id": "A1682292795",
"role": "TA",
"points": 0
}
],
"employee_id": "A1329183376",
"lesson_id": "A6357932393",
"date": "2016-03-31",
"status": "REV2",
"type": "BULL",
"bullying_type": "B_INT",
"comment": "Bulling incident",
"activity_type": "RE",
"location": "CORR",
"time": "LUN"
}
An example of the request body is provided on the right.
The attribute values that must be set successfully to create behaviour records are:
Name | type | Required | Description |
---|---|---|---|
students | array | Yes | |
students > student_id | string | Yes | The Wonde ID of a student. |
students > role | string | no | The code or ID of the role the student took in the incident. See behaviour attributes BEHAVIOUR_ROLE. |
students > action | string | No | The code or ID of the action taken in response to the incident. See behaviour attributes BEHAVIOUR_OUTCOME. |
students > action_date | string | No | The date the associated to the action. |
students > points | integer | Yes | The amount of points associated to the incident. Points indicate the severity of the event. |
employee_id | string | Yes | The Wonde ID of the employee that recorded the incident. |
lesson_id | string | No | The Wonde ID of the lesson that the incident occured in. |
date | string | Yes | The date of the incident. |
status | string | Yes | The code or ID of the status. See behaviour attributes EVENT_STATUS. |
type | string | Yes | The code or ID of the behaviour type. See behaviour attributes BEHAVIOUR_TYPE. |
bullying_type | string | No | The code or ID of the bullying type. See behaviour attributes BULLYING_MODE. |
comment | string | No | Short text note. |
activity_type | string | No | The code or ID of the activity. See behaviour attributes BEHAVIOUR_ACTIVITY. |
location | string | No | The code or ID of the location. See behaviour attributes EVENT_LOCATION. |
time | string | No | The code or ID of the time. See behaviour attributes EVENT_TIME. |
PUT Behaviour
Curl example
curl -X PUT -H "Authorization: Bearer API_ACCESS_TOKEN" -H "Content-Type: application/json" -d '{
"students": [
{
"student_id": "A1849765024",
"role": "AG",
"action": "COOL",
"action_date": "2016-04-01",
"points": 200
},
{
"student_id": "A1682292795",
"role": "TA",
"points": 0
}
],
"employee_id": "A1329183376",
"lesson_id": "A6357932393",
"date": "2016-03-31",
"status": "REV2",
"type": "BULL",
"bullying_type": "B_INT",
"comment": "Bulling incident",
"activity_type": "RE",
"location": "CORR",
"time": "LUN"
}' "https://api.wonde.com/v1.0/schools/{school_id}/behaviours/{behaviour_id}"
To edit a behaviour record, send a JSON encoded
PUT request to /v1.0/schools/{school_id}/behaviours/{behaviour_id}
.
- You will need the behaviour.write Wonde permission.
Request body
Request Body
{
"students": [
{
"student_id": "A1849765024",
"role": "AG",
"action": "COOL",
"action_date": "2016-04-01",
"points": 200
},
{
"student_id": "A1682292795",
"role": "TA",
"points": 0
}
],
"employee_id": "A1329183376",
"lesson_id": "A6357932393",
"date": "2016-03-31",
"status": "REV2",
"type": "BULL",
"bullying_type": "B_INT",
"comment": "Bulling incident",
"activity_type": "RE",
"location": "CORR",
"time": "LUN"
}
An example of the request body is provided on the right.
The attribute values that must be set successfully to edit behaviour records are:
Name | type | Required | Description |
---|---|---|---|
students | array | Yes | Note: Bromcom requires a single student to be present in this array. |
students > student_id | string | Yes | The Wonde ID of a student. |
students > role | string | no | The code or ID of the role the student took in the incident. See behaviour attributes BEHAVIOUR_ROLE. |
students > action | string | No | The code or ID of the action taken in response to the incident. See behaviour attributes BEHAVIOUR_OUTCOME. |
students > action_date | string | No | The date the associated to the action. |
students > points | integer | Yes | The amount of points associated to the incident. Points indicate the severity of the event. |
employee_id | string | Yes | The Wonde ID of the employee that recorded the incident. |
lesson_id | string | No | The Wonde ID of the lesson that the incident occured in. |
date | string | Yes | The date of the incident. |
status | string | Yes | The code or ID of the status. See behaviour attributes EVENT_STATUS. |
type | string | Yes | The code or ID of the behaviour type. See behaviour attributes BEHAVIOUR_TYPE. |
bullying_type | string | No | The code or ID of the bullying type. See behaviour attributes BULLYING_MODE. |
comment | string | No | Short text note. |
activity_type | string | No | The code or ID of the activity. See behaviour attributes BEHAVIOUR_ACTIVITY. |
location | string | No | The code or ID of the location. See behaviour attributes EVENT_LOCATION. |
time | string | No | The code or ID of the time. See behaviour attributes EVENT_TIME. |
DELETE Behaviour
Curl example
curl -X "DELETE" "https://api.wonde.com/v1.0/schools/{school_id}/behaviours/{behaviour_id}"
-H "Authorization: Bearer API_ACCESS_TOKEN"
You need the behaviour delete permission to perform this action.
To delete a behaviour record just send a delete request to behaviour item's url.
Behaviour Object
Response Body
{
"id": "A1329183376",
"mis_id": "263",
"type": "Homework Issue",
"location": "Science",
"subject": "Science",
"class": "7A/Science",
"status": "Resolved",
"action": "Lunchtime Detention",
"points": 1,
"total_points": 10,
"comment": "Despite previous warnings, one of five students who still have significant homework from two weeks ago still outstanding.",
"parents_notified": false,
"bullying_type": "Bullying-Intimidation",
"incident_date": {
"date": "2009-04-29 00:00:00.000000",
"timezone_type": 3,
"timezone": "Europe/London"
},
"action_date": {
"date": "2009-05-01 00:00:00.000000",
"timezone_type": 3,
"timezone": "Europe/London"
},
"recorded_date": {
"date": "2009-04-29 00:00:00.000000",
"timezone_type": 3,
"timezone": "Europe/London"
},
"created_at": {
"date": "2016-03-15 11:08:55.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"updated_at": {
"date": "2016-03-15 11:08:55.000000",
"timezone_type": 3,
"timezone": "UTC"
}
}
You need the behaviour read permission to view this object.
Name | Type | Description |
---|---|---|
id | string | The ID of the object. |
mis_id | string | The ID in the MIS. |
type | string nullable |
The type of behaviour incident. See behaviour attributes BEHAVIOUR_TYPE. |
location | string nullable |
The location of the incident. See behaviour attributes EVENT_LOCATION. |
subject | string nullable |
The subject during which the incident occurred. |
class | string nullable |
The class in which the incident occurred. |
status | string nullable |
The status of the incident. See behaviour attributes EVENT_STATUS. |
action | string nullable |
The action taken in response to the incident. See behaviour attributes BEHAVIOUR_OUTCOME. |
points | integer nullable |
The amount of points associated to the incident. Points indicate the severity of the event. |
total_points | integer nullable |
The total amount of points associated to the incident. |
comment | string nullable |
Short text note. |
parents_notified | boolean nullable |
Boolean indicating if a parent has been notified of the incident. |
bullying_type | string nullable |
Bullying type. See behaviour attributes BEHAVIOUR_MODE. |
incident_date | string nullable |
The date the incident took place. |
action_date | datetime nullable |
The date action was taken. |
recorded_date | datetime nullable |
The date the incident was recorded. |
created_at | datetime | When the record was added to Wonde. |
updated_at | datetime | When the record was last updated on Wonde. |
Behaviour Attributes
Curl example
curl "https://api.wonde.com/v1.0/schools/{school_id}/behaviours/attributes"
-H "Authorization: Bearer API_ACCESS_TOKEN"
Response Body
{
"data": [
{
"id": "A587541588",
"mis_id": "26",
"type": "BEHAVIOUR_TYPE",
"code": "BULL",
"active": true,
"points": 50,
"description": "Bullying",
"bullying_type_enabled": true,
"created_at": {
"date": "2016-03-16 15:23:42.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"updated_at": {
"date": "2016-03-24 09:39:11.000000",
"timezone_type": 3,
"timezone": "UTC"
}
},
{
"id": "A1346550315",
"mis_id": "22",
"type": "EVENT_SUBJECT",
"code": "SCI",
"active": true,
"points": null,
"description": "Science",
"bullying_type_enabled": false,
"created_at": {
"date": "2016-03-16 15:23:42.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"updated_at": {
"date": "2016-03-17 15:01:40.000000",
"timezone_type": 3,
"timezone": "UTC"
}
}
],
"meta": {
"pagination": {
"next": "https://api.wonde.com/v1.0/schools/{school_id}/behaviours/attributes?page=2",
"previous": null,
"more": true,
"per_page": 50,
"current_page": 1
}
}
}
You need the behaviour read permission to view this resource.
In SIMS, behaviour records are made from multiple select box values. To make it easy to update behaviour records, we provide the possible options for these select boxes. When updating / creating a behaviour record you can provide the CODE or the ID for the select box value.
It is important that you check the code is valid for a school as missing or disabled codes will not pass Wonde's validation.
Type | Information / Examples |
---|---|
BEHAVIOUR_TYPE |
This is the behaviour category. Some behaviour types will have points associated to them. bullying_type_enabled indicates if a bullying mode is applicable for this behaviour type. See BULLYING_MODE below. Example: BULL = Bullying |
BULLYING_MODE |
This is a sub-category of BEHAVIOUR_TYPE. This is only available for certain behaviour types. Example: PHY = Physical Violence |
BEHAVIOUR_ACTIVITY |
The activity / subject in which the incident took place. Example: ENG = English |
EVENT_TIME |
A named period of time during which the incident took place. Example: LESS1 = Lesson 2 Example: LESS2 = Lesson 2 Example: BSHRS = Before School Hours |
BEHAVIOUR_OUTCOME |
The action taken as a result of the incident. Example: PARL = Letter to Parent/Guardian |
EVENT_STATUS |
The status of the incident. Example: REV3 = Review in 3 weeks Example: FUT = Further Intervention Required |
EVENT_LOCATION |
Where the incident took place. Example: OSG = Outside School Example: SPORT = Gym/Sports Hall/Pool |
BEHAVIOUR_ROLE |
The role a student took in the incident. Example: TA = Target Example: AG = Aggressor |
Classes
GET Classes
Curl example
curl "https://api.wonde.com/v1.0/schools/{school_id}/classes"
-H "Authorization: Bearer API_ACCESS_TOKEN"
curl "https://api.wonde.com/v1.0/schools/{school_id}/classes/{class_id}"
-H "Authorization: Bearer API_ACCESS_TOKEN"
Response Body
{
"data": [
{
"id": "A1329183376",
"mis_id": "8925",
"name": "10A/Ar1",
"code": "10A/Ar1",
"description": "10A/Ar1",
"subject": null,
"alternative": false,
"priority": false,
"academic_year": 2023,
"year_group": "10",
"restored_at": {
"date": "2015-10-29 14:53:59.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"created_at": {
"date": "2015-10-29 14:53:59.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"updated_at": {
"date": "2015-10-29 14:53:59.000000",
"timezone_type": 3,
"timezone": "UTC"
}
},
{
"id": "A1161584171",
"mis_id": "8926",
"name": "10A/Dc1",
"code": "10A/Dc1",
"description": "10A/Dc1",
"subject": null,
"alternative": false,
"priority": true,
"academic_year": null,
"year_group": null,
"restored_at": {
"date": "2015-10-29 14:53:59.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"created_at": {
"date": "2015-10-29 14:53:59.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"updated_at": {
"date": "2015-10-29 14:53:59.000000",
"timezone_type": 3,
"timezone": "UTC"
}
}
],
"meta": {
"pagination": {
"next": "https://api.wonde.com/v1.0/schools/{school_id}/classes/?page=2",
"previous": null,
"more": true,
"per_page": "2",
"current_page": 1
},
"includes": [
"subject",
"students",
"employees",
"lessons",
"lessons.room",
"lessons.period"
]
}
}
Url parameters
Name | type | Description |
---|---|---|
updated_after | date | Return rows modified after date. |
updated_before | date | Return rows modified before date. |
per_page | int | Amount of rows to return. |
include | string | Comma separated list of objects to include. |
has_students | any | Only get classes that have students. |
has_lessons | any | Only get classes that have lessons. |
class_name | String | Return results with the provided class name. |
class_subject | String | Return results with the provided subject id. |
Related objects
Name | Relationship |
---|---|
subject | one |
students | many |
students.contact_details | many > one |
students.education_details | many > one |
students.extended_details | many > one |
students.house | many > one |
students.registration | many > one |
students.year | many > one |
students.boarding | many > one |
students.campus | many > one |
employees | many |
employees.contact_details | many > one |
employees.employment_details | many > one |
employees.extended_details | many > one |
lessons | many |
lessons.room | many > one |
lessons.period | many > one |
Class Object
Response Body
{
"id": "A1329183376",
"mis_id": "8925",
"name": "10A/Ar1",
"code": "10A/Ar1",
"description": "10A/Ar1",
"subject": null,
"alternative": false,
"priority": false,
"academic_year": 2023,
"year_group": "10",
"restored_at": {
"date": "2015-10-29 14:53:59.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"created_at": {
"date": "2015-10-29 14:53:59.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"updated_at": {
"date": "2015-10-29 14:53:59.000000",
"timezone_type": 3,
"timezone": "UTC"
}
}
You need the classes read permission to view this object.
Name | Type | Description |
---|---|---|
id | string | The ID of the object. |
mis_id | string | The ID in the MIS. |
name | string | Class name. |
code | string | Class code. |
description | string nullable |
Class description. |
subject | string object nullable |
The subject for the class. |
alternative | boolean nullable |
The class is an alternative to another class. |
priority | boolean nullable |
The class is a priority to another class. This is supported in Edval and Timetabling Solutions data sync only. |
academic_year | string nullable |
The academic year of the class. This is supported in SIMS, Edumate API and Synergetic data sync only. |
year_group | string nullable |
The year group of the class. This is only supported in SIMS at this time. |
restored_at | datetime | When the Wonde ID was restored from the deletions data |
created_at | datetime | When the record was added to Wonde. |
updated_at | datetime | When the record was last updated on Wonde. |
Contacts
GET Contacts
Curl example
curl "https://api.wonde.com/v1.0/schools/{school_id}/contacts"
-H "Authorization: Bearer API_ACCESS_TOKEN"
curl "https://api.wonde.com/v1.0/schools/{school_id}/contacts/{contact_id}"
-H "Authorization: Bearer API_ACCESS_TOKEN"
Response Body
{
"data": [
{
"id": "A1139736963",
"mis_id": "9920",
"upi": "1e6ac4ab8c7a8514b1faaeb5ad097d0a",
"title": "Mrs",
"initials": "SS",
"surname": "Smith",
"forename": "Sally",
"middle_names": null,
"legal_surname": "Smith",
"legal_forename": "Sally",
"gender": "FEMALE",
"date_of_birth": null,
"restored_at": {
"date": "2015-10-29 14:53:44.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"created_at": {
"date": "2015-10-29 14:53:44.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"updated_at": {
"date": "2015-10-29 14:53:44.000000",
"timezone_type": 3,
"timezone": "UTC"
}
},
{
"id": "A1508091162",
"mis_id": "9921",
"upi": "cc7cad81fb5e2b5a1dee37e03177ce46",
"initials": "TS",
"title": "Mr",
"surname": "Smith",
"forename": "Tom",
"middle_names": null,
"legal_surname": "Smith",
"legal_forename": "Tom",
"gender": "MALE",
"date_of_birth": null,
"restored_at": {
"date": "2015-10-29 14:53:44.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"created_at": {
"date": "2015-10-29 14:53:45.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"updated_at": {
"date": "2015-10-29 14:53:45.000000",
"timezone_type": 3,
"timezone": "UTC"
}
}
],
"meta": {
"pagination": {
"next": "https://api.wonde.com/v1.0/schools/{school_id}/contacts/?page=2",
"previous": null,
"more": true,
"per_page": "2",
"current_page": 1
},
"includes": [
"contact_details",
"students",
"students_pre_admission"
]
}
}
Url parameters
Name | type | Description |
---|---|---|
updated_after | date | Return rows modified after date. |
updated_before | date | Return rows modified before date. |
per_page | int | Amount of rows to return. |
include | string | Comma separated list of objects to include. |
only_mis_ids | string | Filter MIS ids by comma separated list. |
Related objects
Name | Relationship |
---|---|
contact_details | one |
students | many |
students_pre_admission | many |
identifiers | one |
Contact Object
Response Body
{
"id": "A1508091162",
"mis_id": "9921",
"upi": "cc7cad81fb5e2b5a1dee37e03177ce46",
"title": "Mr",
"initials": "ST",
"surname": "Smith",
"forename": "Tom",
"middle_names": null,
"legal_surname": "Smith",
"legal_forename": "Tom",
"gender": "MALE",
"date_of_birth": null,
"restored_at": {
"date": "2015-10-29 14:53:45.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"created_at": {
"date": "2015-10-29 14:53:45.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"updated_at": {
"date": "2015-10-29 14:53:45.000000",
"timezone_type": 3,
"timezone": "UTC"
}
}
You need the contacts read permission to view this object.
Name | Type | Description |
---|---|---|
id | string | The ID of the object. |
mis_id | string | The contact’s ID in the MIS. |
upi | string | Unique Person Identifier - If a person is a contact and an employee they will have the same UPI but different ids. |
title | nullable string |
The contact’s title. |
initials | string nullable |
The contact’s initials. |
surname | string nullable |
The contact’s last name. |
forename | string nullable |
The contact’s first name. |
middle_names | nullable string |
The contact’s middle_names. |
legal_surname | string nullable |
The contact’s legal last name. |
legal_forename | string nullable |
The contact’s legal first name. |
gender | string | The contact’s gender.
|
date_of_birth | date | The contact’s date of birth. |
restored_at | datetime | When the Wonde ID was restored from the deletions data |
created_at | datetime | When the record was added to Wonde. |
updated_at | datetime | When the record was last updated on Wonde. |
Relationship Object
Response Body
{
"relationship": {
"bill_payer":false,
"lives_with_pupil":true,
"email_bills":false,
"copy_bills":false,
"court_order":false,
"pupil_report":false,
"parental_responsibility":true,
"correspondence":true,
"email_notification":false,
"sms_notification":false,
"mail_notification":false,
"push_notification":true,
"in_touch_communication":false,
"priority":1,
"relationship":"Father",
"emergency_contact":false,
"portal_access":true
}
}
You need the contacts read permission to view this object.
This object is included in the response when you use the contacts endpoint with the students include or the students endpoint with the contacts include.
Name | Type | Description |
---|---|---|
bill_payer | boolean nullable |
If the contact is responsible for paying bills. |
lives_with_pupil | boolean nullable |
If the contact shares the same address as the student. |
email_bills | boolean nullable |
If the contact accepts bills through email. |
copy_bills | boolean nullable |
If the contact receives copies of the bill. |
court_order | boolean nullable |
If a court order is in place restricting access between the contact and student. |
pupil_report | boolean nullable |
If the contact does not live at the same address as the child, has parental responsibility and they wish to receive reports. |
parental_responsibility | boolean nullable |
If the contact has parental responsibility. |
correspondence | boolean nullable |
If the contact does not live at the same address as the child, has parental responsibility and they wish to receive correspondence. |
email_notification | boolean nullable |
If the contact allows correspondence by email. |
sms_notification | boolean nullable |
If the contact allows correspondence by SMS. |
mail_notification | boolean nullable |
If the contact allows correspondence by mail. |
push_notification | boolean nullable |
If the contact allows correspondence by mail push notification. |
in_touch_communication | boolean nullable |
If the contact uses the SIMS InTouch communication tool. |
priority | integer nullable |
The order in which to contact. |
relationship | string nullable |
The relationship between contact and student. |
emergency_contact | boolean nullable |
If the contact can act as a referral in the event of an emergency. By default, this field is set to false. |
portal_access | boolean nullable |
If the contact is able to do some actions for student e.g. submit absence slip in the portal. By default, this field is set to false or NULL if not supported |
Contact Identifiers Object
Response Body
{
"identifiers": {
"data": {
"barcode": "ADSVASW32131FE",
"active_directory_username": "username"
}
}
}
You need the contact identifiers read permission to view this object.
Name | Type | Description |
---|---|---|
barcode | string nullable |
A barcode used to identify the contact. |
active_directory_username | string nullable |
The active directory username used to identify the contact. |
Contact Details
This object is available under the student, contact & employee endpoints.
Contact Details Object
Response Body
{
"phones": {
"phone": "01632211117",
"primary": "01632211117",
"home": "01632211117",
"work": null,
"mobile": null
},
"emails": {
"email": "[email protected]",
"primary": null,
"home": null,
"work": null
},
"addresses": {
"home": {
"house_number": "1",
"house_name": null,
"apartment": null,
"street": "Lane Street",
"district": "Kingston",
"town": "Cambridge",
"county": null,
"country": "United Kingdom",
"postcode": "CB21 7YD"
"uprn": "100023336956"
},
"work": {
"house_number": "",
"house_name": "Dunroaming",
"apartment": null,
"street": "Lane Road",
"district": "Pietown",
"town": "Cambridge",
"county": null,
"country": "United Kingdom",
"postcode": "CB21 7YA"
},
"postal": {
"house_number": null,
"house_name": null,
"apartment": null,
"street": null,
"district": null,
"town": null,
"county": null,
"country": null,
"postcode": null
}
}
Name | Type | Description |
---|---|---|
phones.phone | string nullable |
|
phones.primary | string nullable |
|
phones.home | string nullable |
|
phones.work | string nullable |
|
phones.mobile | string nullable |
|
emails.email | string nullable |
|
emails.primary | string nullable |
|
emails.home | string nullable |
|
emails.work | string nullable |
|
addresses.home.house_number | string nullable |
|
addresses.home.house_name | string nullable |
|
addresses.home.apartment | string nullable |
|
addresses.home.street | string nullable |
|
addresses.home.district | string nullable |
|
addresses.home.town | string nullable |
|
addresses.home.county | string nullable |
|
addresses.home.country | string nullable |
|
addresses.home.postcode | string nullable |
|
addresses.home.uprn | string nullable |
Unique Property Reference Number (UPRN) |
addresses.work.house_number | string nullable |
|
addresses.work.house_name | string nullable |
|
addresses.work.apartment | string nullable |
|
addresses.work.street | string nullable |
|
addresses.work.district | string nullable |
|
addresses.work.town | string nullable |
|
addresses.work.county | string nullable |
|
addresses.work.country | string nullable |
|
addresses.work.postcode | string nullable |
|
addresses.postal.house_number | string nullable |
|
addresses.postal.house_name | string nullable |
|
addresses.postal.apartment | string nullable |
|
addresses.postal.street | string nullable |
|
addresses.postal.district | string nullable |
|
addresses.postal.town | string nullable |
|
addresses.postal.county | string nullable |
|
addresses.postal.country | string nullable |
|
addresses.postal.postcode | string nullable |
|
salutation | string nullable |
Debtors
GET Debtors
Curl example
curl "https://api.wonde.com/v1.0/schools/{school_id}/debtors"
-H "Authorization: Bearer API_ACCESS_TOKEN"
curl "https://api.wonde.com/v1.0/schools/{school_id}/debtors/{debtor_id}"
-H "Authorization: Bearer API_ACCESS_TOKEN"
Response Body
{
"data": [
{
"id": "A1139736963",
"mis_id": "9920",
"title": "Mrs",
"forename": "Sally",
"middle_name": null,
"surname": "Smith",
"gender": "Female",
"contact_details": {
"email": "[email protected]",
"telephone": "01623 123123",
"mobile_number": "Medical Centre",
"house_number": "1",
"house_name": null,
"street": "High Street",
"district": null,
"town": "London",
"county": null,
"postcode": "W1 XYZ",
"country": "United Kingdom",
},
"balance": 100.30,
"created_at": {
"date": "2015-10-29 14:53:44.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"updated_at": {
"date": "2015-10-29 14:53:44.000000",
"timezone_type": 3,
"timezone": "UTC"
}
},
{
"id": "A1139736963",
"mis_id": "9920",
"title": "Mrs",
"forename": "Sally",
"middle_name": null,
"surname": "Smith",
"gender": "Female",
"contact_details": {
"email": "[email protected]",
"telephone": "01623 123123",
"mobile_number": "Medical Centre",
"house_number": "1",
"house_name": null,
"street": "High Street",
"district": null,
"town": "London",
"county": null,
"postcode": "W1 XYZ",
"country": "United Kingdom",
},
"balance": 100.15,
"created_at": {
"date": "2016-10-29 14:53:44.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"updated_at": {
"date": "2016-10-29 14:53:44.000000",
"timezone_type": 3,
"timezone": "UTC"
}
}
]
}
This endpoint is currently available for Synergetic SIS school data only.
You need the debtors.read permission to view this resource.
Url parameters
Name | type | Description |
---|---|---|
updated_after | date | Return rows modified after date. |
updated_before | date | Return rows modified before date. |
per_page | int | Amount of rows to return. |
include | string | Comma separated list of objects to include. |
Related objects
Name | Relationship |
---|---|
students | many |
charges | many |
contact | one |
Debtors Object
Response Body
{
"id": "A1139736963",
"mis_id": "9920",
"title": "Mrs",
"forename": "Sally",
"middle_name": null,
"surname": "Smith",
"gender": "Female",
"contact_details": {
"email": "[email protected]",
"telephone": "01623 123123",
"mobile_number": "01623 123123",
"house_number": "1",
"house_name": null,
"street": "High Street",
"district": null,
"town": "London",
"county": null,
"postcode": "W1 XYZ",
"country": "United Kingdom",
},
"balance": 100.15,
"created_at": {
"date": "2015-10-29 14:53:44.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"updated_at": {
"date": "2015-10-29 14:53:44.000000",
"timezone_type": 3,
"timezone": "UTC"
}
}
You need the debtors read permission to view this object.
Name | Type | Description |
---|---|---|
id | string | The ID of the object. |
mis_id | string | The debtor’s ID in the MIS. |
title | string nullable |
The debtor’s title. |
forename | string nullable |
The debtor’s first name. |
middle_names | nullable string |
The debtor’s middle_names. |
surname | string | The debtor’s last name. |
gender | string nullable |
The debtor’s gender. |
string nullable |
The debtor’s email. | |
telephone | string nullable |
The debtor’s telephone. |
mobile_number | string nullable |
The debtor’s mobile number. |
house_number | string nullable |
The debtor’s house number. |
house_name | string nullable |
The debtor’s house name. |
street | string nullable |
The debtor’s street. |
district | string nullable |
The debtor’s district. |
town | string nullable |
The debtor’s town. |
county | string nullable |
The debtor’s county. |
postcode | string nullable |
The debtor’s postcode. |
country | string nullable |
The debtor’s country. |
balance | decimal | The debtor’s billing balance. |
created_at | datetime | When the record was added to Wonde. |
updated_at | datetime | When the record was last updated on Wonde. |
GET Debtor's Charges
Curl example
curl "https://api.wonde.com/v1.0/schools/{school_id}/debtor-charges"
-H "Authorization: Bearer API_ACCESS_TOKEN"
curl "https://api.wonde.com/v1.0/schools/{school_id}/debtor-charges/{debtor_charge_id}"
-H "Authorization: Bearer API_ACCESS_TOKEN"
Response Body
{
"data": [
{
"id": "A1139736963",
"mis_id": "9920",
"description": "Charge Fee 1",
"charge_date": {
"date": "2015-10-29 14:53:44.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"charge_category": {
"mis_id": "CHRG1",
"code": "CHRG CODE",
"description": "Charge Fee 1",
"mandatory": false,
},
"amount": 100.30,
"paid": true,
"processed": null,
"due": {
"date": "2015-10-29 14:53:44.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"created_at": {
"date": "2015-10-29 14:53:44.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"updated_at": {
"date": "2015-10-29 14:53:44.000000",
"timezone_type": 3,
"timezone": "UTC"
}
},
{
"id": "A1139736963",
"mis_id": "9921",
"description": "Charge Fee 2",
"charge_date": {
"date": "2015-10-29 14:53:44.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"charge_category": {
"mis_id": "CHR1",
"code": "CHRG CODE 1",
"description": "Charge Fee 2",
"mandatory": false,
},
"amount": 100.30,
"paid": true,
"processed": null,
"due": {
"date": "2015-10-29 14:53:44.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"created_at": {
"date": "2015-10-29 14:53:44.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"updated_at": {
"date": "2015-10-29 14:53:44.000000",
"timezone_type": 3,
"timezone": "UTC"
}
}
]
}
This endpoint is currently available for Synergetic SIS school data only.
You need the debtors-charges.read permission to view this resource.
Url parameters
Name | type | Description |
---|---|---|
updated_after | date | Return rows modified after date. |
updated_before | date | Return rows modified before date. |
per_page | int | Amount of rows to return. |
include | string | Comma separated list of objects to include. |
Related objects
Name | Relationship |
---|---|
debtor | one |
students | many |
Debtor's Charges Object
Response Body
{
"id": "A1139736963",
"mis_id": "9920",
"description": "Charge fee",
"charge_date": {
"date": "2015-10-29 14:53:44.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"charge_category": {
"mis_id": "mis_id 1",
"code": "charge1",
"description": "Charge Fee",
"mandatory": false,
},
"amount": 100.15,
"paid": true,
"processed": false,
"due": {
"date": "2015-10-29 14:53:44.000000",
"timezone_type": 3,
"timezone": "UTC"
"created_at": {
"date": "2015-10-29 14:53:44.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"updated_at": {
"date": "2015-10-29 14:53:44.000000",
"timezone_type": 3,
"timezone": "UTC"
}
}
You need the debtors charges read permission to view this object.
Name | Type | Description |
---|---|---|
id | string | The ID of the object. |
mis_id | string | The debtor’s charge ID in the MIS. |
description | string | The debtor’s charge description. |
charge_date | date nullable |
The debtor’s charge date. |
charge_category | json string nullable |
The debtor’s charge category. Referenced to charge attributes. |
amount | numeric | The debtor’s amount. |
paid | boolean nullable |
If the debtor’s charge is paid. |
processed | boolean nullable |
If the debtor’s charge is processed. |
due | date nullable |
The debtor’s charge due date. |
created_at | datetime | When the record was added to Wonde. |
updated_at | datetime | When the record was last updated on Wonde. |
GET Debtor Charge Attributes
Curl example
curl "https://api.wonde.com/v1.0/schools/{school_id}/debtors-charges/attributes"
-H "Authorization: Bearer API_ACCESS_TOKEN"
Response Body
{
"data": [
{
"id": "A1139736963",
"description": "Charge Attribute Category description",
"code": "attributeCode1",
},"created_at": {
"date": "2015-10-29 14:53:44.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"updated_at": {
"date": "2015-10-29 14:53:44.000000",
"timezone_type": 3,
"timezone": "UTC"
}
},
{
"id": "A1771812169",
"description": "Charge Attribute description",
"code": "attributeCode2",
},"created_at": {
"date": "2015-10-29 14:53:44.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"updated_at": {
"date": "2015-10-29 14:53:44.000000",
"timezone_type": 3,
"timezone": "UTC"
}
},
]
This endpoint is currently available for Synergetic SIS school data only.
You need the debtors-charge-category.read permission to view this resource.
Url parameters
Name | type | Description |
---|---|---|
updated_after | date | Return rows modified after date. |
updated_before | date | Return rows modified before date. |
per_page | int | Amount of rows to return. |
include | string | Comma separated list of objects to include. |
Related objects
Name | Relationship |
---|---|
debtor charges | Many |
Debtor Charge Attributes Object
Response Body
{
"id": "A1771812169",
"description": "Charge Attribute Description",
"code": "attributeCode2",
"created_at": {
"date": "2015-10-29 14:53:44.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"updated_at": {
"date": "2015-10-29 14:53:44.000000",
"timezone_type": 3,
"timezone": "UTC"
}
}
You need the debtors charge category read permission to view this object.
Name | Type | Description |
---|---|---|
id | string | The ID of the object. |
description | string | The debtor charge attribute description. |
code | string | The debtor charge attribute code. |
created_at | datetime | When the record was added to Wonde. |
updated_at | datetime | When the record was last updated on Wonde. |
Doctors
GET Doctors
Curl example
curl "https://api.wonde.com/v1.0/schools/{school_id}/doctors"
-H "Authorization: Bearer API_ACCESS_TOKEN"
curl "https://api.wonde.com/v1.0/schools/{school_id}/doctors/{doctor_id}"
-H "Authorization: Bearer API_ACCESS_TOKEN"
Response Body
{
"data": [
{
"id": "A1139736963",
"mis_id": "9920",
"title": "Mrs",
"forename": "Sally",
"middle_name": null,
"surname": "Smith",
"practice_name": "Medical Centre",
"telephone": "01623 123123",
"building_number": "1",
"building_name": null,
"street": "High Street",
"district": null,
"town": "London",
"county": null,
"postcode": "W1 XYZ",
"country": "United Kingdom",
"created_at": {
"date": "2015-10-29 14:53:44.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"updated_at": {
"date": "2015-10-29 14:53:44.000000",
"timezone_type": 3,
"timezone": "UTC"
}
},
{
"id": "A1139736963",
"mis_id": "9920",
"title": "Mr",
"forename": "John",
"middle_name": "James",
"surname": "Smith",
"practice_name": "Medical Surgery",
"telephone": "01623 987876",
"building_number": null,
"building_name": null,
"street": "Main Street",
"district": null,
"town": "London",
"county": null,
"postcode": "W2 YUB",
"country": "United Kingdom",
"created_at": {
"date": "2016-10-29 14:53:44.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"updated_at": {
"date": "2016-10-29 14:53:44.000000",
"timezone_type": 3,
"timezone": "UTC"
}
}
]
}
Url parameters
Name | type | Description |
---|---|---|
updated_after | date | Return rows modified after date. |
updated_before | date | Return rows modified before date. |
per_page | int | Amount of rows to return. |
include | string | Comma separated list of objects to include. |
Related objects
Name | Relationship |
---|---|
students | many |
Doctor Object
Response Body
{
"id": "A1139736963",
"mis_id": "9920",
"title": "Mrs",
"forename": "Sally",
"middle_name": null,
"surname": "Smith",
"practice_name": "Medical Centre",
"telephone": "01623 123123",
"building_number": "1",
"building_name": null,
"street": "High Street",
"district": null,
"town": "London",
"county": null,
"postcode": "W1 XYZ",
"country": "United Kingdom",
"created_at": {
"date": "2015-10-29 14:53:44.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"updated_at": {
"date": "2015-10-29 14:53:44.000000",
"timezone_type": 3,
"timezone": "UTC"
}
}
You need the doctors read permission to view this object.
Name | Type | Description |
---|---|---|
id | string | The ID of the object. |
mis_id | string | The doctor’s ID in the MIS. |
title | string nullable |
The doctor’s title. |
forename | string nullable |
The doctor’s first name. |
middle_names | nullable string |
The doctor’s middle_names. |
surname | string | The doctor’s last name. |
practice_name | string nullable |
The doctor’s practice name. |
telephone | string nullable |
The doctor’s telephone. |
building_number | string nullable |
The doctor’s building number. |
building_name | string nullable |
The doctor’s building name. |
street | string nullable |
The doctor’s street. |
district | string nullable |
The doctor’s district. |
town | string nullable |
The doctor’s town. |
county | string nullable |
The doctor’s county. |
postcode | string nullable |
The doctor’s postcode. |
country | string nullable |
The doctor’s country. |
created_at | datetime | When the record was added to Wonde. |
updated_at | datetime | When the record was last updated on Wonde. |
Detentions
GET Detentions
Curl example
curl "https://api.wonde.com/v1.0/schools/{school_id}/detentions"
-H "Authorization: Bearer API_ACCESS_TOKEN"
curl "https://api.wonde.com/v1.0/schools/{school_id}/detentions/{detention_id}"
-H "Authorization: Bearer API_ACCESS_TOKEN"
Response Body
{
"data": [
{
"id": "A1139736963",
"mis_id": "1",
"detention_type": "A1139736963",
"comment": null,
"room": "A688857193",
"start_at": {
"date": "2016-01-15 12:00:00.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"end_at": {
"date": "2016-01-15 13:00:00.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"attended_by_employee": "A930902628",
"created_at": {
"date": "2023-05-15 15:18:47.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"updated_at": {
"date": "2023-05-15 15:18:47.000000",
"timezone_type": 3,
"timezone": "UTC"
}
},
{
"id": "A1161584171",
"mis_id": "2",
"detention_type": "A1329183376",
"comment": null,
"room": "A688857193",
"start_at": {
"date": "2016-01-22 12:00:00.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"end_at": {
"date": "2016-01-22 13:00:00.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"attended_by_employee": "A1299388415",
"created_at": {
"date": "2023-05-15 15:18:47.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"updated_at": {
"date": "2023-05-15 15:18:47.000000",
"timezone_type": 3,
"timezone": "UTC"
}
}
],
"meta": {
"pagination": {
"next": "https://api.wonde.com/v1.0/schools/A1329183376/detentions?page=2",
"previous": null,
"more": true,
"per_page": "2",
"current_page": 1
},
"includes": [
"detention_type",
"room",
"attended_by_employee",
"attendances",
"attendances.student"
]
}
}
Url parameters
Name | type | Description |
---|---|---|
detention_type | id | Return rows for a detention type. |
room | id | Return rows for a room. |
detentions_start_after | date | Return rows starting after date. |
detentions_start_before | date | Return rows starting before date. |
attended_by_employee | id | Return rows for an employee. |
has_students | any | Only get detentions that have students. |
updated_after | date | Return rows modified after date. |
updated_before | date | Return rows modified before date. |
per_page | int | Amount of rows to return. |
include | string | Comma separated list of objects to include. |
Related objects
Name | Relationship |
---|---|
detention_type | one |
room | one |
attended_by_employee | one |
attendances | many |
attendances.student | many |
POST Detention
Curl example
curl -X POST -H "Authorization: Bearer API_ACCESS_TOKEN" -H "Content-Type: application/json" -d '{
"detention": [
{
"detention_type_id": "A1362597725",
"room_id": "A259582724",
"start_at": "2023-05-30 12:30:00",
"end_at": "2023-05-30 13:00:00",
"attended_by_employee_id": "A155021909",
"attendees": []
}
]}' "https://api.wonde.com/v1.0/schools/{school_id}/detentions"
Request Body
{
"detention": [
{
"detention_type_id": "A1362597725",
"room_id": "A259582724",
"start_at": "2023-05-30 12:00:00",
"end_at": "2023-05-30 12:30:00",
"attended_by_employee_id": "A155021909",
"attendees": [
{
"student_id" : "A15495061",
"comments": null,
"detention_attendance_code_id" : "A1161584171",
"recorded_by_employee_id" : "A589692274",
"behaviour_id" : "A1410636307",
"behaviour_type" : "BULL"
},
{
"student_id" : "A1962835790",
"comments": null,
"detention_attendance_code_id" : "TROP",
"recorded_by_employee_id" : "A589692274",
"behaviour_id" : "A142098841",
"behaviour_type" : "A1600973649"
}
]
},
{
"detention_type_id": "A1161584171",
"room_id": "A259582724",
"start_at": "2023-06-06 12:30:00",
"end_at": "2023-06-06 13:00:00",
"attended_by_employee_id": "A155021909",
"attendees": []
}
]
}
To create a detention record, send a JSON encoded
POST request to /v1.0/schools/{school_id}/detentions
.
An example of the request body is provided on the right.
The attribute values that must be set successfully to create detention records are:
Name | type | Required | Description |
---|---|---|---|
detention_type_id | string | Yes | The Wonde ID for the detention type. |
room_id | string | Yes | The Wonde ID for the room. |
start_at | datetime | Yes | The timestamp for the start of the detention. |
end_at | datetime | Yes | The timestamp for the end of the detention. |
attended_by_employee_id | string | No | The Wonde ID of the employee attending the detention. |
attendees | array | No | An array of detention attendances. |
attendees > student_id | string | Yes | The Wonde ID of the student. |
attendees > comments | string | No | Comments relevant to the detention attendance. (Note: For SIMS this field cannot exceed 170 characters in length, you will receive a failure status in the event that it exceeds the limit) |
attendees > detention_attendance_code_id | string | Yes | The Wonde ID of the detention attendance code. |
attendees > recorded_by_employee_id | string | No | The Wonde ID of the employee recording the detention attendance. |
attendees > behaviour_id | string | No | The Wonde ID of the behaviour record relating to this detention. |
attendees > behaviour_type | string | No |
The Wonde ID or code of the BEHAVIOUR_TYPE relating to this detention. If a value is not provided, the default BEHAVIOUR_TYPE of <NONE> is used. |
Response body
Response Body
{
"writeback_id": "A18098738"
}
If your request fails validation the response will contain the validation errors. If your request passes validation you will receive a writeback_id which can be used to check the status of the writeback.
DELETE Detention
Curl example
curl -X "DELETE" "https://api.wonde.com/v1.0/schools/{school_id}/detentions/{detention_id}"
-H "Authorization: Bearer API_ACCESS_TOKEN"
You need the detentions delete permission to perform this action.
To delete a detention record just send a delete request to the detention item's url.
Response Body
{
"writeback_id": "A18098738"
}
Detention Object
Response Body
{
"id": "A1139736963",
"mis_id": "1",
"detention_type": "A1139736963",
"comment": null,
"room": "A688857193",
"start_at": {
"date": "2016-01-15 12:00:00.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"end_at": {
"date": "2016-01-15 13:00:00.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"attended_by_employee": "A930902628",
"created_at": {
"date": "2023-05-17 09:59:51.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"updated_at": {
"date": "2023-05-17 09:59:51.000000",
"timezone_type": 3,
"timezone": "UTC"
}
}
You need the detentions read permission to view this object.
Name | Type | Description |
---|---|---|
id | string | The ID of the object. |
mis_id | string | The ID in the MIS. |
detention_type | string | The detention type this detention belongs to. |
comment | string nullable |
The comment about the detention. |
room | string | The room this detention belongs to. |
start_at | datetime | The start date and time of the detention. |
end_at | datetime | The end date and time of the detention. |
attended_by_employee | string nullable |
The employee attending the detention. |
created_at | datetime | When the record was added to Wonde. |
updated_at | datetime | When the record was last updated on Wonde. |
Detention Attendance Codes
GET Detention Attendance Codes
Curl example
curl "https://api.wonde.com/v1.0/schools/{school_id}/detention-attendance-codes"
-H "Authorization: Bearer API_ACCESS_TOKEN"
Response Body
{
"data": [
{
"id": "A1329183376",
"mis_id": "1",
"code": "NOR",
"description": "Not Recorded"
},
{
"id": "A1161584171",
"mis_id": "2",
"code": "ATT",
"description": "Attended"
},
{
"id": "A2032141745",
"mis_id": "3",
"code": "NAT",
"description": "Not Attended"
}
],
"meta": {
"pagination": {
"next": "https://api.wonde.com/v1.0/schools/A1329183376/attendance/detention-attendance-codes?page=2",
"previous": null,
"more": true,
"per_page": "3",
"current_page": 1
}
}
}
Detention Attendance Code Object
Response Body
{
"id": "A1329183376",
"mis_id": "1",
"code": "NOR",
"description": "Not Recorded"
}
Name | Type | Description |
---|---|---|
id | string | The ID of the object. |
mis_id | string | The ID in the MIS. |
code | string | The detention attendance code. |
description | string | The detention attendance code’s description. |
Detention Attendance
GET Detention Attendance
Curl example
curl "https://api.wonde.com/v1.0/schools/{school_id}/attendance/detention"
-H "Authorization: Bearer API_ACCESS_TOKEN"
curl "https://api.wonde.com/v1.0/schools/{school_id}/attendance/detention/{detention_attendance_id}"
-H "Authorization: Bearer API_ACCESS_TOKEN"
Response Body
{
"data": [
{
"id": "A1329183376",
"mis_id": "1",
"detention": "A1329183376",
"comment": null,
"detention_attendance_code": "A1161584171",
"student": "A1388940495",
"recorded_by_employee": "A1131916182",
"behaviour": "A1964735203",
"behaviour_type": "A2132451809",
"created_at": {
"date": "2023-05-17 09:59:51.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"updated_at": {
"date": "2023-05-17 09:59:51.000000",
"timezone_type": 3,
"timezone": "UTC"
}
},
{
"id": "A1161584171",
"mis_id": "2",
"detention": "A1329183376",
"comment": null,
"detention_attendance_code": "A1161584171",
"student": "A1711437020",
"recorded_by_employee": "A1500139297",
"behaviour": "A1964735203",
"behaviour_type": "A1663264959",
"created_at": {
"date": "2023-05-17 09:59:51.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"updated_at": {
"date": "2023-05-17 09:59:51.000000",
"timezone_type": 3,
"timezone": "UTC"
}
}
],
"meta": {
"pagination": {
"next": "https://api.wonde.com/v1.0/schools/A1329183376/attendance/detention?page=2",
"previous": null,
"more": true,
"per_page": "2",
"current_page": 1
},
"includes": [
"detention",
"student",
"recorded_by_employee",
"behaviour",
"behaviour_type"
]
}
}
Url parameters
Name | type | Description |
---|---|---|
detention_date_after | date | Return entries after date. |
detention_date_before | date | Return entries before date. |
student | id | Return rows for a student. |
recorded_by_employee | id | Return rows for an employee. |
behaviour | id | Return rows for a behaviour. |
detention | id | Return rows for a detention. |
detention_attendance_code | id | Return rows for a detention attendance code. |
updated_after | date | Return rows modified after date. |
updated_before | date | Return rows modified before date. |
per_page | int | Amount of rows to return. |
include | string | Comma separated list of objects to include. |
Related objects
Name | Relationship |
---|---|
detention | one |
student | one |
recorded_by_employee | one |
behaviour | one |
behaviour_type | one |
POST Detention Attendance
Curl example
curl -X POST -H "Authorization: Bearer API_ACCESS_TOKEN" -H "Content-Type: application/json" -d '{
"attendance": [
{
"detention_id": "A1329183376",
"student_id": "A960618364",
"comments": "Student was present",
"detention_attendance_code_id": "A1329183376",
"recorded_by_employee_id": "A866880757",
"behaviour_id": "A2133121352",
"behaviour_type": "A2132451809"
}
]}' "https://api.wonde.com/v1.0/schools/{school_id}/attendance/detention"
Request Body
{
"attendance": [
{
"detention_id": "A1329183376",
"student_id": "A960618364",
"comments": "Student was present",
"detention_attendance_code_id": "A1161584171",
"recorded_by_employee_id": "A866880757",
"behaviour_id": "A2133121352",
"behaviour_type": "A2132451809"
},
{
"detention_id": "A1329183376",
"student_id": "A1837404115",
"comments": "Student was present",
"detention_attendance_code_id": "A1161584171",
"recorded_by_employee_id": "A866880757",
"behaviour_id": "A1362597725",
"behaviour_type": "OTH"
}
]
}
To successfully create or edit a detention attendance record, send a JSON encoded
POST request to /v1.0/schools/{school_id}/attendance/detention
.
An example of the request body is provided on the right.
The attribute values that must be set successfully to create detention attendance records are:
Name | type | Required | Description |
---|---|---|---|
detention_id | string | Yes | The Wonde ID for the detention. |
student_id | string | Yes | The Wonde ID for the student. |
comments | string | No | Comments relevant to the detention attendance. (Note: For SIMS this field cannot exceed 170 characters in length, you will receive a failure status in the event that it exceeds the limit) |
detention_attendance_code_id | string | Yes | The Wonde ID of the detention attendance code. |
recorded_by_employee_id | string | No | The Wonde ID of the employee recording the attendance. |
behaviour_id | string | No | The Wonde ID of the behaviour. |
behaviour_type | string | No |
The Wonde ID or code of the behaviour type relating to this detention. If a value is not provided, the default BEHAVIOUR_TYPE of <NONE> is used. |
Response body
Response Body
{
"writeback_id": "A18098738"
}
If your request fails validation the response will contain the validation errors. If your request passes validation you will receive a writeback_id which can be used to check the status of the writeback.
DELETE Detention Attendance
Curl example
curl -X "DELETE" "https://api.wonde.com/v1.0/schools/{school_id}/attendance/detention/{detention_id}/attendee/{student_id}"
-H "Authorization: Bearer API_ACCESS_TOKEN"
You need the detention attendance delete permission to perform this action.
To delete a detention attendance record send a delete request to the url displayed, containing the relevant detention and student IDs.
Response Body
{
"writeback_id": "A18098738"
}
Detention Attendance Object
Response Body
{
"id": "A1329183376",
"mis_id": "1",
"detention": "A1329183376",
"comment": null,
"detention_attendance_code": "A1161584171",
"student": "A1388940495",
"recorded_by_employee": "A1131916182",
"behaviour": "A1964735203",
"behaviour_type": "A2132451809",
"created_at": {
"date": "2023-05-17 09:59:51.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"updated_at": {
"date": "2023-05-17 09:59:51.000000",
"timezone_type": 3,
"timezone": "UTC"
}
}
You need the attendance detentions read permission to view this object.
Name | Type | Description |
---|---|---|
id | string | The ID of the object. |
mis_id | string | The ID in the MIS. |
detention | id | The ID of the detention. |
comment | string nullable |
The comment about the detention attendance. |
detention_attendance_code | id | The detention attendance code for the attendance. |
recorded_by_employee | id nullable |
The employee recording the attendance. |
behaviour | id nullable |
The behaviour relating to the detention attendance. |
behaviour_type | id | The behaviour type relating to the detention attendance. |
created_at | datetime | When the record was added to Wonde. |
updated_at | datetime | When the record was last updated on Wonde. |
Detention Types
GET Detention Types
Curl example
curl "https://api.wonde.com/v1.0/schools/{school_id}/detention-types"
-H "Authorization: Bearer API_ACCESS_TOKEN"
curl "https://api.wonde.com/v1.0/schools/{school_id}/detention-types/{detention__type_id}"
-H "Authorization: Bearer API_ACCESS_TOKEN"
Response Body
{
"data": [
{
"id": "A1329183376",
"mis_id": "1",
"name": "Monday Lunchtime",
"duration_in_minutes": 30,
"frequency_per_month": "A1664730745",
"start_time": "12:30",
"end_time": "13:00",
"day_of_week": 1,
"employee": "A2019555757",
"room": "A688857193",
"created_at": {
"date": "2023-05-17 09:59:51.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"updated_at": {
"date": "2023-05-17 09:59:51.000000",
"timezone_type": 3,
"timezone": "UTC"
}
},
{
"id": "A1161584171",
"mis_id": "2",
"name": "Tuesday Lunchtime",
"duration_in_minutes": 30,
"frequency_per_month": "A1664730745",
"start_time": "12:30",
"end_time": "13:00",
"day_of_week": 2,
"employee": null,
"room": "A688857193",
"created_at": {
"date": "2023-05-17 09:59:51.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"updated_at": {
"date": "2023-05-17 09:59:51.000000",
"timezone_type": 3,
"timezone": "UTC"
}
}
],
"meta": {
"pagination": {
"next": "https://api.wonde.com/v1.0/schools/A1329183376/detention-types?page=2",
"previous": null,
"more": true,
"per_page": "2",
"current_page": 1
}
"includes": [
"frequency_per_month",
"employee",
"room"
]
}
}
Url parameters
Name | type | Description |
---|---|---|
frequency_per_month | id | Return rows for a frequency per month. |
employee | id | Return rows for an employee. |
room | id | Return rows for a room. |
updated_after | date | Return rows modified after date. |
updated_before | date | Return rows modified before date. |
per_page | int | Amount of rows to return. |
Related objects
Name | Relationship |
---|---|
frequency_per_month | one |
employee | one |
room | one |
Detention Type Object
Response Body
{
"id": "A1329183376",
"mis_id": "1",
"name": "Monday Lunchtime",
"duration_in_minutes": 30,
"frequency_per_month": "A1664730745",
"start_time": "12:30",
"end_time": "13:00",
"day_of_week": 1,
"employee": "A2019555757",
"room": "A688857193",
"created_at": {
"date": "2023-05-17 09:59:51.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"updated_at": {
"date": "2023-05-17 09:59:51.000000",
"timezone_type": 3,
"timezone": "UTC"
}
}
You need the detention types read permission to view this object.
Name | Type | Description |
---|---|---|
id | string | The ID of the object. |
mis_id | string | The ID in the MIS. |
name | string | The name of the detention type. |
duration_in_minutes | int | The duration of the detention. |
frequency_per_month | string | The frequency per month ID. |
start_time | time | The start time of the detention. |
end_time | time | The end time of the detention. |
day_of_week | int nullable |
The day of the detention.
|
employee | string nullable |
The employee attending the detention. |
room | int | The room this detention belongs to. |
created_at | datetime | When the record was added to Wonde. |
updated_at | datetime | When the record was last updated on Wonde. |
Counts
GET Counts
Curl example
curl "https://api.wonde.com/v1.0/schools/{school_id}/counts?include=students,contacts,employees"
-H "Authorization: Bearer API_ACCESS_TOKEN"
Response Body
{
"data": {
"students": {
"data": {
"count": 1017
}
},
"contacts": {
"data": {
"count": 1785
}
},
"employees": {
"data": {
"count": 112
}
},
"behaviours": {
"data": {
"count": 1231
}
},
"achievements": {
"data": {
"count": 1304
}
},
"rooms": {
"data": {
"count": 68
}
},
"subjects": {
"data": {
"count": 62
}
},
"lessons": {
"data": {
"count": 35712
}
}
},
"meta": {
"includes": [
"students",
"contacts",
"employees",
"behaviours",
"achievements",
"rooms",
"subjects",
"lessons",
"periods",
"groups",
"classes",
"photos",
"buildings",
"attendance",
"lessonAttendance",
"contracts",
"roles",
"sen_needs",
"aspects",
"templates",
"result_sets",
"results",
"events",
"detentions",
"detention-types",
"detention-attendance-codes",
"detention-attendance"
]
}
}
Employees
Wonde holds records for all employees even if they are currently inactive at the school. Applications should use the current property from the employment details related object to establish whether or not a staff member is currently active at the school.
GET Employees
Curl example
curl "https://api.wonde.com/v1.0/schools/{school_id}/employees"
-H "Authorization: Bearer API_ACCESS_TOKEN"
curl "https://api.wonde.com/v1.0/schools/{school_id}/employees/{employee_id}"
-H "Authorization: Bearer API_ACCESS_TOKEN"
Response Body
{
"data": [
{
"id": "A1329183376",
"upi": "5cc4ab015f8f7870b581e30e0ef474fa",
"mis_id": "26",
"title": "Mrs",
"initials": "SS",
"surname": "Smith",
"forename": "Sally",
"middle_names": null,
"legal_surname": "Smith",
"legal_forename": "Sally",
"gender": "female",
"date_of_birth": {
"date": "1963-02-11 00:00:00.000000",
"timezone_type": 3,
"timezone": "Europe/London"
},
"restored_at": {
"date": "2015-10-29 14:59:08.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"updated_at": {
"date": "2015-10-29 14:59:08.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"created_at": {
"date": "2015-10-29 14:45:00.000000",
"timezone_type": 3,
"timezone": "UTC"
}
},
{
"id": "A1161584171",
"upi": "e5164e2f29965c14f1c68e241a116551",
"mis_id": "6903",
"title": "Mrs",
"initials": "KA",
"surname": "Anderson",
"forename": "Kate",
"middle_names": "Victoria",
"legal_surname": "Anderson",
"legal_forename": "Kate",
"gender": "female",
"date_of_birth": {
"date": "1966-03-11 00:00:00.000000",
"timezone_type": 3,
"timezone": "Europe/London"
},
"restored_at": {
"date": "2015-10-29 14:59:08.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"updated_at": {
"date": "2015-10-29 14:59:08.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"created_at": {
"date": "2015-10-29 14:45:00.000000",
"timezone_type": 3,
"timezone": "UTC"
}
}
],
"meta": {
"pagination": {
"next": "https://api.wonde.com/v1.0/schools/{school_id}/employees/?page=2",
"previous": null,
"more": true,
"per_page": "2",
"current_page": 1
},
"includes": [
"contact_details",
"employment_details",
"extended_details",
"roles",
"allowances",
"scales",
"photo",
"roles.contract",
"allowances.contract",
"scales.contract",
"contracts",
"contracts.roles",
"contracts.salary",
"contracts.salary.allowances",
"contracts.salary.scales",
"salary",
"salary.contract",
"groups",
"campus",
"classes",
"employee_absences",
"identifiers",
"user_defined_fields",
"next_of_kin"
]
}
}
Url parameters
Name | type | Description |
---|---|---|
updated_after | date | Return rows modified after date. |
updated_before | date | Return rows modified before date. |
per_page | int | Amount of rows to return. |
include | string | Comma separated list of objects to include. |
employment_start_before | date | Get employees who have started before a date. |
employment_start_after | date | Get employees who have started after a date. |
has_role | any | Only return employees that have a role. |
has_contract | any | Only return employees that have a contract. |
has_class | any | Only return employees that have one or more classes. |
has_group | any | Only return employees that have one or more groups. |
user_defined_field | string | Filter employees by user defined field key. |
only_user_defined_fields | string | Filter user defined fields by comma separated list. |
only_mis_ids | string | Filter MIS ids by comma separated list. |
Related objects
Name | Relationship |
---|---|
contact_details | one |
employment_details | one |
extended_details | one |
roles | many |
roles.contracts | many > many |
contracts | many |
contracts.roles | many > many |
contracts.salary | many > one |
contracts.salary.allowances | many > one > many |
contracts.salary.scales | many > one > many |
salary | many |
salary.contract | many > one |
allowances | many |
allowances.contract | many > one |
scales | many |
scales.contract | many > one |
photo | one |
groups | many |
campus | one |
behaviours | many |
classes | many |
employee_absences | many |
identifiers | one |
user_defined_fields | many |
next_of_kin | one |
qualifications | many |
employment_checks | many |
Employee Object
Response Body
{
"id": "A1749191433",
"upi": "5cc4ab015f8f7870b581e30e0ef474fa",
"mis_id": "9919",
"title": "Mr",
"initials": "TS",
"surname": "Smith",
"forename": "Tom",
"middle_names": null,
"legal_surname": "Smith",
"legal_forename": "Tom",
"gender": "male",
"date_of_birth": {
"date": "2002-09-29 00:00:00.000000",
"timezone_type": 3,
"timezone": "Europe/London"
},
"restored_at": {
"date": "2016-07-14 10:26:12.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"created_at": {
"date": "2016-07-14 10:26:12.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"updated_at": {
"date": "2016-07-15 09:59:05.000000",
"timezone_type": 3,
"timezone": "UTC"
}
}
You need the employees read permission to view this object.
Name | Type | Description |
---|---|---|
id | string | The ID of the object. |
upi | string | Unique Person Identifier - If a person is a contact and an employee they will have the same UPI but different ids. |
mis_id | string | The employee’s ID in the MIS. |
title | nullable string |
The employee’s title. |
initials | nullable string |
The employee’s initials. |
surname | string | The employee’s last name. |
forename | string nullable |
The employee’s first name. |
middle_names | nullable string |
The employee’s middle_names. |
legal_surname | string nullable |
The employee’s legal last name. |
legal_forename | string nullable |
The employee’s legal first name. |
gender | string | The employee’s gender.
|
date_of_birth | date | The employee’s date of birth. |
restored_at | datetime | When the Wonde ID was restored from the deletions data |
created_at | datetime | When the record was added to Wonde. |
updated_at | datetime | When the record was last updated on Wonde. |
Employment Details Object
Response Body
{
"teaching_staff": true,
"current": true,
"teacher_number": "84/82693",
"teacher_category": "Qualified Teacher",
"staff_code": "AA",
"primary_location": "0810",
"employment_start_date": {
"date": "1988-09-01 00:00:00.000000",
"timezone_type": 3,
"timezone": "Europe/London"
},
"employment_end_date": null,
"local_authority_start_date": {
"date": "1988-09-01 00:00:00.000000",
"timezone_type": 3,
"timezone": "Europe/London"
},
"employee_payroll_number": "8372CGT",
"role_text": "Teacher",
"qualified_teacher_status": "Qualified",
"qualified_teacher_status_route": "Annual College Exit - Post graduate course",
"higher_level_teaching_assistant_status": "F"
}
You need the employees read permission to view this object.
Name | Type | Description |
---|---|---|
current | boolean nullable |
Is the employee a current member of staff. |
teaching_staff | boolean nullable |
Is the employee’s role considered teaching staff. |
teacher_number | string nullable |
Teacher’s number. |
teacher_category | string nullable |
Teacher’s category. |
staff_code | string nullable |
Teacher’s staff code. |
primary_location | string nullable |
Teacher’s primary location. Currently supported only for SA government schools - CEDS. |
employment_start_date | date | Employment start date. |
employment_end_date | date nullable |
Employment end date. |
local_authority_start_date | date nullable |
The date the employee started at the local authority. |
employee_payroll_number | string nullable |
The employee's payroll number. |
role_text | string nullable |
The employee role text. |
qualified_teacher_status | string nullable |
If employee is qualified to teach. |
qualified_teacher_status_route | string nullable |
The employee's teaching status route. |
higher_level_teaching_assistant_status | string nullable |
The employee's higher level teaching assistant status. |
Employee Hierarchy Object
Response Body
{
"id": "A1964735203",
"upi": "fde2ccd1f408fe53bcf6b8f546b7621fdd",
"mis_id": "8435",
"initials": "SY",
"title": "Mr",
"surname": "Yates",
"forename": "Simon",
"middle_names": null,
"legal_surname": "Yates",
"legal_forename": "Simon",
"gender": "male",
"date_of_birth": {
"date": "1993-07-02 00:00:00.000000",
"timezone_type": 3,
"timezone": "Europe/London"
},
"created_at": {
"date": "2017-05-21 13:20:50.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"updated_at": {
"date": "2017-05-21 13:20:50.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"meta": {
"role": "linemanager",
"start_date": {
"date": "2016-03-11 00:00:00.000000",
"timezone_type": 3,
"timezone": "UTC"
}
"end_date": null
}
}
You need the employees hierarchy read permission to view this object.
When this include is added to the employees endpoint, an array of relationships are appended to each employee.
Each relationship will include the employee object of the related person and a meta object describing the relationship.
Name | Type | Description |
---|---|---|
role | string | There are four types of relationships that can be shown:
The linemanager and reportee roles are the inverse of one another. The same applies to appraiser and appraisee. |
start_date | date nullable |
When the relationship is active from. |
end_date | date nullable |
When the relationship ends. |
Role Object
Response Body
{
"id": "A1964735203",
"mis_id": "98",
"role": "Classroom Teacher",
"role_code": "TCHR",
"contract": "A1529934786",
"start_date": {
"date": "2013-09-01 00:00:00.000000",
"timezone_type": 3,
"timezone": "Europe/London"
},
"end_date": null,
"created_at": {
"date": "2015-10-29 14:57:59.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"updated_at": {
"date": "2015-10-29 14:57:59.000000",
"timezone_type": 3,
"timezone": "UTC"
}
}
You need the employees read permission to view this object.
Name | Type | Description |
---|---|---|
id | string | The ID of the object. |
mis_id | string nullable |
The role’s ID in the MIS. |
role | string | Name of the role. |
role_code | string nullable |
The role’s identifier. |
contract | string object nullable |
The contract this role belongs to. |
start_date | date nullable |
When the role is active from. |
end_date | date nullable |
When the role ends. |
created_at | datetime | When the record was added to Wonde. |
updated_at | datetime | When the record was last updated on Wonde. |
Contract Object
Response Body
{
"id": "A1529934786",
"mis_id": "358",
"start_date": {
"date": "2013-09-01 00:00:00.000000",
"timezone_type": 3,
"timezone": "Europe/London"
},
"end_date": null,
"employment_type": "PERMANENT",
"created_at": {
"date": "2014-05-21 16:21:45.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"updated_at": {
"date": "2014-05-21 16:21:45.000000",
"timezone_type": 3,
"timezone": "UTC"
}
}
You need the contracts read permission to view this object.
Name | Type | Description |
---|---|---|
id | string | The ID of the object. |
mis_id | string | The contract’s ID in the MIS. |
start_date | date | When the contract is active from. |
end_date | date nullable |
When the contract ends. |
employment_type | string nullable |
|
created_at | datetime | When the record was added to Wonde. |
updated_at | datetime | When the record was last updated on Wonde. |
Salary Object
Response Body
{
"id": "A1529934786",
"payroll_number": "P999999",
"salary": "24987.94",
"fte_salary": "24987.94",
"total_pay": "24987.94",
"latest_pay_review_date": {
"date": "2016-09-02 00:00:00.000000",
"timezone_type": 3,
"timezone": "Europe/London"
},
"superannuation": "Basic Pension",
"pay_factor": "1.2500",
"service_term": "Support Staff",
"hours_week": "40.0000",
"weeks_year": "20.0000",
"hours_year": "800.00",
"fte_hours": "1.00",
"created_at": {
"date": "2014-05-21 16:21:45.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"updated_at": {
"date": "2014-05-21 16:21:45.000000",
"timezone_type": 3,
"timezone": "UTC"
}
}
You need the contract salary read permission to view this object.
Name | Type | Description |
---|---|---|
id | string | The ID of the object. |
payroll_number | string | The payroll number of the contract. |
salary | decimal nullable |
Salary offered for contract. |
fte_salary | decimal nullable |
Full time equivalent salary for contract. |
total_pay | decimal nullable |
Total compensation for contract. |
latest_pay_review_date | date nullable |
Date of last pay review. |
superannuation | string nullable |
Type of pension. |
pay_factor | decimal nullable |
Factor of pay for contract. |
service_term | string nullable |
|
hours_week | decimal nullable |
Contracted hours per week. |
weeks_year | decimal nullable |
Contracted weeks per year. |
hours_year | decimal nullable |
Contracted hours per year. |
fte_hours | decimal nullable |
Full Time Equivalent (FTE) hours per year. |
created_at | datetime | When the record was added to Wonde. |
updated_at | datetime | When the record was last updated on Wonde. |
Allowance Object
Response Body
{
"id": "A9483752984",
"mis_id": "95",
"start_date": {
"date": "2015-03-02 00:00:00.000000",
"timezone_type": 3,
"timezone": "Europe/London"
},
"end_date": null,
"amount": 7157,
"type": "PERMANENT",
"allowance": "Teaching higher course",
"code": "TH",
"payroll_allowance": null,
"allowance_reason": "Higher progression",
"created_at": {
"date": "2016-02-15 12:01:51.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"updated_at": {
"date": "2016-02-15 12:01:51.000000",
"timezone_type": 3,
"timezone": "UTC"
}
}
You need the contract salary read permission to view this object.
Name | Type | Description |
---|---|---|
id | string | The ID of the object. |
mis_id | string | The allowance’s ID in the MIS. |
start_date | date | When the allowance is active from. |
end_date | date nullable |
When the allowance ends. |
amount | integer nullable |
The amount in the allowance. |
type | string nullable |
The type of allowance. |
allowance | string nullable |
Short description of allowance. |
code | string nullable |
The code for allowance. |
payroll_allowance | string nullable |
|
allowance_reason | string nullable |
Reason that allowance has been given. |
created_at | datetime | When the record was added to Wonde. |
updated_at | datetime | When the record was last updated on Wonde. |
Employee Identifiers Object
Response Body
{
"identifiers": {
"data": {
"barcode": "ADSVASW32131FE",
"active_directory_username": "username",
"username": "username",
"passport_number": "84874712347"
}
}
}
You need the employees read permission to view this object.
Name | Type | Description |
---|---|---|
barcode | string nullable |
A barcode used to identify the employee. |
active_directory_username | string nullable |
The active directory username used to identify the employee. |
username | string nullable |
The username of the employee. |
passport_number | string nullable |
The passport number of the employee. |
Scale Object
Response Body
{
"id": "A6389286398",
"mis_id": "963",
"start_date": {
"date": "2017-12-06 00:00:00.000000",
"timezone_type": 3,
"timezone": "Europe/London"
},
"end_date": null,
"scale_point": 3,
"pay_scale": "Initial scale",
"pay_scale_code": "IPS",
"minimum_amount": null,
"maximum_amount": null,
"notes": null,
"created_at": {
"date": "2016-08-21 12:01:07.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"updated_at": {
"date": "2016-08-21 12:01:07.000000",
"timezone_type": 3,
"timezone": "UTC"
}
}
You need the contract salary read permission to view this object.
Name | Type | Description |
---|---|---|
id | string | The ID of the object. |
mis_id | string | The scale’s ID in the MIS. |
start_date | date | When the scale is active from. |
end_date | date nullable |
When the scale ends. |
scale_point | int nullable |
|
pay_scale | string nullable |
The scale of pay for contract. |
pay_scale_code | string nullable |
Identifying code for pay scale. |
minimum_amount | int nullable |
Minimum amount for scale. |
maximum_amount | int nullable |
Maximum amout for scale. |
notes | text nullable |
|
created_at | datetime | When the record was added to Wonde. |
updated_at | datetime | When the record was last updated on Wonde. |
Next of Kin Object
Response Body
{
"id": "A1529934786",
"mis_id": "5321",
"name": Mr George Marc,
"telephone_home": "01637 8672230",
"telephone_work": "01632 8670223",
"telephone_mobile": "01631 86072230",
"telephone_primary": "01631 80672230",
"email_primary": "[email protected]",
"email_work": "[email protected]",
"email_home": "[email protected]",
"created_at": {
"date": "2014-05-21 16:21:45.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"updated_at": {
"date": "2014-05-21 16:21:45.000000",
"timezone_type": 3,
"timezone": "UTC"
}
}
You need the next of kin read permission to view this object.
Name | Type | Description |
---|---|---|
id | string | The ID of the object. |
mis_id | string | The next of kin’s ID in the MIS. |
name | string | Full name of the next of kin. |
telephone_home | string nullable |
Home phone contact number |
telephone_work | string nullable |
Contact number at work |
telephone_mobile | string nullable |
Mobile number |
telephone_primary | string nullable |
Primary contact number |
email_primary | string nullable |
Primary email address |
email_work | string nullable |
Email address at work |
email_home | string nullable |
Personal email address |
created_at | datetime | When the record was added to Wonde. |
updated_at | datetime | When the record was last updated on Wonde. |
Employee Qualifications Object
Response Body
{
"id": "A756877067",
"mis_id": "247e407366c87edf49d57e3f7bd8f5802139301d",
"employee": "A1375078684",
"title": "BSc",
"qualification": "Bachelor of Science",
"date_awarded": {
"date": "2014-05-21 16:21:45.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"level": "Other First Degree or equivalent",
"comments": "this is a comment",
"first_subject": "Others in physical sciences - F900",
"second_subject": null,
"class_of_degree": "Upper second class honours",
"country_of_origin": "British",
"verified": 1,
"created_at": {
"date": "2014-05-21 16:21:45.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"updated_at": {
"date": "2014-05-21 16:21:45.000000",
"timezone_type": 3,
"timezone": "UTC"
}
}
You need the employees qualifications read permission to view this object.
Name | Type | Description |
---|---|---|
id | string | The ID of the object. |
mis_id | string | The qualification’s ID in the MIS. |
employee | string | Wonde ID of the employee. |
title | string | Title or code of the qualification |
qualification | string | Description of the qualification |
date_awarded | date/td> | Date when the qualification was awarded |
level | string nullable |
Level of qualification |
comments | string nullable |
Any notes or comments |
first_subject | string nullable |
First subject of qualification |
second_subject | string nullable |
Second subject of qualification |
class_of_degree | string nullable |
Class of degree |
country_of_origin | string nullable |
Country where the qualification was done |
verified | boolean | Whether the qualification is verified true and correct |
created_at | datetime | When the record was added to Wonde. |
updated_at | datetime | When the record was last updated on Wonde. |
Employment Checks Object
Response Body
{
"id": "A1057690068",
"mis_id": "9d534c2547769993aa2ee43979b7729de0eb49f3",
"employee": "A500460806",
"type": "List 99",
"clearance_date": {
"date": "2014-05-21 16:21:45.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"expires_on": {
"date": "2014-05-21 16:21:45.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"reference_number": "R66348",
"document_number": "D06239237",
"notes": null,
"authenticated_by": null,
"created_at": {
"date": "2014-05-21 16:21:45.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"updated_at": {
"date": "2014-05-21 16:21:45.000000",
"timezone_type": 3,
"timezone": "UTC"
}
}
You need the employees employment checks read permission to view this object.
Name | Type | Description |
---|---|---|
id | string | The ID of the object. |
mis_id | string | The qualification’s ID in the MIS. |
employee | string | Wonde ID of the employee. |
type | string | Type of employment check |
clearance_date | date | Date when the check was done |
expires_on | date/td> | Date of expiration |
reference_number | string nullable |
Reference number |
document_number | string nullable |
Document reference number |
notes | string nullable |
Any note or comment about the employment check |
authenticated_by | string nullable |
Who verified the employment check |
created_at | datetime | When the record was added to Wonde. |
updated_at | datetime | When the record was last updated on Wonde. |
Employee Absences
GET Employee Absences
Curl example
curl "https://api.wonde.com/v1.0/schools/{school_id}/employee-absences"
-H "Authorization: Bearer API_ACCESS_TOKEN"
curl "https://api.wonde.com/v1.0/schools/{school_id}/employee-absences/{employee_absence}"
-H "Authorization: Bearer API_ACCESS_TOKEN"
Response Body
{
"data": [
{
"id": "A1744353885",
"mis_id": "0sfo4-wfer-r3gg23-nm762ca-098j",
"employee": "A7639428573",
"start_at": {
"date": "2016-08-02 08:30:00.000000",
"timezone_type": 3,
"timezone": "Europe/London"
},
"end_at": {
"date": "2016-08-05 08:30:00.000000",
"timezone_type": 3,
"timezone": "Europe/London"
},
"working_days": 3,
"number_of_hours": 24,
"absence_type": "Sickness",
"illness_category": "Minor injury",
"authorised_pay_rate": "Full pay",
"absence_note": "Employee was feeling unwell",
"created_at": {
"date": "2016-08-06 09:14:51.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"updated_at": {
"date": "2016-08-06 09:14:51.000000",
"timezone_type": 3,
"timezone": "UTC"
}
},
{
"id": "A8294679863",
"mis_id": "f7s8g-4fow-r987da-gd9s84d-31n2",
"employee": "A9037288054",
"start_at": {
"date": "2016-09-15 08:30:00.000000",
"timezone_type": 3,
"timezone": "Europe/London"
},
"end_at": {
"date": "2016-09-16 08:30:00.000000",
"timezone_type": 3,
"timezone": "Europe/London"
},
"working_days": 1,
"number_of_hours": 8,
"absence_type": "Sickness",
"illness_category": "Food poisoning",
"authorised_pay_rate": "Full pay",
"absence_note": "Not feeling well, will be in tomorrow",
"annual_leave": true,
"created_at": {
"date": "2016-09-17 11:45:01.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"updated_at": {
"date": "2016-09-17 11:45:01.000000",
"timezone_type": 3,
"timezone": "UTC"
}
}
],
"meta": {
"pagination": {
"next": "https://api.wonde.com/v1.0/schools/{school_id}/employee-absences/?page=2",
"previous": null,
"more": true,
"per_page": "2",
"current_page": 1
}
}
}
Url parameters
Name | type | Description |
---|---|---|
updated_after | date | Return rows modified after date. |
updated_before | date | Return rows modified before date. |
per_page | int | Amount of rows to return. |
include | string | Comma separated list of objects to include. |
absence_start_date_before | date | Return rows where absences start before date. |
absence_start_date_after | date | Return rows where absences start after date. |
absence_start_date_from | date | Return rows where absences start from date. |
absence_start_date_to | date | Return rows where absences start to date. |
absence_end_date_before | date | Return rows where absences end before date. |
absence_end_date_after | date | Return rows where absences end after date. |
absence_end_date_from | date | Return rows where absences end from date. |
absence_end_date_to | date | Return rows where absences end to date. |
employee | id | Only absences associated to provided employee. |
Related objects
Name | Relationship |
---|---|
employee | one |
POST Employee Absences
Curl example
curl -X POST -H "Authorization: Bearer API_ACCESS_TOKEN" -H "Content-Type: application/json" -d '{
"employee_absence": [
{
"employee_id": "A1849765024",
"start_at": "2018-01-29 08:00:00",
"end_at": "2018-01-30 12:00:00",
"working_days": "1.5",
"number_of_hours": "12",
"absence_type": "sic",
"illness_category": "A311585473",
"authorised_pay_rate": "f",
"absence_note": "Absence due to illness."
"absence_code": "A311585473"
}
]}' "https://api.wonde.com/v1.0/schools/{school_id}/employee-absences"
- You will need the employees-absence.write Wonde permission.
Request body
Request Body
{
"employee_absence": [
{
"employee_id": "A960618364",
"start_at": "2018-01-29 08:00:00",
"end_at": "AM",
"working_days": "1.5",
"number_of_hours": "12",
"absence_type": "sic",
"illness_category": "A2054198853",
"authorised_pay_rate": "A1329183376",
"absence_note": "Absence due to illness.",
"absence_code": "A1986776951"
},
{
"employee_id": "A1516828227",
"start_at": "2015-12-14",
"end_at": "AM",
"working_days": "2",
"number_of_hours": "16",
"absence_type": "unath",
"illness_category": "dig",
"authorised_pay_rate": "A1986776951",
"absence_note": "Absence due to illness.",
"absence_code": "A1986776951"
}
]
}
An example of the request body is provided on the right.
The attribute values that must be set to successfully create employee absences are:
Name | type | Required | Description |
---|---|---|---|
employee_id | string | Yes | The Wonde ID for the employee. |
start_at | datetime | Yes | The absence’s start date and time. |
end_at | datetime | Yes | The absence’s end date and time. Required for Bromcom |
working_days | decimal | Yes | The number of working days the employee is absent. |
number_of_hours | decimal | Yes | The number of hours the employee is absent. |
absence_type | string | Yes | Type of absence. |
illness_category | string | No | Category of illness. Required for Bromcom |
authorised_pay_rate | string | Yes | Applicable pay rate for absence. |
absence_note | string nullable |
No | Notes relevant to absence. |
absence_code | string | No | Absence code. Required for Bromcom |
Response body
Response Body
{
"writeback_id": "A18098738"
}
If your request fails validation the response will contain the validation errors. If your request passes validation you will receive a writeback_id which can be used to check the status of the writeback.
PUT Employee Absence
Curl example
curl -X PUT -H "Authorization: Bearer API_ACCESS_TOKEN" -H "Content-Type: application/json" -d '{
"start_at": "2018-01-29 08:00:00",
"end_at": "2018-01-30 12:00:00",
"working_days": "1.5",
"number_of_hours": "12",
"absence_type": "sic",
"illness_category": "A311585473",
"authorised_pay_rate": "f",
"absence_note": "Absence due to illness.",
"absence_code": "A311585473"
}' "https://api.wonde.com/v1.0/schools/{school_id}/employee-absences/{absence_id}"
To edit a single existing employee absence record just send a PUT request to the employee absence item's url with the accompanying request body.
- You will need the employees-absence.write Wonde permission.
Request body
Request Body
{
"start_at": "2018-01-29 08:00:00",
"end_at": "2018-01-30 12:00:00",
"working_days": "1.5",
"number_of_hours": "12",
"absence_type": "sic",
"illness_category": "A311585473",
"authorised_pay_rate": "A1329183376",
"absence_note": "Absence due to illness.",
"absence_code": "A1329183376"
}
An example of the request body is provided on the right.
The attribute values that must be set to successfully create employee absences are:
Name | type | Required | Description |
---|---|---|---|
start_at | datetime | Yes | The absence’s start date and time. |
end_at | datetime | Yes | The absence’s end date and time. Required for Bromcom |
working_days | decimal | Yes | The number of working days the employee is absent. |
number_of_hours | decimal | Yes | The number of hours the employee is absent. |
absence_type | string | Yes | Type of absence. |
authorised_pay_rate | string | Yes | Applicable pay rate for absence. |
absence_note | string nullable |
Yes | Notes relevant to absence. |
absence_code | string | No | Absence code. Required for Bromcom |
Response body
Response Body
{
"writeback_id": "A18098738"
}
If your request fails validation the response will contain the validation errors. If your request passes validation you will receive a writeback_id which can be used to check the status of the writeback.
DELETE Employee Absence
Curl example
curl -X "DELETE" "https://api.wonde.com/v1.0/schools/{school_id}/employee-absences/{employee_absence_id}"
-H "Authorization: Bearer API_ACCESS_TOKEN"
You need the employees-absence.delete permission to perform this action.
To delete an employee absence record just send a delete request to employee absence item's url.
Employee Absence Object
Response Body
{
"id": "A1744353885",
"mis_id": "0sfo4-wfer-r3gg23-nm762ca-098j",
"employee": "A7639428573",
"start_at": {
"date": "2016-08-02 08:30:00.000000",
"timezone_type": 3,
"timezone": "Europe/London"
"end_at": {
"date": "2016-08-05 08:30:00.000000",
"timezone_type": 3,
"timezone": "Europe/London"
"working_days": 3,
"number_of_hours": 24,
"absence_type": "Sickness",
"illness_category": "Minor injury",
"authorised_pay_rate": "Full pay",
"absence_note": "Twisted ankle",
"annual_leave": true,
"created_at": {
"date": "2016-08-06 09:14:51.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"updated_at": {
"date": "2016-08-06 09:14:51.000000",
"timezone_type": 3,
"timezone": "UTC"
}
}
You need the employees-absence.read permission to view this object.
Name | Type | Description |
---|---|---|
id | string | The ID of the object. |
mis_id | string | The employee absence’s ID in the MIS. |
employee | nullable string |
The employee this absence belongs to. |
start_at | nullable string |
When the absence began. |
end_at | string | When the absence ended. |
working_days | string nullable |
The amount of working days the employee absence spanned over. |
number_of_hours | nullable string |
The amount of working hours the employee absence spanned over. |
absence_type | string | The type of employee absence. |
illness_category | string nullable |
The category of the employee absence. |
authorised_pay_rate | string | The type of pay rate for the employee absence |
absence_note | string | The note associated with the employee absence |
annual_leave | boolean | Whether the absence is classified as annual leave. |
created_at | datetime | When the record was added to Wonde. |
updated_at | datetime | When the record was last updated on Wonde. |
Employee Absence Attributes
Curl example
curl "https://api.wonde.com/v1.0/schools/{school_id}/employee-absences/attributes"
-H "Authorization: Bearer API_ACCESS_TOKEN"
Response Body
{
"data": [
{
"id": "A1886858204",
"mis_id": "75",
"type": "ILLNESS_CATEGORY",
"code": "DIG",
"active": true,
"description": "Digestive illness",
"created_at": {
"date": "2018-01-19 13:21:01.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"updated_at": {
"date": "2018-01-19 13:21:01.000000",
"timezone_type": 3,
"timezone": "UTC"
}
},
{
"id": "A572063017",
"mis_id": "76",
"type": "ABSENCE_TYPE",
"code": "TRA",
"active": true,
"description": "Training",
"created_at": {
"date": "2018-01-19 13:21:01.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"updated_at": {
"date": "2018-01-19 13:21:01.000000",
"timezone_type": 3,
"timezone": "UTC"
}
}
],
"meta": {
"pagination": {
"next": "https://api.wonde.com/v1.0/schools/{school_id}/employee-absences/attributes?page=2",
"previous": null,
"more": true,
"per_page": 50,
"current_page": 1
}
}
}
You need the employees-absence.read permission to view this resource.
In SIMS, employee absence records are made from multiple select box values. To make it easy to add employee absence records, we provide the possible options for these select boxes. When creating an employee absence record you can provide the CODE or the ID for the select box value.
It is important that you check the code is valid for a school as missing or disabled codes will not pass Wonde's validation.
Type | Information / Examples |
---|---|
ABSENCE_TYPE | This is the absence type category. |
ILLNESS_CATEGORY |
This is the illness type category.
Not all absences will be attributed to an illness, so this is not a required field. |
AUTHORISED_PAY_RATE | This is the authorised pay rate category. |
Events
GET Events
Curl example
curl "https://api.wonde.com/v1.0/schools/{school_id}/events"
-H "Authorization: Bearer API_ACCESS_TOKEN"
curl "https://api.wonde.com/v1.0/schools/{school_id}/events/{event_id}"
-H "Authorization: Bearer API_ACCESS_TOKEN"
Response Body
{
"data": [
{
"id": "A1529934786",
"mis_id": "2345",
"description": "Planned whole or partial school closure",
"type": null,
"start_at": {
"date": "2016-08-31 00:00:00.000000",
"timezone_type": 3,
"timezone": "Europe/London"
},
"end_at": {
"date": "2016-08-31 23:59:59.000000",
"timezone_type": 3,
"timezone": "Europe/London"
},
"created_at": {
"date": "2016-07-14 10:26:12.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"updated_at": {
"date": "2016-07-15 09:59:05.000000",
"timezone_type": 3,
"timezone": "UTC"
}
},
{
"id": "A1362597725",
"mis_id": "2634",
"description": "Planned whole or partial school closure",
"type": null,
"start_at": {
"date": "2016-08-30 00:00:00.000000",
"timezone_type": 3,
"timezone": "Europe/London"
},
"end_at": {
"date": "2016-08-30 23:59:59.000000",
"timezone_type": 3,
"timezone": "Europe/London"
},
"created_at": {
"date": "2016-07-14 10:26:12.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"updated_at": {
"date": "2016-07-15 09:59:05.000000",
"timezone_type": 3,
"timezone": "UTC"
}
}
],
"meta": {
"pagination": {
"next": "https://api.wonde.com/v1.0/schools/{school_id}/events?page=2",
"previous": null,
"more": true,
"per_page": 50,
"current_page": 1
},
"includes": []
}
}
Url parameters
Name | type | Description |
---|---|---|
end_before | date | Return entries with end_at before date. |
end_after | date | Return entries with end_at after date. |
start_before | date | Return entries with start_at before date. |
start_after | date | Return entries with start_at after date. |
updated_after | date | Return rows modified after date. |
updated_before | date | Return rows modified before date. |
type | string | Returns rows with the supplied type, can be comma separated to return multiple types. |
per_page | int | Amount of rows to return. |
include | string | Comma separated list of objects to include. |
Events Object
Response Body
{
"id": "A1529934786",
"mis_id": "2345",
"description": "Planned whole or partial school closure",
"type": null,
"start_at": {
"date": "2016-08-31 00:00:00.000000",
"timezone_type": 3,
"timezone": "Europe/London"
},
"end_at": {
"date": "2016-08-31 23:59:59.000000",
"timezone_type": 3,
"timezone": "Europe/London"
},
"created_at": {
"date": "2016-07-14 10:26:12.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"updated_at": {
"date": "2016-07-15 09:59:05.000000",
"timezone_type": 3,
"timezone": "UTC"
}
}
You need the events read permission to view this object.
Name | Type | Description |
---|---|---|
id | string | The ID of the object. |
mis_id | string | The event’s ID in the MIS. |
description | nullable string |
The event’s description. |
type | nullable string |
The event’s type. |
start_at | date | The event’s start date. |
end_at | date | The event’s end date. |
created_at | datetime | When the record was added to Wonde. |
updated_at | datetime | When the record was last updated on Wonde. |
Extended Details
Extended Details Object
This object is available under the student & employee endpoints.
Response Body
{
"next_of_kin": null,
"religion": "Christian",
"ethnicity": "White - English",
"ethnicity_code": "WENG",
"nationality": "English",
"birth_place": "Newmarket",
"custody_alert": true,
"custody_details": "Father has access",
"dietary_needs": "No nuts of any type\/quantity, No pork",
"paramedical_support": "Physiotherapy, Speech Therapy",
"sen_status": null,
"first_language": "ENG",
"in_lea_care": false,
"ever_in_care": false,
"free_school_meals": false,
"free_school_meals_6": false,
"english_as_additional_language": null,
"english_as_additional_language_status": Fluent,
"premium_pupil_indicator": false,
"premium_pupil_eligible": false,
"premium_pupil_notes": "",
"service_children_indicator": true,
"enrolment_status": "SINGLE REGISTRATION",
"gifted_and_talented_status": true,
"national_insurance_number": "GE427539B",
"application_status": "Admitted",
"boarding_status": "Weekly",
"marital_status": "Single",
"child_protection_plan": true,
"child_in_need": false,
"youth_support_services_agreement": "Yes",
"responsible_care_authority": "England",
"leaver_destination": "Sir John Cass's Foundation Primary School",
"fsm_review_date": {
"date": "2018-02-05",
"timezone_type": 3,
"timezone": "Europe/London"
},
}
Name | Type | Description |
---|---|---|
next_of_kin | string nullable |
|
religion | string nullable |
|
ethnicity | string nullable |
|
ethnicity_code | string nullable |
Code representing ethnicity. |
nationality | string nullable |
|
birth_place | string nullable |
|
custody_alert | boolean nullable |
|
custody_details | string nullable |
|
dietary_needs | string nullable |
|
paramedical_support | string nullable |
|
sen_status | string nullable |
|
first_language | string nullable |
|
in_lea_care | boolean nullable |
Is the person in local education authorities care. |
ever_in_care | boolean nullable |
Has the person ever been in care. |
free_school_meals | boolean nullable |
Does the person receive free school meals. |
free_school_meals_6 | boolean nullable |
Has the person received free school meals in last 6 years. |
english_as_additional_language | boolean nullable |
Is english not the person’s first language. |
english_as_additional_language_status | string nullable |
|
premium_pupil_indicator | boolean nullable |
Details on this field is provided by Department for Education. |
premium_pupil_eligible | boolean nullable |
Eligible for the above. |
premium_pupil_notes | string nullable |
Details on this field is provided by Department for Education. |
service_children_indicator | boolean nullable |
|
enrolment_status | string nullable |
|
gifted_and_talented_status | boolean nullable |
|
national_insurance_number | string nullable |
|
application_status | string nullable |
Application status for pre-admission students. |
boarding_status | string nullable |
Boarding status for students. |
marital_status | string nullable |
|
child_protection_plan | boolean nullable |
This data will be available for students, pre-admission students and leavers |
child_in_need | boolean nullable |
This data will be available for students, pre-admission students and leavers |
youth_support_services_agreement | string nullable |
Consent for pupil data to be shared with Connexions |
responsible_care_authority | string nullable |
Responsible care authority for student |
leaver_destination | string nullable |
|
fsm_review_date | date nullable |
Free school meals review date |
Exclusions
GET Exclusions
Curl example
curl "https://api.wonde.com/v1.0/schools/{school_id}/exclusions"
-H "Authorization: Bearer API_ACCESS_TOKEN"
curl "https://api.wonde.com/v1.0/schools/{school_id}/exclusions/{exclusion_id}"
-H "Authorization: Bearer API_ACCESS_TOKEN"
Response Body
{
"data": [
{
"id": "A132297389",
"mis_id": "272",
"type": "Permanent",
"type_code": "PERM",
"reason": "Bullying",
"reason_code": "BU",
"start_date": {
"date": "2018-02-05 00:00:00.000000",
"timezone_type": 3,
"timezone": "Europe/London"
},
"start_session": null,
"end_date": null,
"end_session": null,
"sessions": "0.00",
"days": "0.00",
"academic_year": "2017/2018",
"term": "Spring Term",
"comments": "Parents were not cooperative",
"agencies_involved": null,
"discipline_committee_date": {
"date": "2018-02-12 00:00:00.000000",
"timezone_type": 3,
"timezone": "Europe/London"
},
"discipline_committee_result": "Exclusion Stands",
"discipline_committee_reinstatement_date": null,
"discipline_committee_representation_made": false,
"appeal_received": true,
"appeal_result": "Reinstatement",
"appeal_result_date": {
"date": "2018-02-19 00:00:00.000000",
"timezone_type": 3,
"timezone": "Europe/London"
},
"appeal_reinstatement_date": {
"date": "2018-02-21 00:00:00.000000",
"timezone_type": 3,
"timezone": "Europe/London"
},
"created_at": {
"date": "2018-07-03 11:09:21.000000",
"timezone_type": 3,
"timezone": "Europe/London"
},
"updated_at": {
"date": "2018-07-03 11:09:21.000000",
"timezone_type": 3,
"timezone": "Europe/London"
}
},
{
"id": "A53279963",
"mis_id": "273",
"type": "Fixed Term",
"type_code": "FIXD",
"reason": "Other",
"reason_code": "OT",
"start_date": {
"date": "2018-03-12 00:00:00.000000",
"timezone_type": 3,
"timezone": "Europe/London"
},
"start_session": "AM",
"end_date": {
"date": "2018-03-14 00:00:00.000000",
"timezone_type": 3,
"timezone": "Europe/London"
},
"end_session": "PM",
"sessions": "6.00",
"days": "3.00",
"academic_year": "2017/2018",
"term": "Spring Term",
"comments": null,
"agencies_involved": null,
"discipline_committee_date": null,
"discipline_committee_result": null,
"discipline_committee_reinstatement_date": null,
"discipline_committee_representation_made": null,
"appeal_received": false,
"appeal_result": null,
"appeal_result_date": null,
"appeal_reinstatement_date": null,
"created_at": {
"date": "2018-07-03 11:09:22.000000",
"timezone_type": 3,
"timezone": "Europe/London"
},
"updated_at": {
"date": "2018-07-03 11:09:22.000000",
"timezone_type": 3,
"timezone": "Europe/London"
}
}
],
"meta": {
"pagination": {
"next": "https://api.wonde.com/v1.0/schools/{school_id}/exclusions?page=2",
"previous": null,
"more": true,
"per_page": 50,
"current_page": 1
},
"includes": [
"student"
"student-leaver"
"student-pre-admission"
]
}
}
Url parameters
Name | type | Description |
---|---|---|
start_after | date | Return entries with start_date after date. |
start_before | date | Return entries with start_date before date. |
end_after | date | Return entries with end_date after date. |
end_before | date | Return entries with end_date before date. |
updated_after | date | Return rows modified after date. |
updated_before | date | Return rows modified before date. |
type | string | Returns rows with the supplied type, can be comma separated to return multiple types. |
type_code | string | Returns rows with the supplied type code, can be comma separated to return multiple types. |
reason | string | Returns rows with the supplied reason, can be comma separated to return multiple types. |
reason_code | string | Returns rows with the supplied reason_code, can be comma separated to return multiple types. |
per_page | int | Amount of rows to return. |
include | string | Comma separated list of objects to include. |
Related objects
Name | Relationship |
---|---|
student | one |
student-leaver | one |
student-pre-admission | one |
Exclusions Object
Response Body
{
"id": "A132297389",
"mis_id": "272",
"type": "Permanent",
"type_code": "PERM",
"reason": "Bullying",
"reason_code": "BU",
"start_date": {
"date": "2018-02-05 00:00:00.000000",
"timezone_type": 3,
"timezone": "Europe/London"
},
"start_session": null,
"end_date": null,
"end_session": null,
"sessions": "0.00",
"days": "0.00",
"academic_year": "2017/2018",
"term": "Spring Term",
"comments": "Parents were not cooperative",
"agencies_involved": null,
"discipline_committee_date": {
"date": "2018-02-12 00:00:00.000000",
"timezone_type": 3,
"timezone": "Europe/London"
},
"discipline_committee_result": "Exclusion Stands",
"discipline_committee_reinstatement_date": null,
"discipline_committee_representation_made": false,
"appeal_received": true,
"appeal_result": "Reinstatement",
"appeal_result_date": {
"date": "2018-02-19 00:00:00.000000",
"timezone_type": 3,
"timezone": "Europe/London"
},
"appeal_reinstatement_date": {
"date": "2018-02-21 00:00:00.000000",
"timezone_type": 3,
"timezone": "Europe/London"
},
"created_at": {
"date": "2018-07-03 11:09:21.000000",
"timezone_type": 3,
"timezone": "Europe/London"
},
"updated_at": {
"date": "2018-07-03 11:09:21.000000",
"timezone_type": 3,
"timezone": "Europe/London"
}
}
You need the exclusions read permission to view this object.
Name | Type | Description |
---|---|---|
id | string | The ID of the object. |
mis_id | string | The exclusion’s ID in the MIS. |
type | nullable string |
Type of exclusion. |
type_code | nullable string |
Type code for exclusion. |
reason | nullable string |
Reason for exclusion. |
reason_code | nullable string |
Reason code for exclusion. |
start_date | date | When the exclusion starts. |
start_session | nullable string |
The session (AM/PM) when the exclusion starts. |
end_date | nullable date |
When the exclusion ends. |
end_session | nullable string |
The session (AM/PM) when exclusion starts. |
sessions | nullable decimal |
Amount of sessions the exclusion spans over. |
days | nullable decimal |
Amount of days the exclusion spans over. |
academic_year | nullable string |
The academic year when the exclusion occurred. |
term | nullable string |
The term when the exclusion occurred. |
comments | nullable string |
|
agencies_involved | nullable string |
Any agencies that were involved in exclusion. |
discipline_committee_date | nullable date |
Date of discipline committee. |
discipline_committee_result | nullable string |
Outcome decided by discipline committee. |
discipline_committee_reinstatement_date | nullable date |
The reinstatement date decided by the discipline committee. |
discipline_committee_representation_made | nullable boolean |
Whether the parents were present in the discipline committee. |
appeal_received | nullable boolean |
Whether an appeal has been received for the exclusion. |
appeal_result | nullable string |
Result of the appeal. |
appeal_result_date | nullable date |
Date of the appeal result. |
appeal_reinstatement_date | nullable date |
The reinstatement date decided from the appeal. |
created_at | datetime | When the record was created on Wonde. |
updated_at | datetime | When the record was last updated on Wonde. |
Groups
GET Groups
Curl example
curl "https://api.wonde.com/v1.0/schools/{school_id}/groups"
-H "Authorization: Bearer API_ACCESS_TOKEN"
curl "https://api.wonde.com/v1.0/schools/{school_id}/groups/{group_id}"
-H "Authorization: Bearer API_ACCESS_TOKEN"
Response Body
{
"data": [
{
"id": "A1329183376",
"mis_id": "34",
"name": "10",
"code": "10",
"type": "YEAR",
"description": "Year 10",
"notes": null,
"restored_at": {
"date": "2015-10-29 14:56:29.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"created_at": {
"date": "2015-10-29 14:56:29.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"updated_at": {
"date": "2015-10-29 14:56:29.000000",
"timezone_type": 3,
"timezone": "UTC"
}
},
{
"id": "A1161584171",
"mis_id": "425",
"name": "10A",
"code": "10A",
"type": "REGISTRATION",
"description": "10A",
"notes": null,
"restored_at": {
"date": "2015-10-29 14:56:29.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"created_at": {
"date": "2015-10-29 14:56:29.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"updated_at": {
"date": "2015-10-29 14:56:29.000000",
"timezone_type": 3,
"timezone": "UTC"
}
}
],
"meta": {
"pagination": {
"next": "https://api.wonde.com/v1.0/schools/{school_id}/groups/?page=2",
"previous": null,
"more": true,
"per_page": "2",
"current_page": 1
},
"includes": [
"students",
"employees"
]
}
}
Url parameters
Name | type | Description |
---|---|---|
updated_after | date | Return rows modified after date. |
updated_before | date | Return rows modified before date. |
per_page | int | Amount of rows to return. |
include | string | Comma separated list of objects to include. |
has_students | any | Only return groups that have students. |
has_employees | any | Only return groups that have employees. |
type | string | Only return groups with the provided type.
|
Related objects
Name | Relationship |
---|---|
students | many |
employees | many |
Group Object
Response Body
{
"id": "A1161584171",
"mis_id": "425",
"name": "10A",
"code": "10A",
"type": "REGISTRATION",
"description": "10A",
"notes": null,
"restored_at": {
"date": "2015-10-29 14:56:29.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"created_at": {
"date": "2015-10-29 14:56:29.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"updated_at": {
"date": "2015-10-29 14:56:29.000000",
"timezone_type": 3,
"timezone": "UTC"
}
}
You need the groups read permission to view this object.
Name | Type | Description |
---|---|---|
id | string | The ID of the object. |
mis_id | string | The group’s ID in the MIS. |
name | string | Group name. |
code | string | Group code. |
type | string |
|
description | string nullable |
|
notes | string nullable |
|
restored_at | datetime | When the Wonde ID was restored from the deletions data |
created_at | datetime | When the record was added to Wonde. |
updated_at | datetime | When the record was last updated on Wonde. |
Lessons
GET Lessons
Please be aware that the lessons endpoint will only return one academic week of data at a time. Even in the event of specifying the ‘lessons_start_after’ parameter you would only return that academic week.
The 'employee' include (‘?include=employee’) denotes the primary employee for the lesson.
You can utilise the 'employees' include (‘?include=employees’) to get all employees associated with the lesson.
Curl example
curl "https://api.wonde.com/v1.0/schools/{school_id}/lessons"
-H "Authorization: Bearer API_ACCESS_TOKEN"
curl "https://api.wonde.com/v1.0/schools/{school_id}/lessons/{lesson_id}"
-H "Authorization: Bearer API_ACCESS_TOKEN"
Response Body
{
"data": [
{
"id": "A749126774",
"room": "A1161584171",
"period": "A1161584171",
"period_instance_id": "40860",
"employee": null,
"start_at": {
"date": "2016-02-22 09:15:00.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"end_at": {
"date": "2016-02-22 10:15:00.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"created_at": {
"date": "2016-02-08 11:25:28.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"updated_at": {
"date": "2016-02-08 11:25:28.000000",
"timezone_type": 3,
"timezone": "UTC"
}
}
],
"meta": {
"pagination": {
"next": "https://api.wonde.com/v1.0/schools/A1329183376/lessons?page=2",
"previous": null,
"more": true,
"per_page": 50,
"current_page": 1
},
"includes": [
"class",
"employee",
"employees",
"period",
"room"
]
}
}
Url parameters
Name | type | Description |
---|---|---|
updated_after | date | Return rows modified after date. |
updated_before | date | Return rows modified before date. |
lessons_start_after | date | Return rows starting after date. |
lessons_start_before | date | Return rows starting before date. |
per_page | int | Amount of rows to return. |
include | string | Comma separated list of objects to include. |
Related objects
Name | Relationship |
---|---|
period | one |
class | one |
employee | one |
employees | many |
room | one |
Lesson Object
Response Body
{
"id": "A473090460",
"room": "A1529934786",
"period": "A1299388415",
"employee_id": "A1656263924",
"period_instance_id": "40716",
"alternative": false,
"start_at": {
"date": "2015-12-16 09:15:00.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"end_at": {
"date": "2015-12-16 10:15:00.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"created_at": {
"date": "2015-12-03 19:11:55.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"updated_at": {
"date": "2015-12-03 19:11:55.000000",
"timezone_type": 3,
"timezone": "UTC"
}
}
You need the lessons read permission to view this object.
Name | Type | Description |
---|---|---|
id | string | The ID of the object. |
room | string nullable |
The ID of the room the lesson will be taught in. |
period | string nullable |
The ID of the period the lesson occurs during. |
employee_id | string nullable |
The ID of the main class teacher for this lesson. |
period_instance_id | int nullable |
All lessons happening during the same period have the same period_instance_id. This value can be used to match lessons and attendance as SIMS records a mark for a period instance not a lesson instance. |
alternative | boolean nullable |
The lesson is an alternative to another lesson. |
start_at | datetime | When the lesson starts. |
end_at | datetime | When the lesson ends. |
created_at | datetime | When the record was added to Wonde. |
updated_at | datetime | When the record was last updated on Wonde. |
Medical Conditions
GET Medical Conditions
Curl example
curl "https://api.wonde.com/v1.0/schools/{school_id}/medical-conditions"
-H "Authorization: Bearer API_ACCESS_TOKEN"
curl "https://api.wonde.com/v1.0/schools/{school_id}/medical-conditions/{medical_condition_id}"
-H "Authorization: Bearer API_ACCESS_TOKEN"
Response Body
{
"data": [
{
"id": "A305357470",
"description": "Asthma",
"date_received": {
"date": "2011-10-31 00:00:00.000000",
"timezone_type": 3,
"timezone": "Europe/London"
},
"severity": "Mild",
"created_at": {
"date": "2016-06-03 09:17:10.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"updated_at": {
"date": "2016-06-03 09:17:10.000000",
"timezone_type": 3,
"timezone": "UTC"
}
},
{
"id": "A674629161",
"description": "Myalgic Encephalopathy",
"date_received": {
"date": "2013-08-22 00:00:00.000000",
"timezone_type": 3,
"timezone": "Europe/London"
},
"severity": "Mild",
"created_at": {
"date": "2016-06-03 09:17:10.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"updated_at": {
"date": "2016-06-03 09:17:10.000000",
"timezone_type": 3,
"timezone": "UTC"
}
}
],
"meta": {
"pagination": {
"next": "https://api.wonde.com/v1.0/schools/A1329183376/medical_conditions?page=2",
"previous": null,
"more": true,
"per_page": "2",
"current_page": 1
},
"includes": [
"student",
"notes"
]
}
}
Url parameters
Name | type | Description |
---|---|---|
updated_after | date | Return rows modified after date. |
updated_before | date | Return rows modified before date. |
per_page | int | Amount of rows to return. |
include | string | Comma separated list of objects to include. |
Related objects
Name | Relationship |
---|---|
student | one |
notes | many |
Medical Condition Object
Response Body
{
"id": "A305357470",
"description": "Asthma",
"date_received": {
"date": "2011-10-31 00:00:00.000000",
"timezone_type": 3,
"timezone": "Europe/London"
},
"severity": "Mild",
"created_at": {
"date": "2016-06-03 09:17:10.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"updated_at": {
"date": "2016-06-03 09:17:10.000000",
"timezone_type": 3,
"timezone": "UTC"
}
}
You need the medical conditions read permission to view this object.
Name | Type | Description |
---|---|---|
id | string | The ID of the object. |
description | string | Text description of the medical condition. |
date_received | date nullable |
Date information about the medical condition was provided to the school. |
severity | string | Severity of the medical condition. |
created_at | datetime | When the record was added to Wonde. |
updated_at | datetime | When the record was last updated on Wonde. |
Medical Events
GET Medical Events
Curl example
curl "https://api.wonde.com/v1.0/schools/{school_id}/medical-events"
-H "Authorization: Bearer API_ACCESS_TOKEN"
curl "https://api.wonde.com/v1.0/schools/{school_id}/medical-events/{medical_event_id}"
-H "Authorization: Bearer API_ACCESS_TOKEN"
Response Body
{
"data": [
{
"id": "A2022114844",
"description": "General Illness",
"type": "Illness",
"date": {
"date": "2014-09-09 00:00:00.000000",
"timezone_type": 3,
"timezone": "Europe/London"
},
"follow_up_date": null,
"created_at": {
"date": "2016-06-03 09:17:10.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"updated_at": {
"date": "2016-06-03 09:17:10.000000",
"timezone_type": 3,
"timezone": "UTC"
}
},
{
"id": "A2130434999",
"description": "Accident",
"type": "Accident",
"date": {
"date": "2014-09-10 00:00:00.000000",
"timezone_type": 3,
"timezone": "Europe/London"
},
"follow_up_date": null,
"created_at": {
"date": "2016-06-03 09:17:10.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"updated_at": {
"date": "2016-06-03 09:17:10.000000",
"timezone_type": 3,
"timezone": "UTC"
}
}
],
"meta": {
"pagination": {
"next": "https://api.wonde.com/v1.0/schools/A1329183376/medical_events?page=2",
"previous": null,
"more": true,
"per_page": "2",
"current_page": 1
},
"includes": [
"student",
"notes"
]
}
}
Url parameters
Name | type | Description |
---|---|---|
updated_after | date | Return rows modified after date. |
updated_before | date | Return rows modified before date. |
per_page | int | Amount of rows to return. |
include | string | Comma separated list of objects to include. |
Related objects
Name | Relationship |
---|---|
student | one |
notes | many |
Medical Events Object
Response Body
{
"id": "A15840368",
"description": "General Illness",
"type": "Illness",
"date": {
"date": "2014-09-15 00:00:00.000000",
"timezone_type": 3,
"timezone": "Europe/London"
},
"follow_up_date": null,
"created_at": {
"date": "2016-06-03 09:17:10.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"updated_at": {
"date": "2016-06-03 09:17:10.000000",
"timezone_type": 3,
"timezone": "UTC"
}
}
You need the medical events read permission to view this object.
Name | Type | Description |
---|---|---|
id | string | The ID of the object. |
description | string | Text description of the medical event. |
type | string | The type of the medical event. |
date | date nullable |
The date of the medical event. |
follow_up_date | date nullable |
The follow up date of the medical event. |
created_at | datetime | When the record was added to Wonde. |
updated_at | datetime | When the record was last updated on Wonde. |
Medical Notes
GET Medical Notes
Curl example
curl "https://api.wonde.com/v1.0/schools/{school_id}/medical-notes"
-H "Authorization: Bearer API_ACCESS_TOKEN"
curl "https://api.wonde.com/v1.0/schools/{school_id}/medical-notes/{medical_note_id}"
-H "Authorization: Bearer API_ACCESS_TOKEN"
Response Body
{
"data": [
{
"id": "A2022114844",
"title": "Historical Details",
"note": "Condition received from previous school. Diagnosed in 2007.",
"date": {
"date": "2014-09-09 00:00:00.000000",
"timezone_type": 3,
"timezone": "Europe/London"
},
"follow_up_date": null,
"created_at": {
"date": "2016-06-03 09:17:10.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"updated_at": {
"date": "2016-06-03 09:17:10.000000",
"timezone_type": 3,
"timezone": "UTC"
}
},
{
"id": "A2130434999",
"title": "Accident",
"note": "Accident",
"date": {
"date": "2014-09-10 00:00:00.000000",
"timezone_type": 3,
"timezone": "Europe/London"
},
"follow_up_date": null,
"created_at": {
"date": "2016-06-03 09:17:10.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"updated_at": {
"date": "2016-06-03 09:17:10.000000",
"timezone_type": 3,
"timezone": "UTC"
}
}
],
"meta": {
"pagination": {
"next": "https://api.wonde.com/v1.0/schools/A1329183376/medical_notes?page=2",
"previous": null,
"more": true,
"per_page": "2",
"current_page": 1
},
"includes": [
"student"
]
}
}
To retrieve medical notes:
- Use the
medical-notes
endpoint for notes NOT related to a medical condition. - Use the
medical-condition
endpoint withnotes
included for notes associated with a condition.
Url parameters
Name | type | Description |
---|---|---|
updated_after | date | Return rows modified after date. |
updated_before | date | Return rows modified before date. |
per_page | int | Amount of rows to return. |
include | string | Comma separated list of objects to include. |
Related objects
Name | Relationship |
---|---|
student | one |
Medical Notes Object
Response Body
{
"id": "A1529934786",
"mis_id": "5575",
"title": "Historical Details",
"note": "Condition received from previous school. Diagnosed in 2007.",
"created_at": {
"date": "2016-10-31 17:04:19.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"updated_at": {
"date": "2016-10-31 17:04:19.000000",
"timezone_type": 3,
"timezone": "UTC"
}
}
You need the medical conditions read permission to view this object.
Name | Type | Description |
---|---|---|
id | string | The ID of the object. |
mis_id | string | The note’s ID in the MIS. |
title | string nullable |
Title of note. |
note | string nullable |
Main body of note. |
created_at | datetime | When the record was added to Wonde. |
updated_at | datetime | When the record was last updated on Wonde. |
Periods
GET Periods
Curl example
curl "https://api.wonde.com/v1.0/schools/{school_id}/periods"
-H "Authorization: Bearer API_ACCESS_TOKEN"
curl "https://api.wonde.com/v1.0/schools/{school_id}/periods/{period_id}"
-H "Authorization: Bearer API_ACCESS_TOKEN"
Response Body
{
"data": [
{
"id": "A1329183376",
"start_time": "09:05:00",
"end_time": "09:45:00",
"name": "Mon 1",
"day": "monday",
"day_number": 1,
"description": "Monday 1st",
"created_at": {
"date": "2015-10-29 10:32:22.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"updated_at": {
"date": "2015-10-29 10:32:22.000000",
"timezone_type": 3,
"timezone": "UTC"
}
},
{
"id": "A1161584171",
"start_time": "09:15:00",
"end_time": "10:15:00",
"name": "Mon:1",
"day": "monday",
"day_number": 1,
"description": "Monday 1st",
"created_at": {
"date": "2015-10-29 10:32:22.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"updated_at": {
"date": "2015-10-29 10:32:22.000000",
"timezone_type": 3,
"timezone": "UTC"
}
}
],
"meta": {
"pagination": {
"next": "https://api.wonde.com/v1.0/schools/{school_id}/periods/?page=2",
"previous": null,
"more": true,
"per_page": "2",
"current_page": 1
},
"includes": [
"lessons",
"lessons.room",
"lessons.class",
"lessons.class.subject"
]
}
}
Url parameters
Name | type | Description |
---|---|---|
updated_after | date | Return rows modified after date. |
updated_before | date | Return rows modified before date. |
per_page | int | Amount of rows to return. |
include | string | Comma separated list of objects to include. |
day_number | int nullable |
View period day number data |
description | string nullable |
Description |
Related objects
Name | Relationship |
---|---|
lessons | many |
lessons.room | many > one |
lessons.class | many > one |
lessons.class.subject | many > one > one |
Period Object
Response Body
{
"id": "A1161584171",
"start_time": "09:15:00",
"end_time": "10:15:00",
"name": "Mon:1",
"day": "monday",
"created_at": {
"date": "2015-10-29 10:32:22.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"updated_at": {
"date": "2015-10-29 10:32:22.000000",
"timezone_type": 3,
"timezone": "UTC"
}
}
You need the lessons read permission to view this object.
Name | Type | Description |
---|---|---|
id | string | The ID of the object. |
start_time | string | The time the period starts. |
end_time | string | The time the period ends. |
name | string | The period’s name. |
day | string | |
created_at | datetime | When the record was added to Wonde. |
updated_at | datetime | When the record was last updated on Wonde. |
Photos
GET Photos
Curl example
curl "https://api.wonde.com/v1.0/schools/{school_id}/photos"
-H "Authorization: Bearer API_ACCESS_TOKEN"
curl "https://api.wonde.com/v1.0/schools/{school_id}/photos/{photo_id}"
-H "Authorization: Bearer API_ACCESS_TOKEN"
Response Body
{
"data": [
{
"id": "A1376464588",
"content": "base64 encoded string",
"person_id": "A2032141745",
"person_mis_id": "1",
"person_type": "STUDENT",
"created_at": {
"date": "2015-10-29 14:59:09.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"updated_at": {
"date": "2015-10-29 14:59:09.000000",
"timezone_type": 3,
"timezone": "UTC"
}
},
{
"id": "A681203527",
"content": "base64 encoded string",
"person_id": "A2073136658",
"person_mis_id": "2",
"person_type": "EMPLOYEE",
"created_at": {
"date": "2015-10-29 14:59:15.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"updated_at": {
"date": "2015-10-29 14:59:15.000000",
"timezone_type": 3,
"timezone": "UTC"
}
}
],
"meta": {
"pagination": {
"next": "https://api.wonde.com/v1.0/schools/{school_id}/photos/?page=2",
"previous": null,
"more": true,
"per_page": "2",
"current_page": 1
},
"includes": []
}
}
Url parameters
Name | type | Description |
---|---|---|
updated_after | date | Return rows modified after date. |
updated_before | date | Return rows modified before date. |
per_page | int | Amount of rows to return. |
include | string | Comma separated list of objects to include. |
Photo Object
Response Body
{
"id": "A681203527",
"content": "base64 encoded string",
"person_id": "A2073136658",
"person_mis_id": "1",
"person_type": "STUDENT",
"created_at": {
"date": "2015-10-29 14:59:15.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"updated_at": {
"date": "2015-10-29 14:59:15.000000",
"timezone_type": 3,
"timezone": "UTC"
}
}
You need the photo read permission to view this object.
Name | Type | Description |
---|---|---|
id | string | The ID of the object. |
content | string | Base 64 encoded image. |
person_id | string | student / contact / employee id. |
person_mis_id | string | student / contact / employee mis id. Only present when accessing object through photos endpoint. |
person_type | string |
|
created_at | datetime | When the record was added to Wonde. |
updated_at | datetime | When the record was last updated on Wonde. |
Rooms
GET Rooms
Curl example
curl "https://api.wonde.com/v1.0/schools/{school_id}/rooms"
-H "Authorization: Bearer API_ACCESS_TOKEN"
curl "https://api.wonde.com/v1.0/schools/{school_id}/rooms/{room_id}"
-H "Authorization: Bearer API_ACCESS_TOKEN"
Response Body
{
"data": [
{
"id": "A1329183376",
"code": "A1",
"name": "Art Room 1",
"created_at": {
"date": "2015-10-29 10:27:44.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"updated_at": {
"date": "2015-10-29 10:27:44.000000",
"timezone_type": 3,
"timezone": "UTC"
}
},
{
"id": "A1161584171",
"code": "A2",
"name": "Art Room 2",
"created_at": {
"date": "2015-10-29 10:27:44.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"updated_at": {
"date": "2015-10-29 10:27:44.000000",
"timezone_type": 3,
"timezone": "UTC"
}
}
],
"meta": {
"pagination": {
"next": "https://api.wonde.com/v1.0/schools/{school_id}/rooms/?per_page=2&page=2",
"previous": null,
"more": true,
"per_page": "2",
"current_page": 1
},
"includes": [
"lessons",
"lessons.class",
"lessons.class.subject",
"lessons.period"
]
}
}
Url parameters
Name | type | Description |
---|---|---|
updated_after | date | Return rows modified after date. |
updated_before | date | Return rows modified before date. |
per_page | int | Amount of rows to return. |
include | string | Comma separated list of objects to include. |
Room Object
Response Body
{
"id": "A1329183376",
"code": "A1",
"name": "Art Room 1",
"created_at": {
"date": "2015-10-29 10:27:44.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"updated_at": {
"date": "2015-10-29 10:27:44.000000",
"timezone_type": 3,
"timezone": "UTC"
}
}
The subject object contains basic information about an academic subject. You need the room read permission to view this object.
Name | Type | Description |
---|---|---|
id | string | The ID of the object. |
mis_id | string | The room's ID in the MIS. |
code | string | Short identifier for the room. |
name | string | The room’s name. |
created_at | datetime | When the record was added to Wonde. |
updated_at | datetime | When the record was last updated on Wonde. |
Students
Wonde holds records for students that are currently on roll at the school, as well as more limited information for students who will be attending soon (see Students Pre-Admittance below).
GET students
Curl example
curl "https://api.wonde.com/v1.0/schools/{school_id}/students"
-H "Authorization: Bearer API_ACCESS_TOKEN"
curl "https://api.wonde.com/v1.0/schools/{school_id}/students/{student_id}"
-H "Authorization: Bearer API_ACCESS_TOKEN"
Response Body
{
"data": [
{
"id": "A1749191433",
"upi": "8d444684b7aa79bc97f8594a4aab7ce3",
"mis_id": "9919",
"initials": "RB",
"title": "Ms",
"surname": "Bennett",
"forename": "Ruth",
"middle_names": null,
"legal_surname": "Bennett",
"legal_forename": "Ruth",
"gender": "FEMALE",
"gender_identity": null,
"date_of_birth": {
"date": "2002-09-29 00:00:00.000000",
"timezone_type": 3,
"timezone": "Europe/London"
},
"restored_at": {
"date": "2015-10-22 20:11:20.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"created_at": {
"date": "2015-10-22 20:11:20.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"updated_at": {
"date": "2015-10-22 20:11:20.000000",
"timezone_type": 3,
"timezone": "UTC"
}
},
{
"id": "A1849765024",
"mis_id": "8404",
"initials": "TS",
"title": "Mr",
"surname": "Smith",
"forename": "Tom",
"middle_names": null,
"legal_surname": "Smith",
"legal_forename": "Tom",
"gender": "MALE",
"gender_identity": null,
"date_of_birth": {
"date": "2000-07-24 00:00:00.000000",
"timezone_type": 3,
"timezone": "Europe/London"
},
"restored_at": {
"date": "2015-10-22 20:11:20.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"created_at": {
"date": "2015-10-22 20:11:20.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"updated_at": {
"date": "2015-10-22 20:11:20.000000",
"timezone_type": 3,
"timezone": "UTC"
}
}
],
"meta": {
"pagination": {
"next": "https://api.wonde.com/v1.0/schools/{school_id}/students/?page=2",
"previous": null,
"more": true,
"per_page": 50,
"current_page": 1
},
"includes": [
"classes",
"classes.subject",
"education_details",
"contact_details",
"attendance_summary",
"extended_details",
"contacts",
"contacts.contact_details",
"year",
"year.employees",
"house",
"house.employees",
"registration",
"registration.employees",
"groups",
"groups.employees",
"campus",
"permissions",
"identifiers",
"behaviours",
"behaviours.employees",
"achievements",
"achievements.employees",
"photo",
"sen_needs",
"siblings",
"medical_conditions",
"medical_conditions.notes",
"medical_events",
"medical_notes",
"doctors",
"in_care_date_ranges",
"sen_date_ranges",
"fsm_date_ranges",
"user_defined_fields",
"results",
"results.aspect",
"exclusions",
"child_protection_plan_date_ranges",
"upfsm_exception_date_ranges"
"regional_data"
]
}
}
Url parameters
Name | type | Description |
---|---|---|
updated_after | date | Return rows modified after date. |
updated_before | date | Return rows modified before date. |
per_page | int | Amount of rows to return. |
include | string | Comma separated list of objects to include. |
aspect_id | string | If including results, restrict to those for this aspect ID only. |
user_defined_field | string | Filter students by user defined field key. |
only_user_defined_fields | string | Filter user defined fields by comma separated list. |
only_upns | string | Filter UPNs by comma separated list. |
only_mis_ids | string | Filter MIS ids by comma separated list. |
Related objects
Student Object
Response Body
{
"id": "A1749191433",
"upi": "8d444684b7aa79bc97f8594a4aab7ce3",
"mis_id": "9919",
"initials": "TS",
"title": "Mr",
"surname": "Smith",
"forename": "Tom",
"middle_names": null,
"legal_surname": "Smith",
"legal_forename": "Tom",
"gender": "MALE",
"gender_identity": null,
"date_of_birth": {
"date": "2002-09-29 00:00:00.000000",
"timezone_type": 3,
"timezone": "Europe/London"
},
"restored_at": {
"date": "2002-09-29 00:00:00.000000",
"timezone_type": 3,
"timezone": "Europe/London"
},
"created_at": {
"date": "2016-07-14 10:26:12.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"updated_at": {
"date": "2016-07-15 09:59:05.000000",
"timezone_type": 3,
"timezone": "UTC"
}
}
You need the students read permission to view this object.
Name | Type | Description |
---|---|---|
id | string | The ID of the object. |
upi | string | Unique Person Identifier - This field is the mis_id and school_id combined to create a unique hash.
There are benefits of using the UPI when matching users, for example, when a student is disenrolled the student will be removed from Wonde. If that student is then re-enrolled the Wonde ID will change but the UPI will remain the same. Make sure to not mistake this field with UPN. |
mis_id | string | The student’s ID in the MIS. |
initials | string nullable |
The student’s initials. |
title | nullable string |
The student’s title. |
surname | string | The student’s last name. |
forename | string nullable |
The student’s first name. |
middle_names | nullable string |
The student’s middle names. |
legal_surname | string nullable |
The student’s legal last name. |
legal_forename | string nullable |
The student’s legal first name. |
gender | string | The student’s gender.
|
gender_identity | string | The student’s gender identity.
The student’s inner concept of self as male, female, neither or a blend of both. This definition is inline with the guidance provided by the DfE. |
date_of_birth | date | The student’s date of birth. |
restored_at | datetime | When the Wonde ID was restored from the deletions data |
created_at | datetime | When the record was added to Wonde. |
updated_at | datetime | When the record was last updated on Wonde. |
Education Details Object
Response Body
{
"education_details": {
"data": {
"admission_number": "004504",
"upn": "N823432113104",
"local_upn": "N823432113107",
"former_upn": "N823432113102",
"learner_number": "5142333720",
"current_nc_year": "6",
"part_time": false,
"part_time_rate": 1,
"admission_date": {
"date": "2014-09-03 00:00:00.000000",
"timezone_type": 3,
"timezone": "Europe/London"
},
"leaving_date": {
"date": "2016-09-03 00:00:00.000000",
"timezone_type": 3,
"timezone": "Europe/London"
}
}
}
}
You need the students read permission to view this object.
Name | Type | Description |
---|---|---|
admission_number | string nullable |
The student admission number is an auto incrementing ID given to students in SIMS. |
local_upn | string nullable |
Local authority unique pupil number. |
upn | string nullable |
Unique pupil number. |
former_upn | string nullable |
Previous unique pupil number. |
learner_number | string nullable |
Unique learner number. |
current_nc_year | string nullable |
Current National Curriculum year. |
part_time | boolean nullable |
Is the student part time. |
part_time_rate | string nullable |
Rate of the part time. |
admission_date | date nullable |
Student’s admission date. |
leaving_date | date nullable |
Student’s leaving date. |
Student Identifiers Object
Response Body
{
"identifiers": {
"data": {
"active_directory_username": "username",
"barcode": "ADSVASW32131FE",
"username": "JBloggs12",
"passport_number": "5313480007"
"department_id": "38547534"
}
}
}
You need the students read permission to view this object.
Name | Type | Description |
---|---|---|
active_directory_username | string nullable |
The active directory username used to identify the student. |
barcode | string nullable |
A barcode used to identify the student. |
username | string nullable |
The MIS username used to identify the student. |
passport_number | string nullable |
A passport number used to identify the student. |
department_id | string nullable |
A department pupil ID used to identify the student. |
Special Education Needs Object
Response Body
{
"id": "A1329183376",
"description": "Stan's behaviour is proving to be challenging and he seems to have difficulty in relating to his peers.",
"rank": 1,
"category_code": "SEMH",
"category_description": "Social, Emotional and Mental Health",
"type_code": "SEMH",
"type_description": "Social, Emotional and Mental Health",
"start_date": {
"date": "2014-10-20 00:00:00.000000",
"timezone_type": 3,
"timezone": "Europe/London"
},
"end_date": null,
"created_at": {
"date": "2016-06-03 08:57:35.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"updated_at": {
"date": "2016-06-03 08:57:35.000000",
"timezone_type": 3,
"timezone": "UTC"
}
}
You need the special education needs read permission to view this object.
Name | Type | Description |
---|---|---|
id | string | The ID of the object. |
description | string nullable |
Text note describing the special education need. |
rank | integer nullable |
The ranking of the special need. |
category_code | string nullable |
The code assigned to the category the special need falls into. |
category_description | string nullable |
Text note describing the category. |
type_code | string nullable |
The code assigned to the type of the special need. |
type_description | string nullable |
The description assigned to the type of the special need. |
start_date | date nullable |
|
end_date | date nullable |
|
created_at | datetime | When the record was added to Wonde. |
updated_at | datetime | When the record was last updated on Wonde. |
Siblings Object
Response Body
{
"siblings": {
"data": [
{
"id": "A1329183376",
"name": "Ruth Bennett",
"on_roll": true,
"student": "A1161584171",
"data_of_birth": {
"date": "2000-07-24 00:00:00.000000",
"timezone_type": 3,
"timezone": "Europe/London"
},
"created_at": {
"date": "2017-02-28 21:21:07.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"updated_at": {
"date": "2017-02-28 21:21:07.000000",
"timezone_type": 3,
"timezone": "UTC"
}
}
]
}
}
You need the siblings read permission to view this object.
Name | Type | Description |
---|---|---|
id | string | The ID of the object. |
name | string nullable |
The sibling's name. |
on_roll | boolean nullable |
Is the sibling on roll at the school. |
student | string object nullable |
This is the ID of the student this sibling relates to. This field will be null if the sibling is no longer on role. This field will be replaced by the student object when using the siblings.student include. |
date_of_birth | date | The sibling’s date of birth. |
created_at | datetime | When the record was added to Wonde. |
updated_at | datetime | When the record was last updated on Wonde. |
Permissions Object
Response Body
{
"permissions": {
"data": {
"photograph_student": false,
"internet_access": false,
"sex_education": false,
"school_visit": false,
"data_exchange": false,
"copyright_permission": false,
"photo_permissions": "Web,School Publications"
}
}
}
You need the students read permission to view this object.
Name | Type | Description |
---|---|---|
photograph_student | boolean nullable |
Have the parents given photograph student permission. |
internet_access | boolean nullable |
Have the parents given internet access permission. |
sex_education | boolean nullable |
Have the parents given sex education permission. |
school_visit | boolean nullable |
Have the parents given school visit permission. |
data_exchange | boolean nullable |
Have the parents given data exchange permission. |
copyright_permission | boolean nullable |
Have the parents given copyright permission. |
photo_permissions | string nullable |
Determines which photo permissions were approved by parents - stored as comma separated values. (Each MIS/SIS can have different values so this will need to be considered when consuming this data). |
Attribute Date Ranges Object
You need the students read permission to view this object.
Response Body
{
"mis_id": "123",
"start_date": {
"date": "2016-09-06 00:00:00.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"end_date": {
"date": "2016-07-31 23:59:59.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"notes": "This is a comment",
"created_at": {
"date": "2016-03-16 15:23:42.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"updated_at": {
"date": "2016-03-16 15:23:42.000000",
"timezone_type": 3,
"timezone": "UTC"
},
}
Name | Type | Description |
---|---|---|
mis_id | string | The group’s ID in the MIS. |
start_date | datetime nullable |
Date attribute started. |
notes | string nullable |
Additional information |
end_date | datetime nullable |
Date attribute ended. |
created_at | datetime | When the record was added to Wonde. |
updated_at | datetime | When the record was last updated on Wonde. |
User Defined Fields Object
Response Body
{
"id": "A1947362953",
"key": "Locker Number",
"value": "37",
"type": "int",
"created_at": {
"date": "2017-06-12 18:14:49.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"updated_at": {
"date": "2017-06-12 18:14:49.000000",
"timezone_type": 3,
"timezone": "UTC"
}
}
You need the user defined fields read permission to view this object.
Name | Type | Description |
---|---|---|
id | string | The ID of the object. |
key | string |
The key of the custom field. |
value | string nullable |
The value of the custom field. |
type | string nullable |
The data type of the custom field. |
created_at | datetime | When the record was added to Wonde. |
updated_at | datetime | When the record was last updated on Wonde. |
Dietary Details Object
Response Body
{
"dietary_details": {
"data": {
"monday_meal_type": "School Meal",
"monday_meal_type_code": "SM",
"tuesday_meal_type": "Packed Lunch",
"tuesday_meal_type_code": "PL",
"wednesday_meal_type": "Packed Lunch",
"wednesday_meal_type_code": "PL",
"thursday_meal_type": "Packed Lunch",
"thursday_meal_type_code": "PL",
"friday_meal_type": "Packed Lunch",
"friday_meal_type_code": "PL",
"created_at": {
"date": "2018-08-09 14:39:20.000000",
"timezone_type": 3,
"timezone": "Europe/London"
},
"updated_at": {
"date": "2018-08-09 14:39:20.000000",
"timezone_type": 3,
"timezone": "Europe/London"
}
}
}
}
You need the dietary details read permission to view this object.
Name | Type | Description |
---|---|---|
id | string | The ID of the object. |
mis_id | string | The dietary detail's ID in the MIS. |
monday_meal_type | string | The meal type for Monday. |
monday_meal_type_code | string | The meal type code for Monday. |
tuesday_meal_type | string | The meal type for Tuesday. |
tuesday_meal_type_code | string | The meal type code for Tuesday. |
wednesday_meal_type | string | The meal type for Wednesday. |
wednesday_meal_type_code | string | The meal type code for Wednesday. |
thursday_meal_type | string | The meal type for Thursday. |
thursday_meal_type_code | string | The meal type code for Thursday. |
friday_meal_type | string | The meal type for Friday. |
friday_meal_type_code | string | The meal type code for Friday. |
created_at | datetime | When the record was added to Wonde. |
updated_at | datetime | When the record was last updated on Wonde. |
Regional Data Object
Response Body
{
"regional_data": {
"data": {
"taught_welsh_at_school": false,
"fsm_transitional_protection_effective_date": {
"date": "2014-09-03 00:00:00.000000",
"timezone_type": 3,
"timezone": "Europe/London"
},
"welsh_at_home": false,
"welsh_fluency": false,
"upfsm_eligibility": false,
"upfsm_exception": false
}
}
}
You need the regional data read permission to view this object.
Name | Type | Description |
---|---|---|
taught_welsh_at_school | text nullable |
UK region, Welsh specific field. |
fsm_transitional_protection_effective_date | date nullable |
UK region, Welsh specific field. |
welsh_at_home | text nullable |
UK region, Welsh specific field. |
welsh_fluency | text nullable |
UK region, Welsh specific field. |
upfsm_eligibility | boolean nullable |
UK region, Welsh specific field. Is student eligible for UPFSM. |
upfsm_exception | boolean nullable |
UK region, Welsh specific field. Does this student have an active exemption for UPFSM. |
aboriginality | string nullable |
Australia region specific field. |
government_id | string nullable |
Australia region specific field. |
government_mceetya | string nullable |
Australia region specific field. |
usi | string nullable |
Australia region specific field. |
srn | string nullable |
Australia region specific field. |
iwi | string nullable |
Australia region specific field. |
Pre-Admission Students
GET Pre-admission Students
Curl example
curl "https://api.wonde.com/v1.0/schools/{school_id}/students-pre-admission"
-H "Authorization: Bearer API_ACCESS_TOKEN"
curl "https://api.wonde.com/v1.0/schools/{school_id}/students-pre-admission/{student_id}"
-H "Authorization: Bearer API_ACCESS_TOKEN"
Response Body
{
"data": [
{
"id": "A1749191433",
"upi": "8d444684b7aa79bc97f8594a4aab7ce3",
"mis_id": "9919",
"initials": "RB",
"title": "Ms",
"surname": "Bennett",
"forename": "Ruth",
"middle_names": null,
"legal_surname": "Bennett",
"legal_forename": "Ruth",
"gender": "FEMALE",
"gender_identity": null,
"date_of_birth": {
"date": "2002-09-29 00:00:00.000000",
"timezone_type": 3,
"timezone": "Europe/London"
},
"restored_at": {
"date": "2015-10-22 20:11:20.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"created_at": {
"date": "2015-10-22 20:11:20.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"updated_at": {
"date": "2015-10-22 20:11:20.000000",
"timezone_type": 3,
"timezone": "UTC"
}
},
{
"id": "A1849765024",
"mis_id": "8404",
"initials": "TS",
"title": "Mr",
"surname": "Smith",
"forename": "Tom",
"middle_names": null,
"legal_surname": "Smith",
"legal_forename": "Tom",
"gender": "MALE",
"gender_identity": null,
"date_of_birth": {
"date": "2000-07-24 00:00:00.000000",
"timezone_type": 3,
"timezone": "Europe/London"
},
"restored_at": {
"date": "2015-10-22 20:11:20.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"created_at": {
"date": "2015-10-22 20:11:20.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"updated_at": {
"date": "2015-10-22 20:11:20.000000",
"timezone_type": 3,
"timezone": "UTC"
}
}
],
"meta": {
"pagination": {
"next": "https://api.wonde.com/v1.0/schools/{school_id}/students/?page=2",
"previous": null,
"more": true,
"per_page": 50,
"current_page": 1
},
"includes": [
"education_details",
"contact_details",
"extended_details",
"contacts",
"contacts.contact_details",
"groups",
"groups.employees",
"permissions"
]
}
}
While the information available on pre-admission students is broadly similar to other students, there are a few limitations to be aware of:
- Year, house and registration groups for pre-admission students are only available on some MIS/SIS.
- Next of kin, diet, first language, English as additional language, ethnicity and religion fields on the extended details object are not available from SIMS, and will therefore always be null.
Once a pre-admission student becomes a normal student, these limitations will no longer apply. They will be converted to a normal student object automatically (normally at the start of the new school year) and their Wonde ID will not change.
Url parameters
Name | type | Description |
---|---|---|
updated_after | date | Return rows modified after date. |
updated_before | date | Return rows modified before date. |
per_page | int | Amount of rows to return. |
include | string | Comma separated list of objects to include. |
Related objects
Name | Relationship |
---|---|
education_details | one |
contact_details | one |
extended_details | one |
contacts | many |
contacts.contact_details | many > one |
groups | many |
groups.employees | many > many |
permissions | one |
Pre-admission Student Object
Response Body
{
"id": "A1749191433",
"upi": "8d444684b7aa79bc97f8594a4aab7ce3",
"mis_id": "9919",
"initials": "TS",
"title": "Mr",
"surname": "Smith",
"forename": "Tom",
"middle_names": null,
"legal_surname": "Smith",
"legal_forename": "Tom",
"gender": "MALE",
"gender_identity": null,
"date_of_birth": {
"date": "2002-09-29 00:00:00.000000",
"timezone_type": 3,
"timezone": "Europe/London"
},
"restored_at": {
"date": "2016-07-14 10:26:12.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"created_at": {
"date": "2016-07-14 10:26:12.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"updated_at": {
"date": "2016-07-15 09:59:05.000000",
"timezone_type": 3,
"timezone": "UTC"
}
}
You need the students pre-admission read permission to view this object.
Name | Type | Description |
---|---|---|
id | string | The ID of the object. |
upi | string | Unique Person Identifier - This field is the mis_id and school_id combined to create a unique hash.
There are benefits of using the UPI when matching users, for example, when a student is disenrolled the student will be removed from Wonde. If that student is then re-enrolled the Wonde ID will change but the UPI will remain the same. Make sure to not mistake this field with UPN. |
mis_id | string | The student’s ID in the MIS. |
initials | string nullable |
The student’s initials. |
title | nullable string |
The student’s title. |
surname | string | The student’s last name. |
forename | string nullable |
The student’s first name. |
middle_names | nullable string |
The student’s middle names. |
legal_surname | string nullable |
The student’s legal last name. |
legal_forename | string nullable |
The student’s legal first name. |
gender | string | The student’s gender.
|
gender_identity | string | The student’s gender identity.
The student’s inner concept of self as male, female, neither or a blend of both. This definition is inline with the guidance provided by the DfE. |
date_of_birth | date | The student’s date of birth. |
restored_at | datetime | When the Wonde ID was restored from the deletions data |
created_at | datetime | When the record was added to Wonde. |
updated_at | datetime | When the record was last updated on Wonde. |
Education Details Object
Response Body
{
"education_details": {
"data": {
"admission_number": "004504",
"upn": "N823432113104",
"local_upn": "N823432113107",
"former_upn": "N823432113102",
"learner_number": "5142333720",
"current_nc_year": "6",
"part_time": false,
"part_time_rate": 1,
"admission_date": {
"date": "2014-09-03 00:00:00.000000",
"timezone_type": 3,
"timezone": "Europe/London"
},
"leaving_date": {
"date": "2016-09-03 00:00:00.000000",
"timezone_type": 3,
"timezone": "Europe/London"
}
}
}
}
You need the students pre-admission read permission to view this object.
Name | Type | Description |
---|---|---|
admission_number | string nullable |
The student admission number is an auto incrementing ID given to students in SIMS. |
local_upn | string nullable |
Local authority unique pupil number. |
upn | string nullable |
Unique pupil number. |
former_upn | string nullable |
Previous unique pupil number. |
learner_number | string nullable |
Unique learner number. |
current_nc_year | string nullable |
Current National Curriculum year. |
part_time | boolean nullable |
Is the student part time. |
part_time_rate | string nullable |
Rate of the part time. |
admission_date | date nullable |
Student’s admission date. |
leaving_date | date nullable |
Student’s leaving date. |
Pre-admission Student Identifiers Object
Response Body
{
"identifiers": {
"data": {
"barcode": "ADSVASW32131FE",
"active_directory_username": "username"
}
}
}
You need the students pre admission read permission to view this object.
Name | Type | Description |
---|---|---|
barcode | string nullable |
A barcode used to identify the student. |
active_directory_username | string nullable |
The active directory username used to identify the student. |
Permissions Object
Response Body
{
"permissions": {
"data": {
"photograph_student": false,
"internet_access": false,
"sex_education": false,
"school_visit": false,
"data_exchange": false,
"copyright_permission": false,
"photo_permissions": "Web,School Publications"
}
}
}
You need the students pre-admission read permission to view this object.
Name | Type | Description |
---|---|---|
photograph_student | boolean nullable |
Have the parents given photograph student permission. |
internet_access | boolean nullable |
Have the parents given internet access permission. |
sex_education | boolean nullable |
Have the parents given sex education permission. |
school_visit | boolean nullable |
Have the parents given school visit permission. |
data_exchange | boolean nullable |
Have the parents given data exchange permission. |
copyright_permission | boolean nullable |
Have the parents given copyright permission. |
photo_permissions | string nullable |
Determines which photo permissions were approved by parents - stored as comma separated values. (Each MIS/SIS can have different values so this will need to be considered when consuming this data). |
Student Leavers
GET Student Leavers
Curl example
curl "https://api.wonde.com/v1.0/schools/{school_id}/students-leaver"
-H "Authorization: Bearer API_ACCESS_TOKEN"
curl "https://api.wonde.com/v1.0/schools/{school_id}/students-leaver/{student_id}"
-H "Authorization: Bearer API_ACCESS_TOKEN"
Response Body
{
"data": [
{
"id": "A1749191433",
"upi": "8d444684b7aa79bc97f8594a4aab7ce3",
"mis_id": "9919",
"initials": "RB",
"title": "Ms",
"surname": "Bennett",
"forename": "Ruth",
"middle_names": null,
"legal_surname": "Bennett",
"legal_forename": "Ruth",
"gender": "FEMALE",
"gender_identity": null,
"date_of_birth": {
"date": "2002-09-29 00:00:00.000000",
"timezone_type": 3,
"timezone": "Europe/London"
},
"restored_at": {
"date": "2015-10-22 20:11:20.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"created_at": {
"date": "2015-10-22 20:11:20.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"updated_at": {
"date": "2015-10-22 20:11:20.000000",
"timezone_type": 3,
"timezone": "UTC"
},
},
{
"id": "A1849765024",
"mis_id": "8404",
"initials": "TS",
"title": "Mr",
"surname": "Smith",
"forename": "Tom",
"middle_names": null,
"legal_surname": "Smith",
"legal_forename": "Tom",
"gender": "MALE",
"gender_identity": null,
"date_of_birth": {
"date": "2000-07-24 00:00:00.000000",
"timezone_type": 3,
"timezone": "Europe/London"
},
"restored_at": {
"date": "2015-10-22 20:11:20.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"created_at": {
"date": "2015-10-22 20:11:20.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"updated_at": {
"date": "2015-10-22 20:11:20.000000",
"timezone_type": 3,
"timezone": "UTC"
}
}
],
"meta": {
"pagination": {
"next": "https://api.wonde.com/v1.0/schools/{school_id}/students-leaver/?page=2",
"previous": null,
"more": true,
"per_page": 50,
"current_page": 1
},
"includes": [
"education_details",
"contact_details",
"extended_details",
"permissions"
]
}
}
While the information available on leavers students is broadly similar to other students, there are a few limitations to be aware of:
- Year, house and registration groups and contacts are not available for leavers students.
Url parameters
Name | type | Description |
---|---|---|
updated_after | date | Return rows modified after date. |
updated_before | date | Return rows modified before date. |
per_page | int | Amount of rows to return. |
include | string | Comma separated list of objects to include. |
Related objects
Name | Relationship |
---|---|
education_details | one |
contact_details | one |
extended_details | one |
permissions | one |
Student Leavers Object
Response Body
{
"id": "A1749191433",
"upi": "8d444684b7aa79bc97f8594a4aab7ce3",
"mis_id": "9919",
"initials": "TS",
"title": "Mr",
"surname": "Smith",
"forename": "Tom",
"middle_names": null,
"legal_surname": "Smith",
"legal_forename": "Tom",
"gender": "MALE",
"gender_identity": null,
"date_of_birth": {
"date": "2002-09-29 00:00:00.000000",
"timezone_type": 3,
"timezone": "Europe/London"
},
"restored_at": {
"date": "2002-09-29 00:00:00.000000",
"timezone_type": 3,
"timezone": "Europe/London"
},
"created_at": {
"date": "2016-07-14 10:26:12.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"updated_at": {
"date": "2016-07-15 09:59:05.000000",
"timezone_type": 3,
"timezone": "UTC"
}
}
You need the students leavers read permission to view this object.
Name | Type | Description |
---|---|---|
id | string | The ID of the object. |
upi | string | Unique Person Identifier - This field is the mis_id and school_id combined to create a unique hash.
There are benefits of using the UPI when matching users, for example, when a student is disenrolled the student will be removed from Wonde. If that student is then re-enrolled the Wonde ID will change but the UPI will remain the same. Make sure to not mistake this field with UPN. |
mis_id | string | The student’s ID in the MIS. |
initials | string nullable |
The student’s initials. |
title | nullable string |
The student’s title. |
surname | string | The student’s last name. |
forename | string nullable |
The student’s first name. |
middle_names | nullable string |
The student’s middle names. |
legal_surname | string nullable |
The student’s legal last name. |
legal_forename | string nullable |
The student’s legal first name. |
gender | string | The student’s gender.
|
gender_identity | string | The student’s gender identity.
The student’s inner concept of self as male, female, neither or a blend of both. This definition is inline with the guidance provided by the DfE. |
date_of_birth | date | The student’s date of birth. |
restored_at | datetime | When the Wonde ID was restored from the deletions data |
created_at | datetime | When the record was added to Wonde. |
updated_at | datetime | When the record was last updated on Wonde. |
Education Details Object
Response Body
{
"education_details": {
"data": {
"admission_number": "004504",
"upn": "N823432113104",
"local_upn": "N823432113107",
"former_upn": "N823432113102",
"current_nc_year": "6",
"part_time": false,
"part_time_rate": 1,
"admission_date": {
"date": "2014-09-03 00:00:00.000000",
"timezone_type": 3,
"timezone": "Europe/London"
},
"leaving_date": {
"date": "2016-09-03 00:00:00.000000",
"timezone_type": 3,
"timezone": "Europe/London"
}
}
}
}
You need the students leavers read permission to view this object.
Name | Type | Description |
---|---|---|
admission_number | string nullable |
The student admission number is an auto incrementing ID given to students in SIMS. |
local_upn | string nullable |
Local authority unique pupil number. |
upn | string nullable |
Unique pupil number. |
former_upn | string nullable |
Previous unique pupil number. |
current_nc_year | string nullable |
Current National Curriculum year. |
part_time | boolean nullable |
Is the student part time. |
part_time_rate | string nullable |
Rate of the part time. |
admission_date | date nullable |
Student’s admission date. |
leaving_date | date nullable |
Student’s leaving date. |
Student Leavers Identifiers Object
Response Body
{
"identifiers": {
"data": {
"barcode": "ADSVASW32131FE",
"active_directory_username": "username"
}
}
}
You need the students leavers read permission to view this object.
Name | Type | Description |
---|---|---|
barcode | string nullable |
A barcode used to identify the student. |
active_directory_username | string nullable |
The active directory username used to identify the student. |
Permissions Object
Response Body
{
"permissions": {
"data": {
"photograph_student": false,
"internet_access": false,
"sex_education": false,
"school_visit": false,
"data_exchange": false,
"copyright_permission": false,
"photo_permissions": "Web,School Publications"
}
}
}
You need the students leavers read permission to view this object.
Name | Type | Description |
---|---|---|
photograph_student | boolean nullable |
Have the parents given photograph student permission. |
internet_access | boolean nullable |
Have the parents given internet access permission. |
sex_education | boolean nullable |
Have the parents given sex education permission. |
school_visit | boolean nullable |
Have the parents given school visit permission. |
data_exchange | boolean nullable |
Have the parents given data exchange permission. |
copyright_permission | boolean nullable |
Have the parents given copyright permission. |
photo_permissions | string nullable |
Determines which photo permissions were approved by parents - stored as comma separated values. (Each MIS/SIS can have different values so this will need to be considered when consuming this data). |
Student Absences
GET Student Absences
Curl example
curl "https://api.wonde.com/v1.0/schools/{school_id}/attendance/absence"
-H "Authorization: Bearer API_ACCESS_TOKEN"
curl "https://api.wonde.com/v1.0/schools/{school_id}/attendance/absence/{student_absence}"
-H "Authorization: Bearer API_ACCESS_TOKEN"
Response Body
{
"data": [
{
"id": "A1744353885",
"mis_id": "0sfo4-wfer-r3gg23-nm762ca-098j",
"student": "A7639428573",
"event_type": "sign in",
"start_at": {
"date": "2016-08-02 08:30:00.000000",
"timezone_type": 3,
"timezone": "Europe/London"
},
"end_at": {
"date": "2016-08-02 09:30:00.000000",
"timezone_type": 3,
"timezone": "Europe/London"
},
"absence_type": "Justified with school policy",
"reason": "School Nurse",
"comment": "Sickness",
"authorised_by": "A8294679863",
"created_at": {
"date": "2016-08-06 09:14:51.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"updated_at": {
"date": "2016-08-06 09:14:51.000000",
"timezone_type": 3,
"timezone": "UTC"
}
},
{
"id": "A1744353885",
"mis_id": "0sfo4-wfer-r3gg23-nm762ca-098j",
"student": "A7639428573",
"event_type": "sign out",
"start_at": {
"date": "2016-08-03 14:30:00.000000",
"timezone_type": 3,
"timezone": "Europe/London"
},
"end_at": {
"date": "2016-08-03 15:30:00.000000",
"timezone_type": 3,
"timezone": "Europe/London"
},
"absence_type": "Justified with school policy",
"reason": "School Nurse",
"comment": "Sickness",
"authorised_by": "A8294679863",
"created_at": {
"date": "2016-08-07 09:14:51.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"updated_at": {
"date": "2016-08-7 09:14:51.000000",
"timezone_type": 3,
"timezone": "UTC"
}
}
],
"meta": {
"pagination": {
"next": "https://api.wonde.com/v1.0/schools/{school_id}/attendance/absence/?page=2",
"previous": null,
"more": true,
"per_page": "2",
"current_page": 1
}
}
}
Url parameters
Name | type | Description |
---|---|---|
updated_after | date | Return rows modified after date. |
updated_before | date | Return rows modified before date. |
per_page | int | Amount of rows to return. |
include | string | Comma separated list of objects to include. |
absence_start_at_before | date | Return rows where absences start before date. |
absence_start_at_after | date | Return rows where absences start after date. |
absence_start_at_from | date | Return rows where absences start from date. |
absence_start_at_to | date | Return rows where absences start to date. |
absence_end_at_before | date | Return rows where absences end before date. |
absence_end_at_after | date | Return rows where absences end after date. |
absence_end_at_from | date | Return rows where absences end from date. |
absence_end_at_to | date | Return rows where absences end to date. |
student | id | Only absences associated to provided student. |
Related objects
Name | Relationship |
---|---|
student | one |
authorised_by | one |
POST Student Absences
Curl example
curl -X POST -H "Authorization: Bearer API_ACCESS_TOKEN" -H "Content-Type: application/json" -d '{
"absence": [
{
"student_id": "A1849765024",
"start_at": "2018-01-29 08:00:00",
"end_at": "2018-01-29 17:00:00",
"event_type": "sign in",
"absence_type": "Sickness",
"reason": "School nurse",
"comment": "Student caught flu.",
"authorised_by": "A960618364"
}
]}' "https://api.wonde.com/v1.0/schools/{school_id}/attendance/absence"
- You will need the student-absences.write Wonde permission.
Request body
Request Body
{
"absence": [
{
"student_id": "A1849765024",
"start_at": "2018-01-29 08:00:00",
"end_at": "2018-01-29 17:00:00",
"event_type": "sign in",
"absence_type": "Sickness",
"reason": "School nurse",
"comment": "Student caught flu",
"authorised_by": "A960618364"
},
{
"student_id": "A1849765024",
"start_at": "2018-01-29 08:00:00",
"end_at": "2018-01-29 14:00:00",
"event_type": "sign in",
"absence_type": "Sickness",
"reason": "School nurse",
"comment": "Student caught flu",
"authorised_by": "A960618364"
},
]
}
An example of the request body is provided on the right.
The attribute values that must be set to successfully create employee absences are:
Name | type | Required | Description |
---|---|---|---|
student_id | string | Yes | The Wonde ID for the student. |
start_at | datetime | Yes | The absence’s start date and time. |
end_at | datetime nullable |
No | The absence’s end date and time. |
event_type | string | Yes | The absence’s event type.
|
absence_type | string | Yes | Type of absence. See attributes ABSENCE_TYPE. |
reason | string | No | Reason of absence. See attributes ABSENCE_REASON. |
comment | string | No | Comment to absence. |
authorised_by | string | No | The Wonde ID for the employee. |
Response body
Response Body
{
"writeback_id": "A18098738"
}
If your request fails validation the response will contain the validation errors. If your request passes validation you will receive a writeback_id which can be used to check the status of the writeback.
Student Absence Object
Response Body
{
"id": "A1744353885",
"mis_id": "0sfo4-wfer-r3gg23-nm762ca-098j",
"student": "A7639428573",
"event_type": "sign in",
"start_at": {
"date": "2016-08-02 08:30:00.000000",
"timezone_type": 3,
"timezone": "Europe/London"
},
"end_at": {
"date": "2016-08-02 09:30:00.000000",
"timezone_type": 3,
"timezone": "Europe/London"
},
"absence_type": "Justified with school policy",
"reason": "School Nurse",
"comment": "Sickness",
"authorised_by": "A8294679863",
"created_at": {
"date": "2016-08-06 09:14:51.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"updated_at": {
"date": "2016-08-06 09:14:51.000000",
"timezone_type": 3,
"timezone": "UTC"
}
}
You need the student-absences.read permission to view this object.
Name | Type | Description |
---|---|---|
id | string | The ID of the object. |
mis_id | string | The student absence’s ID in the MIS. |
student | string | The student this absence belongs to. |
start_at | datetime | When the absence began. |
end_at | datetime | When the absence ended. |
absence_type | string | sign in |
reason | nullable string |
The reason of absence. |
comment | nullable string |
The comment of absence. |
authorised_by | string nullable |
The employee that authorised the absence. |
created_at | datetime | When the record was added to Wonde. |
updated_at | datetime | When the record was last updated on Wonde. |
Student Absence Attributes
Curl example
curl "https://api.wonde.com/v1.0/schools/{school_id}/attendance/absence/attributes"
-H "Authorization: Bearer API_ACCESS_TOKEN"
Response Body
{
"data": [
{
"id": "A1886858204",
"mis_id": "75",
"type": "ABSENCE_REASON",
"code": "DIG",
"active": true,
"description": "Digestive illness",
"created_at": {
"date": "2018-01-19 13:21:01.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"updated_at": {
"date": "2018-01-19 13:21:01.000000",
"timezone_type": 3,
"timezone": "UTC"
}
},
{
"id": "A572063017",
"mis_id": "76",
"type": "ABSENCE_TYPE",
"code": "TRA",
"active": true,
"description": "Training",
"created_at": {
"date": "2018-01-19 13:21:01.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"updated_at": {
"date": "2018-01-19 13:21:01.000000",
"timezone_type": 3,
"timezone": "UTC"
}
}
],
"meta": {
"pagination": {
"next": "https://api.wonde.com/v1.0/schools/{school_id}/attendance/absence/attributes?page=2",
"previous": null,
"more": true,
"per_page": 50,
"current_page": 1
}
}
}
You need the student-absences.read permission to view this resource.
Type | Information / Examples |
---|---|
ABSENCE_TYPE | This is the type of absence. This is required for Synergetic. |
ABSENCE_REASON |
This is the reason of absence.
Not all absences will be attributed to an illness, so this is not a required field. |
Subjects
GET Subjects
Curl example
curl "https://api.wonde.com/v1.0/schools/{school_id}/subjects"
-H "Authorization: Bearer API_ACCESS_TOKEN"
curl "https://api.wonde.com/v1.0/schools/{school_id}/subjects/{subject_id}"
-H "Authorization: Bearer API_ACCESS_TOKEN"
Response Body
{
"data": [
{
"id": "A1529934786",
"mis_id": 519,
"code": "Ar",
"name": "Art",
"active": true,
"created_at": {
"date": "2015-10-29 10:28:15.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"updated_at": {
"date": "2015-10-29 10:28:15.000000",
"timezone_type": 3,
"timezone": "UTC"
}
},
{
"id": "A1362597725",
"mis_id": 520,
"code": "Bi",
"name": "Biology",
"created_at": {
"date": "2015-10-29 10:28:15.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"updated_at": {
"date": "2015-10-29 10:28:15.000000",
"timezone_type": 3,
"timezone": "UTC"
}
}
],
"meta": {
"pagination": {
"next": "https://api.wonde.com/v1.0/schools/{school_id}/subjects/?page=2",
"previous": null,
"more": true,
"per_page": "2",
"current_page": 1
},
"includes": [
"classes",
"classes.lessons",
"classes.lessons.period",
"classes.lessons.room"
]
}
}
Url parameters
Name | type | Description |
---|---|---|
updated_after | date | Return rows modified after date. |
updated_before | date | Return rows modified before date. |
per_page | int | Amount of rows to return. |
include | string | Comma separated list of objects to include. |
subject_code | string | Return results with the provided subject code. |
subject_name | string | Return results with the provided subject name. |
Related objects
Name | Relationship |
---|---|
classes | many |
classes.lessons | many > many |
classes.lessons.period | many > many > one |
classes.lessons.room | many > many > one |
Subject Object
Response Body
{
"id": "A1362597725",
"mis_id": 520,
"code": "Bi",
"name": "Biology",
"active": true,
"created_at": {
"date": "2015-10-29 10:28:15.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"updated_at": {
"date": "2015-10-29 10:28:15.000000",
"timezone_type": 3,
"timezone": "UTC"
}
}
You need the subject read permission to view this object.
Name | Type | Description |
---|---|---|
id | string | The ID of the object. |
mis_id | string | The subject ID in the MIS. |
code | string | Short identifier for the subject. |
name | string | The subject’s name. |
active | boolean nullable |
Is the subject active. |
created_at | datetime | When the record was added to Wonde. |
updated_at | datetime | When the record was last updated on Wonde. |
Writebacks
GET Writeback Object
Curl example
curl "https://api.wonde.com/v1.0/writebacks/{writeback_id}"
-H "Authorization: Bearer API_ACCESS_TOKEN"
Response Body
{
"data":{
"id": "A1529934786",
"type": ACHIEVEMENT,
"status": "FAILED",
"last_attempt": null,
"next_attempt": null,
"created_at": {
"date": "2015-10-29 10:28:15.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"updated_at": {
"date": "2015-10-29 10:28:15.000000",
"timezone_type": 3,
"timezone": "UTC"
}
}
}
To POST a writeback please see the individual endpoints. The response from the POST will return a writeback ID which can be used with this endpoint to check the status of the writeback. Please see Webhooks if you would like to receive a notification of a status change of a writeback.
Name | Type | Description |
---|---|---|
id | string | The ID of the writeback. |
type | string | The type of writeback. |
status | string | The status of the writeback. |
last_attempt | string | The last time the writeback was attempted. |
next_attempt | string | The next time the writeback will be attempted. |
created_at | datetime | When the record was added to Wonde. |
updated_at | datetime | When the record was last updated on Wonde. |