{"openapi":"3.1.0","info":{"title":"Cusngo API","version":"0.11.0","description":"AI Travel & Mobility Decision Engine — pilot API."},"servers":[{"url":"https://cusngo.com"}],"tags":[{"name":"System"},{"name":"Auth"},{"name":"Profile"},{"name":"Privacy"},{"name":"Trip"},{"name":"Partner"},{"name":"Public"},{"name":"Admin"}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT"}}},"paths":{"/api/health":{"get":{"tags":["System"],"summary":"Health check + konektivitas DB","security":[],"responses":{"200":{"description":"OK"}}}},"/api/auth/register":{"post":{"tags":["Auth"],"summary":"Registrasi (email verification)","security":[],"responses":{"200":{"description":"OK"}}}},"/api/auth/verify-email":{"post":{"tags":["Auth"],"summary":"Verifikasi email","security":[],"responses":{"200":{"description":"OK"}}}},"/api/auth/resend-verification":{"post":{"tags":["Auth"],"summary":"Kirim ulang verifikasi","security":[],"responses":{"200":{"description":"OK"}}}},"/api/auth/login":{"post":{"tags":["Auth"],"summary":"Login","security":[],"responses":{"200":{"description":"OK"}}}},"/api/auth/refresh":{"post":{"tags":["Auth"],"summary":"Rotasi refresh token","security":[],"responses":{"200":{"description":"OK"}}}},"/api/auth/logout":{"post":{"tags":["Auth"],"summary":"Logout","security":[],"responses":{"200":{"description":"OK"}}}},"/api/auth/password/forgot":{"post":{"tags":["Auth"],"summary":"Minta reset password","security":[],"responses":{"200":{"description":"OK"}}}},"/api/auth/password/reset":{"post":{"tags":["Auth"],"summary":"Reset password","security":[],"responses":{"200":{"description":"OK"}}}},"/api/me":{"get":{"tags":["Profile"],"summary":"Profil pengguna saat ini","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"OK"}}}},"/api/me/profile":{"put":{"tags":["Profile"],"summary":"Update profil","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"OK"}}}},"/api/me/consent":{"get":{"tags":["Privacy"],"summary":"Status consent","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"OK"}}},"put":{"tags":["Privacy"],"summary":"Ubah consent (immutable history)","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"OK"}}}},"/api/me/export":{"post":{"tags":["Privacy"],"summary":"Ekspor data (DSR)","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"OK"}}}},"/api/me/deletion":{"post":{"tags":["Privacy"],"summary":"Hapus akun (DSR)","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"OK"}}}},"/api/intents":{"post":{"tags":["Trip"],"summary":"Buat intent (NL/form)","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"OK"}}},"get":{"tags":["Trip"],"summary":"Daftar intent","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"OK"}}}},"/api/intents/{id}":{"get":{"tags":["Trip"],"summary":"Detail intent + koreksi","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"OK"}}},"patch":{"tags":["Trip"],"summary":"Koreksi manual field","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"OK"}}}},"/api/intents/{id}/mobility":{"post":{"tags":["Trip"],"summary":"Opsi moda multi-modal","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"OK"}}}},"/api/intents/{id}/score":{"post":{"tags":["Trip"],"summary":"Skor TDW + ranking","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"OK"}}}},"/api/intents/{id}/recommendation":{"post":{"tags":["Trip"],"summary":"Rekomendasi + penjelasan","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"OK"}}}},"/api/intents/{id}/itinerary":{"post":{"tags":["Trip"],"summary":"Generate itinerary","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"OK"}}}},"/api/intents/{id}/offers":{"get":{"tags":["Partner"],"summary":"Penawaran partner relevan","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"OK"}}}},"/api/recommendations/{id}/feedback":{"post":{"tags":["Trip"],"summary":"Feedback rekomendasi","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"OK"}}}},"/api/itineraries/{id}/share":{"post":{"tags":["Trip"],"summary":"Buat share link","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"OK"}}}},"/api/share/itinerary/{token}":{"get":{"tags":["Public"],"summary":"Itinerary read-only publik","security":[],"responses":{"200":{"description":"OK"}}}},"/api/go/{token}":{"get":{"tags":["Partner"],"summary":"Tracking outbound + atribusi (publik)","security":[],"responses":{"200":{"description":"OK"}}}},"/api/offers/{id}/booking-intent":{"post":{"tags":["Partner"],"summary":"Catat niat pesan","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"OK"}}}},"/api/admin/overview":{"get":{"tags":["Admin"],"summary":"Metrik pilot (agregat)","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"OK"}}}},"/api/internal/purge":{"post":{"tags":["System"],"summary":"Purge job DSR (x-cron-secret)","security":[],"responses":{"200":{"description":"OK"}}}}}}