Get Learner Subjects Per Term
Get the subject records for a learner per term
GET
https://integrate.d6plus.co.za/api/v1/currplus/learnersubjectsperterm/{school_login_id}
Use this endpoint to fetch the subjects per term for the specified learner, for the specified school. All subjects for all terms will be return, for the current d6+ administrative year. The results are grouped per term, per subject, for the current administrative year.
Path Parameters
Name
Type
Description
school_login_id*
Integer
The login ID of the school to retrieve data from
Query Parameters
Name
Type
Description
learner_id*
Integer
The ID of a specific learner
Headers
Name
Type
Description
HTTP-X-USERNAME*
String
As provided by d6
HTTP-X-PASSWORD*
String
As provided by d6
[
{
"year": "2025",
"subject_id": "10",
"subject_name": "Afrikaans First Additional Language (Gr 07)",
"super_subject_id": "1",
"super_subject_name": "Afrikaans First Additional Language",
"grade_id": "9",
"grade": "7",
"terms": [
{
"term_id": 98,
"term": "1",
"subject_group_id": "118",
"subject_group_name": "Afrikaans Group 1",
"classroom_id": "1",
"classroom_name": "1",
"subject_group_teacher_id": "13"
},
{
"term_id": 99,
"term": "2",
"subject_group_id": "118",
"subject_group_name": "Afrikaans Group 1",
"classroom_id": "1",
"classroom_name": "1",
"subject_group_teacher_id": "13"
},
{
"term_id": 100,
"term": "3",
"subject_group_id": "270",
"subject_group_name": "Afrikaans Group 2",
"classroom_id": "4",
"classroom_name": "3A",
"subject_group_teacher_id": "17"
},
{
"term_id": 101,
"term": "4",
"subject_group_id": "270",
"subject_group_name": "Afrikaans Group 2",
"classroom_id": "4",
"classroom_name": "3A",
"subject_group_teacher_id": "17"
}
]
},
{
"year": "2025",
"subject_id": "3418",
"subject_name": "Coding and Robotics (Gr 07)",
"super_subject_id": "2334",
"super_subject_name": "Coding and Robotics",
"grade_id": "9",
"grade": "7",
"terms": [
{
"term_id": 98,
"term": "1",
"subject_group_id": "119",
"subject_group_name": "Coding 1A",
"classroom_id": "2",
"classroom_name": "2",
"subject_group_teacher_id": "4"
},
{
"term_id": 99,
"term": "2",
"subject_group_id": "119",
"subject_group_name": "Coding 1A",
"classroom_id": "2",
"classroom_name": "2",
"subject_group_teacher_id": "4"
},
{
"term_id": 100,
"term": "3",
"subject_group_id": "322",
"subject_group_name": "Coding 1B",
"classroom_id": "9",
"classroom_name": "K4",
"subject_group_teacher_id": "17"
},
{
"term_id": 101,
"term": "4",
"subject_group_id": "322",
"subject_group_name": "Coding 1B",
"classroom_id": "9",
"classroom_name": "K4",
"subject_group_teacher_id": "17"
}
]
}
]
{
"error": "Not found",
"error_description": "No learner subject records found"
}
{
"error": "Unauthorized",
"error_description": "Client access not authorised"
}
{
"error": "Integration not activated",
"error_description": "Please activate the Curriculum+ API for this client before making this request"
}
{
"error": "Bad Request",
"error_description": "Please specify the learner_id request parameter."
}
Examples
<?php
const BASE_URL = 'https://integrate.d6plus.co.za/api/v1/currplus/learnersubjectsperterm';
const SCHOOL_LOGIN_ID = '1000';
const PARAMS = ['learner_id' => 1];
const API_USERNAME = getenv('API_USERNAME'); // Assuming you have these environment variables set
const API_PASSWORD = getenv('API_PASSWORD');
$curl = curl_init();
$query = http_build_query(PARAMS);
$options = [
CURLOPT_URL => BASE_URL . '/' . SCHOOL_LOGIN_ID . '?' . $query,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_SSL_VERIFYPEER => true,
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_HTTPHEADER => [
"HTTP-X-USERNAME: " . API_USERNAME,
"HTTP-X-PASSWORD: " . API_PASSWORD
],
];
curl_setopt_array($curl, $options);
$response = curl_exec($curl);
if (curl_errno($curl)) {
throw new Exception('Curl error: ' . curl_error($curl));
}
curl_close($curl);
echo $response;
curl --location 'https://integrate.d6plus.co.za/api/v1/currplus/learnersubjectsperterm/1000?learner_id=1' \
--header 'HTTP-X-USERNAME: your_username' \
--header 'HTTP-X-PASSWORD: your_password'