{"name":"Simpli Platform Backend","version":"1.0.0","service":"Simpli AI Engine","mode":"production (PostgreSQL)","modules":["simpli-ai","Properties","Units","Tenants","Contacts","Tickets","Documents","Leads","Flows"],"endpoints":{"simpliAI":{"interpret":"POST /api/simpli-ai/interpret","plan":"POST /api/simpli-ai/plan","execute":"POST /api/simpli-ai/execute","confirm":"POST /api/simpli-ai/actions/:id/confirm","history":"GET /api/simpli-ai/history","health":"GET /api/simpli-ai/health"},"properties":{"list":"GET /api/properties","get":"GET /api/properties/:id","create":"POST /api/properties","update":"PUT /api/properties/:id","delete":"DELETE /api/properties/:id","units":"GET /api/properties/:id/units"},"units":{"list":"GET /api/units","get":"GET /api/units/:id","create":"POST /api/units","update":"PUT /api/units/:id","delete":"DELETE /api/units/:id","currentTenant":"GET /api/units/:id/current-tenant"},"tenants":{"list":"GET /api/tenants","get":"GET /api/tenants/:id","create":"POST /api/tenants","update":"PUT /api/tenants/:id","delete":"DELETE /api/tenants/:id"},"contacts":{"list":"GET /api/contacts","lookup":"GET /api/contacts/lookup?phone=...","get":"GET /api/contacts/:id","create":"POST /api/contacts","update":"PUT /api/contacts/:id","addPhone":"POST /api/contacts/:id/phones","vacation":"PUT /api/contacts/:id/vacation","delete":"DELETE /api/contacts/:id"},"tickets":{"list":"GET /api/tickets","stats":"GET /api/tickets/stats","get":"GET /api/tickets/:id","create":"POST /api/tickets","update":"PUT /api/tickets/:id","status":"PUT /api/tickets/:id/status","assign":"PUT /api/tickets/:id/assign","delete":"DELETE /api/tickets/:id"},"documents":{"list":"GET /api/documents","get":"GET /api/documents/:id","create":"POST /api/documents","update":"PUT /api/documents/:id","verify":"PUT /api/documents/:id/verify","extraction":"PUT /api/documents/:id/extraction","uploadUrl":"POST /api/documents/upload-url","delete":"DELETE /api/documents/:id"},"leads":{"list":"GET /api/leads","get":"GET /api/leads/:id","create":"POST /api/leads","update":"PUT /api/leads/:id","updateStatus":"PUT /api/leads/:id/status"},"flows":{"sessions":"GET /api/flows/sessions","startSession":"POST /api/flows/sessions","processMessage":"POST /api/flows/sessions/:id/message","definitions":"GET /api/flows/definitions"},"webhooks":{"ghl":"POST /api/webhooks/ghl","ghlCalendar":"POST /api/webhooks/ghl/calendar","portal":"POST /api/webhooks/portal/:portalId","whatsapp":"POST /api/webhooks/whatsapp/:provider","anymessageRcs":"POST /api/webhooks/anymessage/rcs/status","anymessageWhatsapp":"POST /api/webhooks/anymessage/whatsapp/status"},"upload":{"page":"GET /api/upload/:token","file":"POST /api/upload/:token"},"appointments":{"bookingLink":"POST /api/appointments/booking-link","get":"GET /api/appointments/:id","byLead":"GET /api/appointments/lead/:leadId","byFlowSession":"GET /api/appointments/flow-session/:sessionId","upcoming":"GET /api/appointments/upcoming","audit":"GET /api/appointments/:id/audit"},"admin":{"conversations":"GET /api/admin/conversations","conversationDetail":"GET /api/admin/conversations/:conversationId","auditLogs":"GET /api/admin/audit-logs","skillRequests":"GET /api/admin/skill-requests","updateSkillRequest":"PUT /api/admin/skill-requests/:id","stats":"GET /api/admin/stats"}}}