REST /api/v1/mentor-locations 7 endpoints
GET /api/v1/mentor-locations/api/v1/mentor-locations

List all mentor locations, optionally filtered by bounds and criteria

Public

Response Example

{
  "data": [
    {
      "mentor_id": "mentor_7f3a2b",
      "display_name": "Aria Lindqvist",
      "lat": 59.9139,
      "lng": 10.7522,
      "availability": "available",
      "specializations": [
        "career-transitions",
        "tech-industry"
      ],
      "avatar_url": "https://cdn.example.org/avatars/mentor_7f3a2b.jpg",
      "location_precision": "neighborhood",
      "last_seen_at": "2026-03-26T08:14:00Z"
    },
    {
      "mentor_id": "mentor_4c91de",
      "display_name": "Jonas Ekberg",
      "lat": 59.9272,
      "lng": 10.7112,
      "availability": "busy",
      "specializations": [
        "engineering",
        "mentoring"
      ],
      "avatar_url": "https://cdn.example.org/avatars/mentor_4c91de.jpg",
      "location_precision": "neighborhood",
      "last_seen_at": "2026-03-25T17:30:00Z"
    }
  ],
  "pagination": {
    "page": 1,
    "limit": 20,
    "total": 2
  }
}
GET /api/v1/mentor-locations/api/v1/mentor-locations/:mentor_id

Get a single mentor's current location and status

Public

Response Example

{
  "mentor_id": "mentor_7f3a2b",
  "display_name": "Aria Lindqvist",
  "lat": 59.9139,
  "lng": 10.7522,
  "availability": "available",
  "specializations": [
    "career-transitions",
    "tech-industry"
  ],
  "avatar_url": "https://cdn.example.org/avatars/mentor_7f3a2b.jpg",
  "location_precision": "neighborhood",
  "last_seen_at": "2026-03-26T08:14:00Z"
}
POST /api/v1/mentor-locations/api/v1/mentor-locations

Register or update a mentor's location

Public

Request Example

{
  "mentor_id": "mentor_7f3a2b",
  "lat": 59.9139,
  "lng": 10.7522,
  "availability": "available",
  "location_precision": "neighborhood"
}

Response Example

{
  "mentor_id": "mentor_7f3a2b",
  "lat": 59.9139,
  "lng": 10.7522,
  "availability": "available",
  "location_precision": "neighborhood",
  "created_at": "2026-03-26T08:14:00Z"
}
PUT /api/v1/mentor-locations/api/v1/mentor-locations/:mentor_id

Update a mentor's location or availability status

Public

Request Example

{
  "lat": 59.9301,
  "lng": 10.719,
  "availability": "busy"
}

Response Example

{
  "mentor_id": "mentor_7f3a2b",
  "lat": 59.9301,
  "lng": 10.719,
  "availability": "busy",
  "location_precision": "neighborhood",
  "updated_at": "2026-03-26T09:00:00Z"
}
DELETE /api/v1/mentor-locations/api/v1/mentor-locations/:mentor_id

Remove a mentor's location record (e.g., on consent revocation)

Public

Response Example

{
  "mentor_id": "mentor_7f3a2b",
  "deleted": true,
  "deleted_at": "2026-03-26T09:05:00Z"
}
GET /api/v1/mentor-locations/api/v1/mentor-locations/bounds

Get all mentor locations within a specific map bounding box with filter criteria

Public

Response Example

{
  "data": [
    {
      "mentor_id": "mentor_7f3a2b",
      "display_name": "Aria Lindqvist",
      "lat": 59.9139,
      "lng": 10.7522,
      "availability": "available",
      "specializations": [
        "career-transitions"
      ],
      "location_precision": "neighborhood"
    }
  ],
  "pagination": {
    "page": 1,
    "limit": 20,
    "total": 1
  },
  "bounds": {
    "sw_lat": 59.89,
    "sw_lng": 10.7,
    "ne_lat": 59.95,
    "ne_lng": 10.8
  }
}
POST /api/v1/mentor-locations/api/v1/mentor-locations/refresh

Trigger a location refresh for all active mentors (admin/system operation)

Public

Request Example

{
  "organization_id": "org_abc123"
}

Response Example

{
  "refreshed_count": 42,
  "triggered_at": "2026-03-26T09:10:00Z",
  "status": "queued"
}

Additional Metadata

{
  "contract_summary": {
    "total_contracts": 410,
    "total_endpoints": 2416,
    "api_styles_used": [
      "rest"
    ]
  },
  "generated_at": "2026-03-26T06:55:53.316Z"
}