Skip to main content

Departments Endpoints

Query available departments and check availability.

GET /departments

List all departments of your organization.

Request

curl https://mc-prd.duckdns.org/api/v1/departments -H "X-API-Key: YOUR_API_KEY"
Java
import com.moncreneau.ApiClient;
import com.moncreneau.model.Department;
import java.util.List;

ApiClient client = new ApiClient("your_api_key");
List<Department> departments = client.departments().list();

for (Department dept : departments) {
System.out.println(dept.getName() + " - " + dept.getAddress());
}
Node.js
const { MoncreneauClient } = require('moncreneau');

const client = new MoncreneauClient('your_api_key');

const departments = await client.departments.list();
departments.forEach(dept => {
console.log(`${dept.name} - ${dept.address}`);
});
PHP
<?php
use Moncreneau\Client;

$client = new Client('your_api_key');
$departments = $client->departments->list();

foreach ($departments as $dept) {
echo $dept->name . ' - ' . $dept->address . PHP_EOL;
}
Python
from moncreneau import MoncreneauClient

client = MoncreneauClient('your_api_key')
departments = client.departments.list()

for dept in departments:
print(f"{dept.name} - {dept.address}")

Response 200

[
{
"id": 5,
"name": "General Consultation",
"address": "123 Health Street, Conakry",
"phoneNumber": "+224 123 456 789",
"slotInterval": 30,
"workingHours": "Monday-Friday: 08:00-17:00"
},
{
"id": 8,
"name": "Emergency",
"address": "456 Republic Avenue",
"phoneNumber": "+224 987 654 321",
"slotInterval": 15,
"workingHours": "Monday-Sunday: 00:00-23:59"
}
]

GET /departments/{id}

Retrieve details of a specific department.

Request

curl https://mc-prd.duckdns.org/api/v1/departments/5 -H "X-API-Key: YOUR_API_KEY"
Java
import com.moncreneau.ApiClient;
import com.moncreneau.model.Department;

ApiClient client = new ApiClient("your_api_key");
Department dept = client.departments().get(5L);

System.out.println("Name: " + dept.getName());
System.out.println("Address: " + dept.getAddress());
System.out.println("Interval: " + dept.getSlotInterval() + " minutes");
Node.js
const { MoncreneauClient } = require('moncreneau');

const client = new MoncreneauClient('your_api_key');
const dept = await client.departments.get(5);

console.log(`Name: ${dept.name}`);
console.log(`Address: ${dept.address}`);
console.log(`Interval: ${dept.slotInterval} minutes`);
PHP
<?php
use Moncreneau\Client;

$client = new Client('your_api_key');
$dept = $client->departments->get(5);

echo "Name: {$dept->name}" . PHP_EOL;
echo "Address: {$dept->address}" . PHP_EOL;
echo "Interval: {$dept->slotInterval} minutes" . PHP_EOL;
Python
from moncreneau import MoncreneauClient

client = MoncreneauClient('your_api_key')
dept = client.departments.get(5)

print(f"Name: {dept.name}")
print(f"Address: {dept.address}")
print(f"Interval: {dept.slot_interval} minutes")

Response 200

{
"id": 5,
"name": "General Consultation",
"address": "123 Health Street, Conakry",
"phoneNumber": "+224 123 456 789",
"slotInterval": 30,
"workingHours": "Monday-Friday: 08:00-17:00"
}

Response 404

{
"code": "DEPARTMENT_NOT_FOUND",
"message": "Department not found with id: 5",
"timestamp": "2026-01-21T10:00:00"
}

GET /departments/{id}/availability

Check slot availability for a department.

Request

curl "https://mc-prd.duckdns.org/api/v1/departments/5/availability?dateTime=2026-02-15T10:00:00" -H "X-API-Key: YOUR_API_KEY"
Java
import com.moncreneau.ApiClient;
import com.moncreneau.model.SlotAvailability;
import java.time.LocalDateTime;

ApiClient client = new ApiClient("your_api_key");
LocalDateTime dateTime = LocalDateTime.parse("2026-02-15T10:00:00");

SlotAvailability availability = client.departments()
.checkAvailability(5L, dateTime);

if (availability.isAvailable()) {
System.out.println("Slot available! Remaining slots: " +
availability.getRemainingSlots());
} else {
System.out.println("Slot unavailable: " +
availability.getUnavailabilityReason());
}
Node.js
const { MoncreneauClient } = require('moncreneau');

const client = new MoncreneauClient('your_api_key');
const dateTime = '2026-02-15T10:00:00';

const availability = await client.departments.checkAvailability(5, dateTime);

if (availability.available) {
console.log(`Slot available! Remaining slots: ${availability.remainingSlots}`);
} else {
console.log(`Slot unavailable: ${availability.unavailabilityReason}`);
}
PHP
<?php
use Moncreneau\Client;

$client = new Client('your_api_key');
$dateTime = '2026-02-15T10:00:00';

$availability = $client->departments->checkAvailability(5, $dateTime);

if ($availability->available) {
echo "Slot available! Remaining slots: {$availability->remainingSlots}" . PHP_EOL;
} else {
echo "Slot unavailable: {$availability->unavailabilityReason}" . PHP_EOL;
}
Python
from moncreneau import MoncreneauClient

client = MoncreneauClient('your_api_key')
date_time = '2026-02-15T10:00:00'

availability = client.departments.check_availability(5, date_time)

if availability.available:
print(f"Slot available! Remaining slots: {availability.remaining_slots}")
else:
print(f"Slot unavailable: {availability.unavailability_reason}")

Response 200 - Available

{
"slotTime": "2026-02-15T10:00:00",
"available": true,
"remainingSlots": 3,
"unavailabilityReason": null
}

Response 200 - Unavailable

{
"slotTime": "2026-02-15T10:00:00",
"available": false,
"remainingSlots": 0,
"unavailabilityReason": "Slot full (5/5 appointments)"
}