{"name":"Enseigne.net Public API","version":"1.0","endpoints":[{"method":"GET","path":"/api/v1/listings","params":["type","city","department","q","verified","limit","offset"]},{"method":"GET","path":"/api/v1/listings/{id|slug}"},{"method":"GET","path":"/api/v1/skills"},{"method":"GET","path":"/api/v1/cities"},{"method":"POST","path":"/api/v1/contact","body":["listing_id","sender_name","sender_email","sender_phone?","kind","subject?","message"]},{"method":"GET","path":"/api/v1/encyclopedia","params":["letter","q","limit"]},{"method":"GET","path":"/api/v1/encyclopedia/{slug}"},{"method":"GET","path":"/api/v1/regulations","params":["limit"]},{"method":"GET","path":"/api/v1/regulations/cities","params":["q","department"]},{"method":"GET","path":"/api/v1/regulations/cities/{slug}"},{"method":"GET","path":"/api/v1/catalog/categories"},{"method":"GET","path":"/api/v1/catalog/products","params":["category","q","limit","offset"]},{"method":"GET","path":"/api/v1/catalog/products/{slug}"},{"method":"GET","path":"/api/v1/catalog/search","params":["q","limit"]},{"method":"POST","path":"/api/v1/quotes","body":["project_type","contact_name","contact_email","city?","postal_code?","message?","needs_installation?","desired_deadline?","estimated_budget?","product_id?","category_id?"]},{"method":"GET","path":"/api/v1/quotes/{id}","note":"Bearer token required — owner, assigned pro or admin"},{"method":"GET","path":"/api/v1/tools"},{"method":"POST","path":"/api/v1/tools/{slug}/calculate","body":["inputs"]},{"method":"POST","path":"/api/v1/ai/chat","body":["question","conversation_id?","anon_session_id?","history?"]},{"method":"GET","path":"/api/v1/ai/conversations","note":"Bearer token requis"},{"method":"GET","path":"/api/v1/projects","note":"Bearer token requis"},{"method":"POST","path":"/api/v1/projects","body":["title","description?","customer_name?","customer_email?","priority?","due_date?"]},{"method":"GET","path":"/api/v1/projects/{id}"},{"method":"PATCH","path":"/api/v1/projects/{id}"},{"method":"GET","path":"/api/v1/projects/{id}/bat"},{"method":"POST","path":"/api/v1/projects/{id}/bat","body":["title?","description?","preview_image?","pdf_file?"]},{"method":"POST","path":"/api/v1/projects/{id}/files","body":["file_name","storage_path","bucket?","mime_type?","file_size?"]},{"method":"POST","path":"/api/v1/projects/{id}/validation","body":["version_id","customer_name?","customer_email?"]},{"method":"GET","path":"/api/v1/projects/{id}/activity"},{"method":"GET/POST","path":"/api/public/validation/{token}","note":"Public — client validation flow"},{"method":"GET/POST","path":"/api/v1/crm/contacts","note":"Bearer token requis (scope crm)"},{"method":"GET/POST","path":"/api/v1/crm/deals","note":"Bearer token requis (scope crm)"},{"method":"GET/POST","path":"/api/v1/crm/tasks","note":"Bearer token requis (scope crm)"},{"method":"GET/POST","path":"/api/v1/support/tickets","note":"POST public possible (formulaire client)"},{"method":"GET","path":"/api/v1/warranties","note":"Bearer token requis (scope warranties)"},{"method":"GET","path":"/api/v1/academy/courses","params":["category","level","q","limit"]},{"method":"GET","path":"/api/v1/academy/courses/{slug}"},{"method":"POST","path":"/api/v1/academy/enroll","body":["course_id"],"note":"Bearer token requis"},{"method":"POST","path":"/api/v1/academy/lessons/{id}/complete","note":"Bearer token requis"},{"method":"POST","path":"/api/v1/academy/quizzes/{id}/submit","body":["answers"],"note":"Bearer token requis"},{"method":"GET","path":"/api/v1/academy/certificates/{code}","note":"Vérification publique"},{"method":"GET","path":"/api/v1/forum/categories"},{"method":"GET/POST","path":"/api/v1/forum/topics","params":["category","sort","q","limit","offset"],"note":"POST requiert Bearer"},{"method":"GET","path":"/api/v1/forum/topics/{slug}"},{"method":"POST","path":"/api/v1/forum/topics/{id}/posts","body":["content","parent_id?"],"note":"Bearer token requis"},{"method":"POST","path":"/api/v1/forum/vote","body":["target_type","target_id","value"],"note":"Bearer token requis"},{"method":"POST","path":"/api/v1/forum/report","body":["target_type","target_id","reason","details?"],"note":"Bearer token requis"},{"method":"POST","path":"/api/v1/forum/suggest","body":["question"],"note":"Génère une réponse IA EXPERT ENSEIGNE"},{"method":"GET","path":"/api/v1/mobile/dashboard","note":"Bearer token requis — dashboard mobile (chantiers, tickets, photos récentes)"},{"method":"GET","path":"/api/v1/mobile/projects","params":["status"],"note":"Bearer token requis — mes chantiers"},{"method":"GET","path":"/api/v1/mobile/checklists","params":["project_id"],"note":"Bearer token requis — checklists d'un projet"},{"method":"POST","path":"/api/v1/mobile/photos","body":["project_id","storage_path","kind?","comment?","lat?","lng?"],"note":"Bearer token requis — enregistrer une photo terrain"},{"method":"POST","path":"/api/v1/mobile/signatures","body":["project_id","signer_name","signature_url","bat_version_id?","signer_email?"],"note":"Bearer token requis — signature client"},{"method":"GET","path":"/api/v1/mobile/notifications","note":"Bearer token requis — notifications agrégées"},{"method":"POST","path":"/api/v1/mobile/push/register","body":["endpoint","keys","platform?"],"note":"Bearer token requis — enregistre un abonnement Web Push"},{"method":"GET","path":"/api/v1/stores","params":["q","department","region","limit"],"note":"Carte des magasins Enseigne.net"},{"method":"GET","path":"/api/v1/stores/{slug}"}],"mcp":"/api/mcp"}