Introduction
My Kinder Moments API allows schools to register teachers, students, parents and assign appropriate user permissions.
Terminology used in this document:
- Organisations : Refers to School, Early Learning Centre, Child Care Centre and Pre-Schools.
 - Enrollment : Refers to student classroom.
 
Server Address
$ curl https://www.mykindermoments.com
Authentication
Request Authorization Token
$ curl  https://www.mykindermoments.com/api/login \
-X POST \
-H "Content-Type: application/json" \
-d '{
        "username":"xxx",
        "password":"xxx"
    }' 
Successful Response:
{
  "username": "example@me.com",
  "roles": [
    "ROLE_ORG"
  ],
  "token_type": "Bearer",
  "access_token": "1l4sp5i1s5so6c2done0qv4ma4hpv67p"
}
Error Response: 400
My Kinder Moments expects Authorization token and API key to be included in all API requests in the http header section.
Example:
Authorization: Bearer 1l4sp5i1s5so6c2done0qv4ma4hpv67p
api_key : 18af1916-5a18-4a20-92a5-d25634b360db-school.com.au
You can get the Authorization token via a rest call.
For developer api key, please contact us @ info@mykindermoments.com
Get all organisations
Get all organisations associated with the account.
Request All Organisations:
$ curl  https://www.mykindermoments.com/api/get/organisations \
-X GET \
-H "Content-Type: application/json" \
-H "Authorization: Bearer xxx" \
-H "api_key: xxx" 
Successful Response:
{
  "status": "ok",
  "result": [
    {
      "name": "Haileybury - Keysborough",
      "organisationId": "f4236f3a-4ef7-4b5b-8265-f4e5bac213c1",
      "self": "https://www.mykindermoments.com/api/get/enrollments/f422613a-4ef7-4b5b-1285-f4e5bac213c1"
    },
    {
      "name": "Haileybury - Brighton",
      "organisationId": "fbc204c0-aeb3-4494-bdb6-858d6e7bcecb",
      "self": "https://www.mykindermoments.com/api/get/enrollments/v4a36f3a-4ef7-4b5b-8265-f4e5bac213c1"
    }
  ]
}  
This endpoint retrieves all organisations associated with the account.
HTTP Request
GET https://www.mykindermoments.com/api/get/organisations
Get all enrollments
Get all classroom enrollments for the given organisation id
Request All Enrollments:
$ curl  https://www.mykindermoments.com/api/get/enrollments/:id \
-X GET \
-H "Content-Type: application/json" \
-H "Authorization: Bearer xxx" \
-H "api_key: xxx" 
Successful Response:
{
  "organisationId": "f4236f3a-4ef7-4b5b-8265-f4e5bac213c1",
  "name": "Haileybury - Keysborough",
  "enrollments": [
    {
      "enrollmentId": "10ffe954-9f6a-4881-8942-2cd3efdd2762",
      "organisationId": "f4236f3a-4ef7-4b5b-8265-f4e5bac213c1",
      "name": "Reception C",
      "archived": false,
      "students" :[{
          "studentId": "5230ec16-0c8b-4a3f-aca9-5eb0f3f9c914",
          "externalStudentId": "haileyburyprofile#11",
          "lastUpdated": "2016-11-24T08:31:01Z",
          "organisationId": "f4236f3a-4ef7-4b5b-8265-f4e5bac213c1",
          "notes": "",
          "address": "",
          "dob": "2010-11-04T00:00:00Z",
          "studentName": "John Appleseed",
          "status": "active",
          "contactNo": "0423974617"
        },
        {
          "studentId": "c6e92a34-01ab-4856-9329-13c66734335f",
          "externalStudentId": "haileyburyprofile#12",
          "lastUpdated": "2016-11-24T08:54:39Z",
          "organisationId": "f4236f3a-4ef7-4b5b-8265-f4e5bac213c1",
          "notes": "",
          "address": "",
          "dob": "2010-11-05T00:00:00Z",
          "studentName": "Lisa Stevenson",
          "status": "active",
          "contactNo": ""
        },],
      "displayDate": 2016
    },
    {
      "enrollmentId": "51426b25-3845-4b08-a2e4-2dfa97264b48",
      "organisationId": "f4236f3a-4ef7-4b5b-8265-f4e5bac213c1",
      "name": "Pre Prep - S",
      "archived": false,
      "students" :[],
      "displayDate": 2016
    }
  ]
}
This endpoint retrieves enrollment associated with the organisation.
HTTP Request
GET https://www.mykindermoments.com/api/get/enrollments/:id
:id = Organisation Id
Add teacher
Add teacher to the organisation
Request:
$ curl  https://www.mykindermoments.com/api/add/teacher/:id \
-X POST \
-H "Content-Type: application/json" \
-H "Authorization: Bearer xxx" \
-H "api_key: xxx" \
-d '{ 
        "userPermission": {
            "accessLevel": "ORG_TEACHER"
        },
        "user": {
        "externalUserId":"100001",
        "firstName": "Lisa",
        "lastName": "Christine",
        "email": "lisa.christine@school.com",
        "roles":[
          {"id":"ROLE_ORG","selected":true}
         ]
        }  
    }' 
Successful Response
{ 
"status":"ok","username":"haileyburyprofile#100003"
}
Error Response
{ 
"status": "error",
"error": "User 100001 already exists (haileyburyprofile#100001)"
}
This end point allows teacher to be added to the organisation
HTTP Request
POST https://www.mykindermoments.com/api/add/teacher/:id
:id = Organisation Id
Data Parameters
| JSON field | Mandatory | Description | 
|---|---|---|
| userPermission | yes | Teacher user permission object | 
| userPermission.accessLevel | yes | AccessLevel must be ORG_TEACHER or ORG_ADMIN | 
| user | yes | User object | 
| user.externalUserId | yes | Must be unique to the organisation | 
| user.firstName | yes | First name | 
| user.lastName | yes | Last name | 
| user.email | yes | Valid email address | 
| user.roles | yes | User roles (role.id must be ‘ROLE_ORG’ role.selected must be true or false) | 
Add student
Add student to the classroom.
Request:
$ curl  https://www.mykindermoments.com/api/add/student/:id \
-X POST \
-H "Content-Type: application/json" \
-H "Authorization: Bearer xxx" \
-H "api_key: xxx" \
-d '{ 
        "student":
        {
            "externalStudentId": "1001",
            "studentName": "John Apple Seed",
            "dob":"2009-11-04T00:00:00Z",
            "status":"active",
            "notes" :"",
            "contactNo" :"",
            "address":"address"
        }
    }' 
Successful Response
{ 
    "status":"ok",
    "id":"db5326d7-b4b0-46f0-bc41-92ef4a9eeefb"
}
Error Response
{
    "status":"error",
    "error":"Student already associated with the enrollment 
    (db5326d7-b4b0-46f0-bc41-92ef4a9eeefb) name(John Apple Seed) -
     dob(Wed Nov 04 11:00:00 AEDT 2009) - haileyburyprofile#1001"
}
This end point allows student to be added to the classroom
HTTP Request
POST https://www.mykindermoments.com/api/add/teacher/:id
:id = Enrollment Id
Data Parameters
| JSON field | Mandatory | Description | 
|---|---|---|
| student | yes | student object | 
| student.externalStudentId | yes | Must be unique to the organisation | 
| student.studentName | yes | Student full name | 
| student.dob | yes | Student date of birth, must be in UTC format (Example: yyyy-MM-ddTHH:mm:ssZ / 2009-11-04T00:00:00Z) | 
| student.status | yes | Student status (Value: active) | 
| student.notes | no | Additional notes. | 
| student.contactNo | no | Student contact no | 
| student.address | no | Student address | 
Add parent and assign permission
Add parent to the classroom and assign permission to access student moments.
Request:
$ curl  https://www.mykindermoments.com/api/add/parent/:id \
-X POST \
-H "Content-Type: application/json" \
-H "Authorization: Bearer xxx" \
-H "api_key: xxx" \
-d '{ 
        "student": [{"externalStudentId":"1001"}],  
        "user": {
        "externalUserId":"parent3",
        "firstName": "parent firstname",
        "lastName": "parent lastname",
        "email": "parent3@me.com",
        "roles":[
            {"id":"ROLE_PARENT","selected":true}
            ]
        }
    }' 
Successful Response
{ 
    "status":"ok",
    "id":"ab5d26d7-b4b0-46f0-bc41-92ef4a9eeefb"
}
Error Response
{
    "status": "error",
    "error": "User parent3 already exists (haileyburyprofile#parent3)"
}
This end point allows parent to be associated with the classroom and student
HTTP Request
POST https://www.mykindermoments.com/api/add/parent/:id
:id = Enrollment Id
Data Parameters
| JSON field | Mandatory | Description | 
|---|---|---|
| student | yes | student object | 
| student.externalStudentId | yes | Must be unique to the organisation, and already been added to my kinder moments. | 
| user | yes | User object | 
| user.externalUserId | yes | Must be unique to the organisation | 
| user.firstName | yes | First name | 
| user.lastName | yes | Last name | 
| user.email | yes | Valid email address | 
| user.roles | yes | User roles (role.id must be 'ROLE_PARENT’ role.selected must be true or false) | 
Update parent permission
Update parent permission
Request:
$ curl  https://www.mykindermoments.com/api/update/parent/userPermission/:id \
-X POST \
-H "Content-Type: application/json" \
-H "Authorization: Bearer xxx" \
-H "api_key: xxx" \
-d '{   "externalStudentIds":["1001","1002"],
        "userPermission":{"accessLevel":"ENR_PARENT"},  
        "user": {
        "externalUserId":"100003"
        }  
    }' 
Successful Response
[
    {    
        "status":"ok",
        "id":"ab5d26d7-b4b0-46f0-bc41-92ef4a9eeefb"
    }
]
Error Response
[
    {
      "status": "error",
      "error": "User doesn't exists for the given externalUserId - 100003"
    }
]
This end point allows to add parents permission.
HTTP Request
POST https://www.mykindermoments.com/api/update/parent/userPermission/:id
:id = Enrollment Id
Data Parameters
| JSON field | Mandatory | Description | 
|---|---|---|
| externalStudentIds | yes | External Student Id array. | 
| userPermission | yes | User Permission object | 
| userPermission.accessLevel | yes | AccessLevel must be ENR_PARENT. | 
| user | yes | User object | 
| user.externalUserId | yes | Must be unique to the organisation | 
Update teacher permission
Update teacher permission
Request:
$ curl  https://www.mykindermoments.com/api/update/teacher/userPermission/:id \
-X POST \
-H "Content-Type: application/json" \
-H "Authorization: Bearer xxx" \
-H "api_key: xxx" \
-d '{ 
        "userPermission":{"accessLevel":"ORG_TEACHER"}, 
        "user": {
        "externalUserId":"100001"
        }  
    }' 
Successful Response
{ 
    "status":"ok",
    "id":"ab5d26d7-b4b0-46f0-bc41-92ef4a9eeefb"
}
Error Response
{
  "status": "error",
  "error": "User doesn't exists for the given externalUserId - 100001"
}
This end point allows to update teacher permission.
HTTP Request
POST https://www.mykindermoments.com/api/update/teacher/userPermission/:id
:id = Organisation Id
Data Parameters
| JSON field | Mandatory | Description | 
|---|---|---|
| userPermission | yes | User Permission object | 
| userPermission.accessLevel | yes | AccessLevel must be ORG_TEACHER or ORG_ADMIN. | 
| user | yes | User object | 
| user.externalUserId | yes | Must be unique to the organisation | 
Update Parent or Teacher
Update Parent or Teacher
Request:
$ curl  https://www.mykindermoments.com/api/update/user/:id \
-X POST \
-H "Content-Type: application/json" \
-H "Authorization: Bearer xxx" \
-H "api_key: xxx" \
-d '{ 
        "user": 
        {
            "externalUserId":"100001",
            "email":"lisa.christine@school.com",
            "firstName":"Lisa",
            "lastName":"Christine",
            "roles":[{"id":"ROLE_ORG","selected":true}]
        }  
    }' 
Successful Response
{ 
    "status":"ok",
    "username":"school#100001"
}
Error Response
{
  "status": "error",
  "error": "Invalid externalUserId"
}
This end point allows to update teacher or parent user details
HTTP Request
POST https://www.mykindermoments.com/api/update/user/:id
:id = Organisation Id
Data Parameters
| JSON field | Mandatory | Description | 
|---|---|---|
| user | yes | User object | 
| user.externalUserId | yes | Must be unique to the organisation | 
| user.email | no | User email address | 
| user.firstName | no | User first name | 
| user.lastName | no | User last name | 
| user.roles | no | User roles (role.id must be 'ROLE_ORG’ or 'ROLE_PARENT’. Role.selected must be true or false) | 
Update student details
Update student details
Request:
$ curl  https://www.mykindermoments.com/api/update/student/:id \
-X POST \
-H "Content-Type: application/json" \
-H "Authorization: Bearer xxx" \
-H "api_key: xxx" \
-d '{
    "student": {
        "externalStudentId": "1001",
        "studentName": "Lisa Stevenson",
        "status":"active",
        "dob": "2009-11-05T00:00:00Z",
        "notes" :"",
        "contactNo" :"042382681",
        "address":""
    }
}' 
Successful Response
{ 
    "status":"ok",
    "id":"4833b120-64d1-4d17-bdd2-5946c3dc2a41"
}
Error Response
{
  "status": "error",
  "error": "Missing external studentId."
}
This end point allows to update student details
HTTP Request
POST https://www.mykindermoments.com/api/update/student/:id
:id = Organisation Id
Data Parameters
| JSON field | Mandatory | Description | 
|---|---|---|
| student | yes | Student object | 
| student.externalStudentId | yes | Must be unique to the organisation | 
| student.studentName | no | Student name | 
| student.status | no | Status (ex: active or inactive) | 
| student.dob | no | Student date of birth in UTC format.(Ex: yyyy-MM-ddTHH:mm:ssZ / 2009-11-04T00:00:00Z) | 
| student.notes | no | Additional notes. | 
| student.contactNo | no | Student contact no | 
| student.address | no | Student address | 
Delete teacher permission
Delete teacher permission
Request:
$ curl  https://www.mykindermoments.com/api/delete/teacher/userPermission/:id \
-X POST \
-H "Content-Type: application/json" \
-H "Authorization: Bearer xxx" \
-H "api_key: xxx" \
-d '{
    "user": {
        "externalUserId": "1001"
    }
}' 
Successful Response
{ 
    "status":"deleted",
}
Error Response
{
  "status": "error",
  "error": "Missing user externalUserId field"
}
This end point allows to delete teacher permission
HTTP Request
POST https://www.mykindermoments.com/api/delete/teacher/userPermission/:id
:id = Organisation Id
Data Parameters
| JSON field | Mandatory | Description | 
|---|---|---|
| user | yes | User object | 
| user.externalUserId | yes | User id - Must be unique to the organisation | 
Delete parent permission
Delete parent permission
Request:
$ curl  https://www.mykindermoments.com/api/delete/parent/userPermission/:id \
-X POST \
-H "Content-Type: application/json" \
-H "Authorization: Bearer xxx" \
-H "api_key: xxx" \
-d '{
    "user": {
        "externalUserId": "1001"
    }
}' 
Successful Response
{ 
  [
    "status":"deleted",
  ] 
}
Error Response
{
  "status": "error",
  "error": "Missing user externalUserId field"
}
This end point allows to delete parent permission
HTTP Request
POST https://www.mykindermoments.com/api/delete/parent/userPermission/:id
:id = Enrolment Id
Data Parameters
| JSON field | Mandatory | Description | 
|---|---|---|
| user | yes | User object | 
| user.externalUserId | yes | User id - Must be unique to the organisation | 
Delete student
Delete student
Request:
$ curl  https://www.mykindermoments.com/api/delete/student/:id \
-X POST \
-H "Content-Type: application/json" \
-H "Authorization: Bearer xxx" \
-H "api_key: xxx" \
-d '{
    "student": {
        "externalStudentId": "1001"
    }
}' 
Successful Response
{ 
    "status":"ok",
    "id: "4833b920-64d1-4d17-bdd2-5946c3dc2a40"
}
Error Response
{
  "status": "error",
  "error": "Missing external studentId"
}
This end point allows to delete student
HTTP Request
POST https://www.mykindermoments.com/api/delete/student/:id
:id = Enrollment Id
Data Parameters
| JSON field | Mandatory | Description | 
|---|---|---|
| student | yes | Student object | 
| student.externalStudentId | yes | Student id - Must be unique to the organisation |