Skip to main content

Overview

Your JOIP profile contains personal information, account settings, credit balance, and usage statistics. You can update most profile fields at any time through the API or web interface.

Profile Structure

User Profile Fields

User Interests

Set during onboarding or updated later:

Updating Your Profile

Editable Fields

You can update these fields via PATCH /api/auth/user:
  • firstName - Your first name
  • lastName - Your last name
  • profileImageUrl - URL to your profile picture
Example Request:

Protected Fields

These fields cannot be changed via standard profile update:
  • email - Set by authentication provider
  • role - Admin-only modification
  • isActive - Admin-only modification
  • referralCode - Auto-generated, permanent
  • referredBy - Set once during signup
  • credits - Managed by credit system

Input Validation

All profile updates are validated:
Rules:
  • First and last names: 1-100 characters
  • Profile image URL must be valid URL format
  • All fields are optional (only update what you provide)

Age Verification

Why It’s Required

Age verification is required for:
  • Compliance with adult content regulations
  • Access to certain NSFW features
  • Legal protection for the platform

Verification Process

Endpoint: POST /api/auth/verify-age Request:
Validation:
  • Birth date must be in YYYY-MM-DD format
  • Must be a valid calendar date
  • Cannot be in the future
  • Cannot be less than 18 years ago
Response:

Privacy & Compliance

Age verification is logged for compliance:
Privacy Notes:
  • Birth date stored encrypted in database
  • Only used for age verification, not shared publicly
  • Logged activity includes timestamp and IP for legal compliance

Onboarding Preferences

First-Time Setup

New users complete onboarding to personalize their experience: Endpoint: POST /api/auth/onboarding Request:
Validation:
  • contentRole: Must be “creator” or “consumer”
  • preferredFeatures: Maximum 2 feature slugs
  • preferredTags: Maximum 5 tag slugs
Response:

Resetting Onboarding

Onboarding can only be completed once unless reset by admin or in dev environment. Endpoint: POST /api/auth/onboarding/reset (Admin/Dev only) Authorization:
  • Admin users (role: admin or super_admin)
  • Development environment (NODE_ENV !== 'production')
Use Case: Testing onboarding flow during development.

Credit Balance

Your profile includes current credit information:

Credit Info Structure

Viewing Credit Balance

Client-Side:

Credit History

View detailed transaction history:
See Credits System for more details.

Referral Information

Your profile includes referral statistics:

Referral Code

Every user has a unique 8-character referral code:

Referral Stats

Who Referred You

If you were referred:
See Referral Program for more details.

Usage Statistics

Your account tracks comprehensive usage metrics:

Tracked Metrics

Sessions:
  • Sessions created
  • Sessions viewed
  • Sessions edited/deleted
  • Sessions shared/favorited
Smart Captions:
  • Total captions generated
  • Custom vs themed captions
  • Caption themes used (JOI, Forced-Bi, Beta, etc.)
Babecock Studio:
  • Images created
  • Remixes created
  • Layouts used (side-by-side vs top-bottom)
HypnoCocks:
  • Total animations created
Media Vault:
  • Media uploaded/deleted
  • Media shared/downloaded
  • Bulk downloads
General:
  • Login count
  • Pages viewed
  • API calls total
  • Time spent (minutes)

Viewing Your Stats

Usage statistics are tracked in the user_usage_stats table:
API Endpoint (if implemented):

Activity Logs

Detailed activity logs are also maintained:
Example Queries:

Account Roles

User Roles

Role-Based Access

Certain features require specific roles:

Requesting Admin Access

Admin access is granted manually:
  1. Contact platform administrators
  2. Provide justification for admin access
  3. Admin creates temporary or permanent admin grant
  4. Access logged in admin audit logs

Profile Privacy

What’s Public

  • First name (if you share content publicly)
  • Profile image (if you share content publicly)
  • Public sessions and media you create

What’s Private

  • Email address
  • Last name
  • Birth date
  • Credit balance and transactions
  • Referral earnings
  • Usage statistics
  • Activity logs
  • IP addresses

Data Sanitization

Sensitive data is removed before sending to client:
Never exposed:
  • Password hashes (local auth only)
  • Session tokens
  • Internal database IDs (in some contexts)

Account Deletion

Request Deletion

To delete your account:
  1. Contact support with deletion request
  2. Verify your identity
  3. Admin processes deletion

What Gets Deleted

Immediately:
  • User profile record
  • Session cookies
  • Active sessions
Cascading Deletes:
  • All sessions you created
  • All media in your vault
  • All activity logs
  • Credit balance and transaction history
  • Referral records (as referred user)
Preserved (anonymized):
  • Community content you shared (anonymized)
  • Referral records (as referrer - anonymized)
  • Aggregate analytics (no personal identifiers)

Cascade Behavior

Database foreign keys with ON DELETE CASCADE:

API Reference

Get Current User

Get your complete profile including credits.Response:

Update Profile

Update your profile information.Request Body:
Response: Returns updated user object (sanitized)Rate Limiting: Subject to public API rate limitsActivity Logging: Update is logged with fields changed

Verify Age

Update age verification status.Request Body:
Response:

Complete Onboarding

Save onboarding preferences.Request Body:
Can only be completed once unless reset by admin/dev

Best Practices

Profile Security

  1. Use Strong Profile Images
    • Host on trusted CDN (Imgur, Cloudinary, etc.)
    • Use HTTPS URLs only
    • Avoid exposing personal information in image
  2. Be Mindful of Public Info
    • First name is visible on shared content
    • Profile image appears on community posts
    • Consider pseudonym for privacy
  3. Complete Age Verification Early
    • Required for many features
    • One-time process
    • Logged for compliance

Profile Optimization

  1. Complete Onboarding
    • Personalizes your experience
    • Helps with content recommendations
    • Quick 2-minute process
  2. Monitor Credit Balance
    • Set up low balance alerts
    • Track usage patterns
    • Plan tier upgrades if needed
  3. Use Referral Code
    • Share to earn free credits
    • Help grow the community
    • Track your referral success

Client-Side Integration