Smart Energy Platform API Documentation
Version: 1.0 — Base URL: https://bareq.site
Authentication
All endpoints require the following headers:
Content-Type: application/json x-api-key: YOUR_API_KEY
Building Management APIs
Create Building
POST/api/buildingsRequest Body
{
"name": "Test Building",
"address": "124 Main St",
"connectionType": "Residential" (Accepts Commercial for commercial connections)
}Example Response
{
"message": "Created",
"building": {
"_id": "187e320f874f499a1a5dd7e3",
"name": "Test Building",
"address": "124 Main St",
"connectionType": "Residential",
"createdBy": "187a54aeb05e05a266b12333",
"__v": 0
}
}Delete Building
DELETE/api/buildingsRequest Body
{
"id": "487d64c9874f499a1a5dd133"
}Example Response
{ "message": "Deleted" }Fetch All Buildings
GET/api/buildingsExample Response
{
"buildings": [
{
"_id": "287d63a2874f499a1a5dd145",
"name": "Updated Building",
"address": "456 New Address",
"createdBy": "587a54aeb05e05a266b12123",
"__v": 0
}
]
}Update Building
PUT/api/buildingsRequest Body
{
"id": "187d63a2874f499a1a5dd234",
"name": "Updated Building",
"address": "456 New Address"
}Example Response
{
"message": "Updated",
"building": {
"_id": "287d63a2874f499a1a5dd125",
"name": "Updated Building",
"address": "456 New Address",
"createdBy": "337a54aeb05e05a266b1sd4e",
"__v": 0
}
}Apartment Management APIs
Create Apartment
POST/api/apartmentsRequest Body
{
"name": "Apartment A",
"buildingId": "687d63a2874f499a1a5dd7b0",
"devices": [
{
"deviceId": "12345",
"deviceName": "Smart Switch 1"
},
{
"deviceId": "67890",
"deviceName": "Energy Meter"
}
]
}Example Response
{
"success": true,
"apartment": {
"buildingId": "687d63a2874f499a1a5dd7b0",
"name": "Apartment A",
"devices": [
{
"deviceId": "12345",
"deviceName": "Smart Switch 1",
"_id": "68951896e6673183ad85470a"
},
{
"deviceId": "67890",
"deviceName": "Energy Meter",
"_id": "68951896e6673183ad85470b"
}
],
"_id": "68951896e6673183ad854709",
"__v": 0
}
}Fetch Apartments by Building ID
GET/api/apartments?buildingId=BUILDING_IDExample Response
{
"success": true,
"apartments": [
{
"_id": "237e3994874f499a1a5dd555",
"buildingId": "87d63a2874f499a1a5dd7234",
"name": "Apartment 101",
"deviceId": "device_101",
"deviceName": "Smart Meter 101",
"__v": 0
}
]
}Update Apartment
PUT/api/apartments?buildingId=BUILDING_IDRequest Body
{
"_id": "687e39c0874f499a1a5ddttt",
"name": "Updated Apt A2",
"deviceId": "sdfsdf234",
"deviceName": "Updated Meter"
}Delete Apartment
DELETE/api/apartments?buildingId=BUILDING_IDRequest Body
{
"id": "687e39c0874f499a1a5d2344"
}Example Response
{ "success": true }Energy Usage APIs
Fetch Apartment kWh Data
POST/api/device-metricRequest Body
{
"deviceId": "hhu22e2147eebf3961sd23",
"metric": "totalKwh"
}Example Response
{
"success": true,
"data": [
{ "date": "2025-07-06", "value": 0 },
{ "date": "2025-07-07", "value": 0 },
{ "date": "2025-07-08", "value": 0.29 }
]
}Fetch Total Building Consumption (kWh)
GET/api/building-kwh?buildingId=BUILDING_IDExample Response
{
"success": true,
"totalKwh": 0.56
}Device Control API
Toggle Device Power (ON/OFF)
POST/api/device-toggleThe target device must be online.
Request Body
{
"deviceId": "ss22e2147eebf3961dd55",
"action": "on"
}Example Response
{ "success": true }Additional Notes
- All
_idvalues returned in responses should be used for update/delete operations. - Ensure the
deviceIdis registered and online for control APIs to work. - Only
totalKwhis supported inmetricfield for energy queries.