{"message":"Welcome to the Partner Bio API!","description":"This API provides endpoints for managing user signups, admin operations, and beta code generation for the Partner Bio platform.","endpoints":[{"method":"GET","path":"/","description":"API introduction and documentation."},{"method":"POST","path":"/v1/signup-request","description":"Handles a signup request submitted by a user on the application. Requires JSON body with a valid 'requestID'."},{"method":"POST","path":"/v1/create-account","description":"Handles account creation for new users. Requires JSON body with user details."},{"method":"POST","path":"/v1/analyze-image","description":"Analyzes images using AI. Requires JSON body with image data."},{"method":"POST","path":"/v1/send-email","description":"Sends emails via SendGrid. Requires JSON body with emailData, dynamicTemplateData, and templateId."},{"method":"POST","path":"/v1/export-user-data","description":"Exports all user data in GDPR-compliant format. Requires authentication (Bearer token) and JSON body with userId, deliveryMethod ('email' or 'download'), and email (if deliveryMethod is 'email').","authentication":"Required - Bearer token","requestBody":{"userId":"string (UUID)","deliveryMethod":"'email' | 'download' (default: 'download')","email":"string (required if deliveryMethod is 'email')"},"responseExample":{"success":true,"deliveryMethod":"email","estimatedDeliveryTime":"5-10 minutes","metadata":{"dataSize":"2.4 MB","recordCount":1523,"exportId":"uuid"}}},{"method":"POST","path":"/v1/send-2fa-code","description":"Generates and sends a 6-digit 2FA code via email. Requires authentication (Bearer token) and 2FA must be enabled for the user. Rate limited to 3 requests per 15 minutes.","authentication":"Required - Bearer token","requestBody":{"userId":"string (UUID, required) - Must match authenticated user","email":"string (required) - User's email address","purpose":"'login' | 'password_change' | 'email_change' | 'account_recovery' (required)","ipAddress":"string (optional) - Client IP address for logging","userAgent":"string (optional) - Client user agent for logging"},"responseExample":{"success":true,"message":"2FA code sent successfully","data":{"userId":"550e8400-e29b-41d4-a716-446655440000","email":"u***@example.com","purpose":"login","expiresAt":"2024-01-01T12:05:00.000Z","expiresInSeconds":300}}},{"method":"POST","path":"/v1/verify-2fa-code","description":"Validates a 2FA code and marks it as used. Requires authentication (Bearer token). Rate limited to 5 failed attempts per 15 minutes. Codes expire after 5 minutes.","authentication":"Required - Bearer token","requestBody":{"userId":"string (UUID, required) - Must match authenticated user","code":"string (required) - 6-digit verification code","purpose":"'login' | 'password_change' | 'email_change' | 'account_recovery' (required)"},"responseExample":{"success":true,"message":"2FA code verified successfully","data":{"userId":"550e8400-e29b-41d4-a716-446655440000","purpose":"login","verifiedAt":"2024-01-01T12:03:00.000Z"}}},{"method":"POST","path":"/v1/integrations/outlook/exchange","description":"Exchanges Outlook OAuth authorization code for access token and account information. Requires Bearer token authentication and JSON body with authorization code.","authentication":"Required - Bearer token","requestBody":{"code":"string (required) - OAuth authorization code from Outlook"},"responseExample":{"success":true,"account_email":"user@example.com"}},{"method":"POST","path":"/admin/delete-user","description":"Deletes a user from the system. Requires admin authentication (Bearer token) and JSON body with user_id.","authentication":"Required - Bearer token (admin only)","requestBody":{"user_id":"string (UUID, required)"}},{"method":"POST","path":"/admin/invite-user","description":"Sends an invitation to a user. Requires admin authentication (Bearer token) and JSON body with invite_id.","authentication":"Required - Bearer token (admin only)","requestBody":{"invite_id":"string (required)"}},{"method":"POST","path":"/admin/generate-codes","description":"Generates beta codes in bulk. Requires admin authentication (Bearer token) and JSON body with quantity.","authentication":"Required - Bearer token (admin only)","requestBody":{"quantity":"number (required) - Number of beta codes to generate"}},{"method":"POST","path":"/admin/signup-request/approve","description":"Approves a pending signup request. Requires admin authentication (Bearer token) and JSON body with request_id.","authentication":"Required - Bearer token (admin only)","requestBody":{"request_id":"string (required)"}},{"method":"POST","path":"/admin/signup-request/reject","description":"Rejects a pending signup request. Requires admin authentication (Bearer token) and JSON body with requestID.","authentication":"Required - Bearer token (admin only)","requestBody":{"requestID":"string (required)"}},{"method":"POST","path":"/admin/get-sessions","description":"Retrieves user sessions from the auth schema with pagination. Requires admin authentication (Bearer token) and JSON body with start_date, optional page_offset and page_size.","authentication":"Required - Bearer token (admin only)","requestBody":{"start_date":"string (required) - Start date for session query","page_offset":"number (optional, default: 0)","page_size":"number (optional, default: 10)"}},{"method":"POST","path":"/admin/create-dns-verification","description":"Creates a DNS verification record for domain verification. Requires admin authentication (Bearer token) and JSON body with domain.","authentication":"Required - Bearer token (admin only)","requestBody":{"domain":"string (required)"}},{"method":"POST","path":"/admin/verify-dns-record","description":"Verifies a DNS record for domain verification. Requires admin authentication (Bearer token) and JSON body with domain and verificationCode.","authentication":"Required - Bearer token (admin only)","requestBody":{"domain":"string (required)","verificationCode":"string (required)"}},{"method":"GET","path":"/admin/verify-dns-record/status/:domain","description":"Gets the DNS verification status for a domain. Requires admin authentication (Bearer token). Domain is provided as a path parameter.","authentication":"Required - Bearer token (admin only)","pathParameters":{"domain":"string (required) - Domain name to check verification status"}},{"method":"POST","path":"/admin/organization-role-requests/:id/decision","description":"Makes a decision (approve/reject) on an organization role request. Requires admin authentication (Bearer token), request ID as path parameter, and JSON body with status, optional note and title.","authentication":"Required - Bearer token (admin only)","pathParameters":{"id":"string (required) - Organization role request ID"},"requestBody":{"status":"string (required) - Decision status","note":"string (optional)","title":"string (optional)"}}],"usage":"For most endpoints, send JSON requests and expect JSON responses. Admin endpoints require appropriate authentication and domain access. See documentation for details."}