{"name":"HostRakshak API","version":"0.2.0","endpoints":{"auth":{"POST /api/v1/auth/register":"Create account (display_name, legal_name, email, phone, password, consent_public_identity)","POST /api/v1/auth/login":"Password login → JWT tokens","POST /api/v1/auth/otp/send":"Send OTP (channel, value)","POST /api/v1/auth/otp/verify":"Verify OTP → JWT tokens","POST /api/v1/auth/token/refresh":"Refresh access token"},"users":{"GET /api/v1/users/me":"Current user profile (auth required)","PATCH /api/v1/users/me":"Update profile (auth required)"},"providers":{"GET /api/v1/providers":"List/search providers","GET /api/v1/providers/:slug":"Provider detail","POST /api/v1/providers":"Add new provider (auth required)","POST /api/v1/providers/:slug/claim":"Claim provider profile (no website)","POST /api/v1/providers/:slug/claim/initiate":"Initiate DNS claim verification","POST /api/v1/providers/:slug/claim/verify":"Verify DNS TXT record and claim","GET /api/v1/providers/:slug/reports":"Published reports for provider","GET /api/v1/providers/:slug/reviews":"Reviews for provider"},"reports":{"GET /api/v1/reports":"Public report directory (published only)","POST /api/v1/reports":"Create draft report (auth required)","GET /api/v1/reports/mine":"My reports (auth required)","GET /api/v1/reports/:id":"Report detail","POST /api/v1/reports/:id/evidence":"Upload evidence (multipart, auth required)","PATCH /api/v1/reports/:id/evidence/:evidenceId":"Toggle evidence visibility","POST /api/v1/reports/:id/undertaking":"Complete Legal Undertaking → submit","POST /api/v1/reports/:id/flag":"Flag report for moderation"},"tickets":{"GET /api/v1/reports/:id/ticket":"View cross-ticket (auth required)","POST /api/v1/reports/:id/ticket/messages":"Post message (auth required)","POST /api/v1/reports/:id/ticket/resolve":"Reporter marks resolved"},"reviews":{"GET /api/v1/reviews":"List recent published reviews","GET /api/v1/reviews/mine":"My reviews (auth required)","POST /api/v1/reviews":"Submit review (auth required)","GET /api/v1/reviews/:id":"Review detail","POST /api/v1/reviews/:id/response":"Host responds to review","POST /api/v1/reviews/:id/flag":"Flag review"},"billing":{"GET /api/v1/billing/plans":"Available Verified India plans","GET /api/v1/billing/subscription":"Current subscription status","POST /api/v1/billing/subscribe":"Subscribe to Verified India plan","POST /api/v1/billing/cancel":"Cancel subscription","POST /api/v1/billing/webhook":"Razorpay webhook handler","GET /api/v1/billing/reviewer-plan":"Verified Reviewer plan details","GET /api/v1/billing/reviewer-status":"Current reviewer badge status","POST /api/v1/billing/reviewer-subscribe":"Subscribe to Verified Reviewer (KYC required)"},"kyc":{"GET /api/v1/kyc/status":"KYC verification status","POST /api/v1/kyc/initiate":"Submit details + send Aadhaar OTP","POST /api/v1/kyc/verify-otp":"Verify Aadhaar OTP → approve/reject KYC"},"digest":{"GET /api/v1/digest/preferences":"Get email digest preferences","PATCH /api/v1/digest/preferences":"Update email digest preferences"},"public":{"GET /api/v1/hall-of-fame":"Hall of Fame entries","GET /api/v1/guidelines":"Safety guideline articles","GET /api/v1/guidelines/:slug":"Guideline article detail"},"host_dashboard":{"GET /api/v1/host/dashboard/reports":"Incoming reports (host_owner)","GET /api/v1/host/dashboard/analytics":"Analytics (Verified India)","GET /api/v1/host/dashboard/subscription":"Subscription status","GET /api/v1/host/dashboard/provider":"Own provider profile (host_owner)","PATCH /api/v1/host/dashboard/provider":"Update own provider name/ASN/abuse email (host_owner)","GET /api/v1/host/dashboard/reviews":"Published reviews for own provider (host_owner)","POST /api/v1/host/dashboard/brands":"Add a new brand (requires DNS verification)","POST /api/v1/host/dashboard/brands/:id/verify":"Verify DNS ownership of a brand","DELETE /api/v1/host/dashboard/brands/:id":"Remove an unverified brand"},"admin":{"GET /api/v1/admin/providers":"List all providers (search, paginate)","POST /api/v1/admin/providers":"Create provider","PATCH /api/v1/admin/providers/:id":"Update provider (name, tier, SLA)","DELETE /api/v1/admin/providers/:id":"Delete provider (no reports)","GET /api/v1/admin/users":"List users (search, filter by role)","GET /api/v1/admin/users/:id":"User detail with counts","PATCH /api/v1/admin/users/:id/role":"Change user role (reason required)","GET /api/v1/admin/reports":"All reports (filter by status)","PATCH /api/v1/admin/reports/:id/status":"Change report status (reason required)","DELETE /api/v1/admin/reports/:id":"Permanently delete report (admin only)","GET /api/v1/admin/reviews":"All reviews (filter by status)","POST /api/v1/admin/reviews/:id/remove":"Remove review (reason required)","POST /api/v1/admin/reviews/:id/restore":"Restore review (reason required)","GET /api/v1/admin/outreach":"Outreach queue","POST /api/v1/admin/outreach/:id/log":"Log outreach attempt","POST /api/v1/admin/outreach/:id/mark-contacted":"Mark host contacted → open dispute","GET /api/v1/admin/flags":"Content flags queue","POST /api/v1/admin/flags/:id/resolve":"Resolve flag (notes mandatory)","GET /api/v1/admin/sla":"SLA dashboard","POST /api/v1/admin/sla/:id/override":"Override SLA deadline (reason mandatory)","GET /api/v1/admin/audit-log":"Audit log viewer","GET /api/v1/admin/legal-notices":"Track B inbox","POST /api/v1/admin/legal-notices/:id/action":"Legal notice action","GET /api/v1/admin/hall-of-fame":"Manage Hall of Fame","POST /api/v1/admin/hall-of-fame":"Add Hall of Fame entry","DELETE /api/v1/admin/hall-of-fame/:id":"Remove Hall of Fame entry","POST /api/v1/admin/guidelines":"Add guideline article","PATCH /api/v1/admin/guidelines/:id":"Update guideline article","DELETE /api/v1/admin/guidelines/:id":"Delete guideline article","GET /api/v1/admin/settings":"Platform settings (admin only)","PUT /api/v1/admin/settings":"Update platform settings (admin only)"}}}