🔐 Authentication
POST
/auth/register
Register a new user with email and password
POST
/auth/login
Login with email and password
POST
/auth/wallet/connect
Connect and authenticate with Solana wallet
POST
/auth/wallet/register
Register a new user with Solana wallet
POST
/auth/wallet/complete-profile
🔒 Auth Required
Complete wallet profile with full name and email
GET
/auth/profile
🔒 Auth Required
Get current user profile
GET
/auth/profile/status
🔒 Auth Required
Get profile completion status
📁 Projects
GET
/projects
Get all projects (supports ?type= and ?status= query params)
GET
/projects/featured
Get featured projects
GET
/projects/recommended
Get recommended projects (supports ?category= query param)
GET
/projects/topics/featured
Get featured topics
GET
/projects/search
Search projects (supports ?q= and ?type= query params)
GET
/projects/slug/:slug
Get a project by slug (SEO-friendly URL)
GET
/projects/:id
Get a specific project by ID
GET
/projects/my/projects
🔒 Auth Required
Get current user's projects
POST
/projects
🔒 Auth Required
Create a new project
PUT
/projects/:id
🔒 Auth Required
Update a project
POST
/projects/:id/publish
🔒 Auth Required
Publish a project to blockchain
POST
/projects/:id/contribute
🔒 Auth Required
Contribute to a project
POST
/projects/:id/donate
🔒 Auth Required
Donate to a project
POST
/projects/:id/feature
🔒 Auth Required
Set project as featured or unfeatured
POST
/projects/:id/milestones
🔒 Auth Required
Add a milestone to a project
PUT
/projects/:id/milestones/:milestoneId
🔒 Auth Required
Update a project milestone
POST
/projects/:id/release-funds
🔒 Auth Required
Release funds from a completed campaign
GET
/projects/:id/updates
Get campaign updates for a project
POST
/projects/:id/updates
🔒 Auth Required
Create a campaign update
GET
/projects/:id/updates/:updateId
Get a specific campaign update
PUT
/projects/:id/updates/:updateId
🔒 Auth Required
Update a campaign update
DELETE
/projects/:id/updates/:updateId
🔒 Auth Required
Delete a campaign update
🤝 Deals
GET
/deals
🔒 Auth Required
Get all deals (supports ?role= query param: 'inventor' or 'investor')
GET
/deals/project/:projectId
🔒 Auth Required
Get deals for a specific project
GET
/deals/:id
🔒 Auth Required
Get a specific deal by ID
POST
/deals
🔒 Auth Required
Create a new deal
PUT
/deals/:id
🔒 Auth Required
Update a deal (supports ?role= query param: 'inventor' or 'investor')
POST
/deals/:id/release-funds
🔒 Auth Required
Release funds from deal escrow
POST
/deals/:id/complete
🔒 Auth Required
Complete a deal (supports ?role= query param: 'inventor' or 'investor')
⛓️ Solana
GET
/solana/test
Test endpoint to verify Solana controller is working
GET
/solana/program-ids
Get Solana program IDs and cluster info
GET
/solana/price
Get current SOL price
GET
/solana/funding-goal-limits
Get funding goal limits
GET
/solana/idl/:programId
Get IDL for a program
GET
/solana/idl/:programId/refresh
Refresh IDL for a program (clears cache and reloads from local file)
GET
/solana/platform-wallet
Get platform wallet address (fees only)
GET
/solana/campaign-wallet/:projectId
Get campaign wallet address for a project
GET
/solana/deal-wallet/:dealId
Get deal escrow wallet address
🎫 Support Tickets
POST
/support/tickets
🔒 Auth Required
Create a new support ticket
GET
/support/tickets
🔒 Auth Required
Get support tickets (supports ?status=, ?category=, ?limit=, ?offset= query params). Admins can view all tickets.
GET
/support/tickets/stats
🔒 Auth Required
Get support ticket statistics. Admins can view all ticket stats.
GET
/support/tickets/:id
🔒 Auth Required
Get a specific support ticket by ID. Admins can view any ticket.
PUT
/support/tickets/:id
🔒 Auth Required
Update a support ticket. Admins can update any ticket.
POST
/support/tickets/:id/messages
🔒 Auth Required
Add a message to a support ticket
DELETE
/support/tickets/:id
🔒 Auth Required
Delete a support ticket. Admins can delete any ticket.
POST
/support/tickets/:id/reanalyze
🔒 Auth Required
Reanalyze a support ticket with AI
📊 Analytics
POST
/analytics/pageview
Record a page view (public endpoint, optional auth)
POST
/analytics/event
Record a user event (public endpoint, optional auth)
POST
/analytics/search
Record a search query (public endpoint, optional auth)
POST
/analytics/form
Record a form interaction (public endpoint, optional auth)
POST
/analytics/performance
Record performance metrics (public endpoint)
POST
/analytics/error
Record an error (public endpoint, optional auth)
POST
/analytics/session
Record or update a session (public endpoint, optional auth)
POST
/analytics/journey
Record a user journey step (public endpoint, optional auth)
POST
/analytics/transaction-intent
Record a transaction intent (public endpoint, optional auth)
POST
/analytics/wallet-event
Record a wallet event (public endpoint, optional auth)
POST
/analytics/transaction-status
Record a transaction status (public endpoint, optional auth)
POST
/analytics/batch
Batch record multiple analytics events (public endpoint, optional auth)
⚙️ Config
GET
/config/public/payment-settings
Get public payment settings (no auth required)
GET
/config
🔒 Auth Required
Get platform configuration
GET
/config/:key
🔒 Auth Required
Get specific config value
PUT
/config
🔒 Auth Required
Update multiple configuration values
PUT
/config/:key
🔒 Auth Required
Update a specific configuration value
PUT
/config/refresh
🔒 Auth Required
Refresh configuration cache
📧 Email
GET
/email/preferences
🔒 Auth Required
Get user email preferences
PUT
/email/preferences
🔒 Auth Required
Update user email preferences
GET
/email/unsubscribe
Get unsubscribe page (public, uses token)
POST
/email/unsubscribe
Process unsubscribe request (public, uses token)
POST
/email/newsletter/subscribe
Subscribe to newsletter (public)
POST
/email/newsletter/unsubscribe
Unsubscribe from newsletter (public, uses token)
GET
/email/newsletter/subscription
Get newsletter subscription status (public, uses token)
GET
/email/newsletter/stats
🔒 Auth Required
Get newsletter statistics
POST
/email/test
Send test email (for debugging)
GET
/email/logs
Get email logs (supports ?email= and ?limit= query params)
👨💼 Admin Panel
POST
/admin/auth/login
Admin login
POST
/admin/auth/logout
🔒 Admin Auth
Admin logout
GET
/admin/auth/me
🔒 Admin Auth
Get current admin profile
POST
/admin/auth/validate-session
🔒 Admin Auth
Validate admin session
GET
/admin/auth/dashboard/stats
🔒 Admin Auth
Get dashboard statistics
GET
/admin/auth/analytics
🔒 Admin Auth
Get analytics data
GET
/admin/auth/activity
🔒 Admin Auth
Get activity logs (supports ?type=, ?category=, ?limit=)
GET
/admin/auth/reports
🔒 Admin Auth
Get reports
GET
/admin/auth/projects
🔒 Admin Auth
Get all projects
POST
/admin/auth/projects/:id/feature
🔒 Admin Auth
Set project as featured
POST
/admin/auth/projects/:id/delete
🔒 Admin Auth
Delete a project
POST
/admin/auth/projects/:id/mark-inappropriate
🔒 Admin Auth
Mark project as inappropriate
PUT
/admin/auth/projects/:id/status
🔒 Admin Auth
Update project status
GET
/admin/auth/campaigns
🔒 Admin Auth
Get all campaigns
POST
/admin/auth/campaigns/:id/pause
🔒 Admin Auth
Pause a campaign
POST
/admin/auth/campaigns/:id/resume
🔒 Admin Auth
Resume a paused campaign
POST
/admin/auth/campaigns/:id/refund
🔒 Admin Auth
Refund a campaign
GET
/admin/auth/deals
🔒 Admin Auth
Get all deals
POST
/admin/auth/deals/:id/approve
🔒 Admin Auth
Approve a deal
POST
/admin/auth/deals/:id/reject
🔒 Admin Auth
Reject a deal
POST
/admin/auth/deals/:id/mediate
🔒 Admin Auth
Mediate a deal
POST
/admin/auth/deals/:id/complete
🔒 Admin Auth
Complete a deal
PUT
/admin/auth/deals/:id
🔒 Admin Auth
Update a deal
GET
/admin/auth/users
🔒 Admin Auth
Get all users
GET
/admin/auth/profiles
🔒 Admin Auth
Get all profiles
GET
/admin/auth/contributions
🔒 Admin Auth
Get all contributions
GET
/admin/auth/transactions
🔒 Admin Auth
Get all transactions
GET
/admin/auth/payments
🔒 Admin Auth
Get all payments
GET
/admin/auth/treasury
🔒 Admin Auth
Get treasury information
GET
/admin/auth/platform-fees
🔒 Admin Auth
Get platform fees
GET
/admin/auth/settings
🔒 Admin Auth
Get platform settings
PUT
/admin/auth/settings
🔒 Admin Auth
Update platform settings
GET
/admin/auth/system/status
🔒 Admin Auth
Get system status
GET
/admin/auth/system/metrics
🔒 Admin Auth
Get system metrics
GET
/admin/auth/notifications/recent
🔒 Admin Auth
Get recent notifications (supports ?limit=)
GET
/admin/auth/notifications/unread-count
🔒 Admin Auth
Get unread notification count
POST
/admin/auth/notifications/:id/read
🔒 Admin Auth
Mark notification as read
POST
/admin/auth/notifications/mark-all-read
🔒 Admin Auth
Mark all notifications as read
PUT
/admin/auth/profile/picture
🔒 Admin Auth
Update admin profile picture
GET
/admin/auth/preferences/dark-mode
🔒 Admin Auth
Get dark mode preference
POST
/admin/auth/preferences/dark-mode
🔒 Admin Auth
Update dark mode preference
GET
/admin/auth/solana/programs
🔒 Admin Auth
Get Solana programs information
GET
/admin/auth/solana/contract-config
🔒 Admin Auth
Get contract configuration
POST
/admin/auth/solana/sync/campaign
🔒 Admin Auth
Sync campaign configuration
POST
/admin/auth/solana/sync/treasury
🔒 Admin Auth
Sync treasury fee configuration
POST
/admin/auth/solana/sync/full
🔒 Admin Auth
Perform full Solana sync
GET
/admin/auth/posts
🔒 Admin Auth
Get all posts
POST
/admin/auth/posts
🔒 Admin Auth
Create a post
PUT
/admin/auth/posts/:id
🔒 Admin Auth
Update a post
POST
/admin/auth/posts/:id/delete
🔒 Admin Auth
Delete a post
GET
/admin/auth/sessions
🔒 Admin Auth
Get active sessions
POST
/admin/auth/sessions/:id/revoke
🔒 Admin Auth
Revoke a session
🛡️ Moderation (Admin)
GET
/admin/auth/moderation/content
🔒 Admin Auth
Get pending content (supports ?limit=, ?offset=)
GET
/admin/auth/moderation/flagged
🔒 Admin Auth
Get flagged content (supports ?limit=, ?offset=)
POST
/admin/auth/moderation/moderate/:contentId
🔒 Admin Auth
Moderate content with AI
POST
/admin/auth/moderation/action
🔒 Admin Auth
Perform moderation action
POST
/admin/auth/moderation/batch
🔒 Admin Auth
Batch moderate content
GET
/admin/auth/moderation/stats
🔒 Admin Auth
Get moderation statistics