Skip to content

API Overview

Previous: Data Model
Next: AI System

The backend API powers dashboard operations and mobile flows.

Prefix and mounting behavior

  • Most routers are accessible at both root and /api (for compatibility).
  • Predictions routes are mounted under /api only.
  • This document uses /api/... examples for consistency.

1) Auth

  • POST /api/auth/login
  • GET /api/auth/me
  • PATCH /api/auth/me

2) Ticket and SLA endpoints

Core:

  • GET /api/tickets
  • GET /api/tickets/{ticket_id}
  • POST /api/tickets
  • PATCH /api/tickets/{ticket_id}
  • PATCH /api/tickets/{ticket_id}/status
  • DELETE /api/tickets/{ticket_id}

Export/report/media:

  • GET /api/tickets/export
  • GET /api/tickets/{ticket_id}/report
  • GET /api/tickets/{ticket_id}/pdf-report
  • POST /api/tickets/{ticket_id}/media

SLA/escalation:

  • GET /api/tickets/sla/breaches
  • GET /api/tickets/sla/escalated
  • POST /api/tickets/{ticket_id}/force-breach (admin-only override)

Tenant/technician lifecycle:

  • POST /api/tickets/{ticket_id}/tenant_confirm
  • POST /api/tickets/{ticket_id}/tenant_request_changes
  • POST /api/tickets/{ticket_id}/tenant_escalate
  • POST /api/tickets/{ticket_id}/technician_confirm
  • POST /api/tickets/{ticket_id}/technician_decline
  • POST /api/tickets/{ticket_id}/start_job
  • POST /api/tickets/{ticket_id}/complete_job
  • PATCH /api/tickets/{ticket_id}/worklog
  • PATCH /api/tickets/{ticket_id}/reschedule

3) Chat and messaging

AI intake and media:

  • POST /api/chat
  • POST /api/upload-image
  • GET /api/uploads/{storage_key}

Conversations/messages:

  • GET /api/chat/recipients
  • GET /api/chat/conversations
  • GET /api/chat/conversations/{other_user_id}/messages
  • POST /api/chat/messages
  • DELETE /api/chat/messages/{message_id}
  • DELETE /api/chat/messages/conversation/{conversation_id}
  • GET /api/chat/tickets/{ticket_id}/messages

4) AI and feedback

  • GET /api/ai/status
  • PATCH /api/ai/logs/{log_id}/feedback
  • POST /api/tickets/{ticket_id}/feedback

5) Admin and metrics

Selected implemented endpoints:

  • Buildings/apartments:
  • GET /api/buildings
  • GET /api/buildings/{building_id}/apartments
  • POST /api/admin/buildings
  • POST /api/admin/apartments
  • PATCH /api/admin/apartments/{apartment_id}
  • Users/tenants:
  • GET /api/admin/users
  • POST /api/admin/users
  • PATCH /api/admin/users/{user_id}
  • POST /api/admin/tenants
  • GET /api/tenants
  • Technicians:
  • GET /api/technicians
  • GET /api/technicians/available
  • PATCH /api/admin/technicians/bulk
  • DELETE /api/admin/technicians/bulk
  • Tickets bulk/admin:
  • DELETE /api/admin/tickets/bulk
  • POST /api/admin/tickets/bulk-delete
  • DELETE /api/admin/tickets/{ticket_id}
  • Config/metrics/audit:
  • GET /api/admin/system-config
  • PUT /api/admin/system-config
  • GET /api/metrics/system
  • GET /api/metrics/sla-compliance-trend
  • GET /api/admin/audit-logs
  • GET /api/users/me/settings
  • PUT /api/users/me/settings

6) Predictions (/api only)

  • GET /api/predictions/apartments
  • GET /api/predictions/apartments/{apartment_id}
  • GET /api/predictions/systems
  • GET /api/predictions/buildings
  • GET /api/predictions/summary

7) WebSocket contract

  • GET /ws/notifications/{user_id}?token=<JWT>

Used for ticket/chat/assignment notifications across dashboard and mobile clients.

Previous: Data Model
Next: AI System