> For the complete documentation index, see [llms.txt](https://apidocs.d6plus.co.za/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://apidocs.d6plus.co.za/reference/curriculum+/learner/get-learner-subjects.md).

# Get Learner Subjects

## Get the subject records for one or more learners

<mark style="color:blue;">`GET`</mark> `https://integrate.d6plus.co.za/api/v1/currplus/learnersubjects/{school_login_id}`

Use this endpoint to fetch the list of subjects for the current year for one or more learner for the specified school.  By default, the subjects for all current active learners will be returned.&#x20;

It is possible to retrieve the subjects for a single learner by providing the optional `learner_id` query parameter.

#### Path Parameters

| Name                                                | Type    | Description                                      |
| --------------------------------------------------- | ------- | ------------------------------------------------ |
| school\_login\_id<mark style="color:red;">\*</mark> | 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<mark style="color:red;">\*</mark> | String | As provided by d6 |
| HTTP-X-PASSWORD<mark style="color:red;">\*</mark> | String | As provided by d6 |

{% tabs %}
{% tab title="200 The request was successful." %}

```json
[
    {
        "learner_id": "1",
        "first_name": "Janey",
        "last_name": "Smith",
        "subject_id": 101,
        "subject_name": "Afrikaans Home Language (Gr 05)"
    },
    {
        "learner_id": "1",
        "first_name": "Janey",
        "last_name": "Smith",
        "subject_id": 105,        
        "subject_name": "English First Additional Language (Gr 05)"
    },
    {
        "learner_id": "1",
        "first_name": "Janey",
        "last_name": "Smith",
        "subject_id": 201,        
        "subject_name": "Life Skills (Gr 05)"
    },
    {
        "learner_id": "1",
        "first_name": "Janey",
        "last_name": "Smith",
        "subject_id": 135,        
        "subject_name": "Mathematics (Gr 05)"
    },
    {
        "learner_id": "1",
        "first_name": "Janey",
        "last_name": "Smith",
        "subject_id": 322,
        "subject_name": "Natural Sciences and Technology (Gr 05)"
    },
    {
        "learner_id": "1",
        "first_name": "Janey",
        "last_name": "Smith",
        "subject_id": 49,        
        "subject_name": "Social Sciences (Gr 05)"
    }
]
```

{% endtab %}

{% tab title="404: Not Found The resource was not found." %}

```json
{
    "error": "Not found",
    "error_description": "No learner subject records found"
}
```

{% endtab %}

{% tab title="401: Unauthorized The server understood the request, but is refusing it or access is not allowed." %}

```json
{
    "error": "Unauthorized",
    "error_description": "Client access not authorised"
}
```

{% endtab %}

{% tab title="403: Forbidden The server understood the request, but the requested action is not allowed." %}

```json
{
    "error": "Integration not activated",
    "error_description": "Please activate the Curriculum+ API for this client before making this request"
}
```

{% endtab %}
{% endtabs %}

## Examples

{% tabs %}
{% tab title="PHP" %}

```php
<?php

const BASE_URL = 'https://integrate.d6plus.co.za/api/v1/currplus/learnersubjects';
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;
```

{% endtab %}

{% tab title="cURL" %}

```bash
curl --location 'https://integrate.d6plus.co.za/api/v1/currplus/learnersubjects/1000?learner_id=1' \
--header 'HTTP-X-USERNAME: your_username' \
--header 'HTTP-X-PASSWORD: your_password'
```

{% endtab %}
{% endtabs %}
