{"service":"Law Analytics Admin API","version":"1.0.0","environment":"production","endpoints":{"health":"GET /health","webhooks":"GET /api/webhooks/*","subscriptions":{"list":"GET /api/subscriptions","summary":"GET /api/subscriptions/summary","resetUser":"POST /api/subscriptions/reset-user","syncWithStripe":"POST /api/subscriptions/sync-with-stripe","deleteCustomer":"DELETE /api/subscriptions/customer","stripeCustomers":"GET /api/subscriptions/stripe-customers"},"cronConfig":"GET /api/cron-config","discounts":{"list":"GET /api/discounts","get":"GET /api/discounts/:id","create":"POST /api/discounts","update":"PUT /api/discounts/:id","toggle":"PATCH /api/discounts/:id/toggle","delete":"DELETE /api/discounts/:id","sync":"POST /api/discounts/:id/sync","stats":"GET /api/discounts/:id/stats"},"marketing":{"checkByUserId":"GET /api/marketing/check/:userId","checkByEmail":"GET /api/marketing/check-email/:email","syncUser":"POST /api/marketing/sync/:userId","syncBulk":"POST /api/marketing/sync-bulk","syncAllVerified":"POST /api/marketing/sync-all-verified"},"storageConfig":{"get":"GET /api/storage-config","update":"PUT /api/storage-config","updateSizes":"PATCH /api/storage-config/document-sizes","updateLimits":"PATCH /api/storage-config/default-limits","reset":"POST /api/storage-config/reset","invalidateCache":"POST /api/storage-config/invalidate-cache"},"folderInactivity":{"list":"GET /api/folder-inactivity","summary":"GET /api/folder-inactivity/summary","byUser":"GET /api/folder-inactivity/user/:userId","details":"GET /api/folder-inactivity/:folderId"},"dashboard":{"summary":"GET /api/dashboard/summary","users":"GET /api/dashboard/users","subscriptions":"GET /api/dashboard/subscriptions","folders":"GET /api/dashboard/folders"},"tokenConfig":{"get":"GET /api/token-config","update":"PUT /api/token-config","invalidateCache":"POST /api/token-config/invalidate-cache"},"emailLogs":{"list":"GET /api/email-logs","stats":"GET /api/email-logs/stats","templates":"GET /api/email-logs/templates","getById":"GET /api/email-logs/:id","getBySesId":"GET /api/email-logs/ses/:sesMessageId","updateStatus":"PATCH /api/email-logs/ses/:sesMessageId/status"},"userResources":{"summary":"GET /api/user-resources/:userId/summary","folders":"GET /api/user-resources/:userId/folders","calculators":"GET /api/user-resources/:userId/calculators","contacts":"GET /api/user-resources/:userId/contacts"},"capsolver":{"balance":"GET /api/capsolver/balance"},"expenses":{"list":"GET /api/expenses","get":"GET /api/expenses/:id","create":"POST /api/expenses","update":"PUT /api/expenses/:id","delete":"DELETE /api/expenses/:id","stats":"GET /api/expenses/stats","types":"GET /api/expenses/types","bulk":"POST /api/expenses/bulk"},"onboarding":{"summary":"GET /api/onboarding/summary","events":"GET /api/onboarding/events","stuckUsers":"GET /api/onboarding/stuck-users","funnel":"GET /api/onboarding/funnel","timeToActivation":"GET /api/onboarding/time-to-activation"},"supportContacts":{"list":"GET /api/support-contacts","stats":"GET /api/support-contacts/stats","get":"GET /api/support-contacts/:id","update":"PATCH /api/support-contacts/:id","delete":"DELETE /api/support-contacts/:id","bulkDelete":"POST /api/support-contacts/bulk-delete","bulkStatus":"PATCH /api/support-contacts/bulk-status"},"docs":"GET /api/docs"}}