Map Provider Integration
API Contract
REST
/api/v1/map-config
6 endpoints
GET
/api/v1/map-config/api/v1/map-config
List all map configuration profiles
Public
Response Example
{
"data": [
{
"config_id": "mapconf_prod",
"provider": "mapbox",
"style_url": "mapbox://styles/mapbox/dark-v11",
"default_center_lat": 59.9139,
"default_center_lng": 10.7522,
"default_zoom": 11,
"cluster_radius_px": 50,
"is_active": true
}
],
"pagination": {
"page": 1,
"limit": 20,
"total": 1
}
}
GET
/api/v1/map-config/api/v1/map-config/:config_id
Get a specific map configuration
Public
Response Example
{
"config_id": "mapconf_prod",
"provider": "mapbox",
"style_url": "mapbox://styles/mapbox/dark-v11",
"default_center_lat": 59.9139,
"default_center_lng": 10.7522,
"default_zoom": 11,
"cluster_radius_px": 50,
"marker_icon_url": "https://cdn.example.org/map/mentor-pin.svg",
"is_active": true,
"created_at": "2026-01-01T00:00:00Z"
}
POST
/api/v1/map-config/api/v1/map-config
Create a new map configuration profile
Public
Request Example
{
"provider": "mapbox",
"style_url": "mapbox://styles/mapbox/streets-v12",
"default_center_lat": 59.9139,
"default_center_lng": 10.7522,
"default_zoom": 12,
"cluster_radius_px": 60,
"marker_icon_url": "https://cdn.example.org/map/mentor-pin-v2.svg"
}
Response Example
{
"config_id": "mapconf_v2",
"provider": "mapbox",
"style_url": "mapbox://styles/mapbox/streets-v12",
"default_center_lat": 59.9139,
"default_center_lng": 10.7522,
"default_zoom": 12,
"cluster_radius_px": 60,
"marker_icon_url": "https://cdn.example.org/map/mentor-pin-v2.svg",
"is_active": false,
"created_at": "2026-03-26T09:45:00Z"
}
PUT
/api/v1/map-config/api/v1/map-config/:config_id
Update a map configuration profile
Public
Request Example
{
"default_zoom": 13,
"cluster_radius_px": 45,
"is_active": true
}
Response Example
{
"config_id": "mapconf_prod",
"provider": "mapbox",
"default_zoom": 13,
"cluster_radius_px": 45,
"is_active": true,
"updated_at": "2026-03-26T09:50:00Z"
}
DELETE
/api/v1/map-config/api/v1/map-config/:config_id
Delete a map configuration profile
Public
Response Example
{
"config_id": "mapconf_v2",
"deleted": true,
"deleted_at": "2026-03-26T09:55:00Z"
}
POST
/api/v1/map-config/api/v1/map-config/:config_id/markers
Batch-add or update mentor marker layer data for a map session
Public
Request Example
{
"markers": [
{
"mentor_id": "mentor_7f3a2b",
"lat": 59.9139,
"lng": 10.7522,
"availability": "available",
"cluster_key": "oslo-central"
},
{
"mentor_id": "mentor_4c91de",
"lat": 59.9272,
"lng": 10.7112,
"availability": "busy",
"cluster_key": "oslo-west"
}
]
}
Response Example
{
"config_id": "mapconf_prod",
"markers_loaded": 2,
"clusters_formed": 1,
"viewport": {
"sw_lat": 59.89,
"sw_lng": 10.68,
"ne_lat": 59.95,
"ne_lng": 10.8
}
}