Get Client Integrations
GET /v2/settings/clientintegrations
This endpoint retrieves a list of client integrations, representing schools that have authorized your integration in their d6+ SAMS instance.
Each record in the response corresponds to a unique client/API type combination, meaning a single school may appear multiple times if it has authorized multiple integrations.
Pagination
The response data includes a meta object that contains pagination-specific metadata. You can use the following query parameters to control pagination:
- limit: This parameter allows you to override the default limit of records returned, up to the - max_allowed_limitspecified in the response's- metaobject.
- cursor: If the - metaobject contains a- next_cursorfield, it indicates that more records are available. To fetch the next set of records, include the- cursorparameter in your request with the value of- next_cursor. If the- next_cursorfield is not present, it means there are no more records to retrieve.
- reverse_order: This parameter can be used to reverse the order in which the data is returned, useful for fetching the latest records first. 
Request Headers
HTTP-X-USERNAME*
String
As provided by d6
HTTP-X-PASSWORD*
String
As provided by d6
Query Parameters
school_id
Integer
Optional ID of the school to retrieve data from
api_type_id
Integer
For filtering on a specific API Type
cursor
Boolean
To retrieve the next group of items (if any)
limit
Integer
To override the default limit of records returned (up to the max_allowed_limit provided in the response metadata).
reverse_order
Boolean
To reverse the order the data is returned in
Response Examples
Status: 200 OK
[
    "data": [
        {
            "school_id": 1000,
            "school_name": "d6+ Primary School",
            "admin_email_address": "[email protected]",
            "telephone_calling_code": "27",
            "telephone_number": "0123334444",
            "api_type_id": 8,
            "api_type": "Admin+ API",
            "activated_by_integrator": "No"
        },
        {
            "school_id": 1000,
            "school_name": "d6+ Primary School",
            "admin_email_address": "[email protected]",
            "telephone_calling_code": "27",
            "telephone_number": "0123334444",
            "api_type_id": 9,
            "api_type": "Curriculum+ API",
            "activated_by_integrator": "Yes"
        },
        {
            "school_id": 1001,
            "school_name": "d6+ Secondary School",
            "admin_email_address": "[email protected]",
            "telephone_calling_code": "27",
            "telephone_number": "0123334444",
            "api_type_id": 8,
            "api_type": "Debt manager",
            "activated_by_integrator": "Yes"
        }
    ],
    "meta": {
        "limit": 10,
        "max_allowed_limit": 50,
        "cursor": "eyJpZCI6MjU0NiwiX2JhY2t3YXJkIjpmYWxzZX0"
    }
]Description: When validation failed for one or more fields
Status: 400 Bad Request
{
    "success": false,
    "message": "Validation Failed",
    "validation_errors": {
        "school_id": "The School id must be integer",
        "api_type_id": "The Api type id must be integer",
        "limit": "The Limit maximum is 50"
    }
}Code Samples
<?php
// API Credentials
$api_username = 'your_username';
$api_password = 'your_password';
// Base API endpoint
define('BASE_URL', 'https://integrate.d6plus.co.za/api/v2/settings/clientintegrations');
// Query parameters (optional)
$query_params = [
    'school_id'   => 1000,
    'api_type_id' => 8,
    'limit'       => 50,
    'cursor'      => 'eyJpZCI6MTY5NCwiX2JhY2t3YXJkIjpmYWxzZX0',
];
$url = BASE_URL;
if (!empty($query_params)) {
    $url .= '?' . http_build_query($query_params);
}
// Initialize cURL
$curl = curl_init();
// Set cURL options
curl_setopt_array($curl, [
    CURLOPT_URL            => $url,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_TIMEOUT        => 30,  // Set timeout to prevent hanging requests
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_HTTP_VERSION   => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST  => 'GET',
    CURLOPT_HTTPHEADER     => [
        "HTTP-X-USERNAME: $api_username",
        "HTTP-X-PASSWORD: $api_password"
    ],
]);
// Execute request
$response = curl_exec($curl);
// Check for errors
$error = curl_error($curl);
if ($error) {
    curl_close($curl);
    throw new Exception("cURL Error: $error");
}
// Close cURL and output response
curl_close($curl);
echo $response;
curl --request GET "https://integrate.d6plus.co.za/api/v2/settings/clientintegrations?school_id=1000&api_type_id=8&limit=50" \
     --header "HTTP-X-USERNAME: your_username" \
     --header "HTTP-X-PASSWORD: your_password"