API
ComusThumbz REST API Documentation
AdminModeration
GET /api/v1/adminmoderation
Bulk approve POST /api/v1/admin/moderation/bulk/approve
- Auth Required:
PUBLIC
DELETE /api/v1/adminmoderation
Delete content (DMCA takedown) DELETE /api/v1/admin/moderation/{type}/{id}
- Auth Required:
PUBLIC
AdminUsers
GET /api/v1/adminusers
Get user activity log GET /api/v1/admin/users/{id}/activity
- Auth Required:
PUBLIC
PUT /api/v1/adminusers
Update user PUT /api/v1/admin/users/{id}
- Auth Required:
PUBLIC
Ads
GET /api/v1/ads
Get ad statistics (Admin) GET /api/v1/admin/ads/{id}/stats
- Auth Required:
PUBLIC
Analytics
GET /api/v1/analytics
Get traffic analytics GET /api/v1/analytics/traffic
- Auth Required:
PUBLIC
Auth
GET /api/v1/auth
Disable 2FA DELETE /api/v1/auth/2fa
- Auth Required:
PUBLIC
Banners
GET /api/v1/banners
Get banner statistics GET /api/v1/banners/{id}/stats
- Auth Required:
PUBLIC - Parameters:
bannerId(int): Banner ID
Categories
GET /api/v1/categories
Get galleries in category GET /api/v1/categories/{id}/galleries
- Auth Required:
PUBLIC - Parameters:
id(int): Category ID
POST /api/v1/categories
Create new category (admin only) POST /api/v1/categories
- Auth Required:
PUBLIC
PUT /api/v1/categories
Update category (admin only) PUT /api/v1/categories/{id}
- Auth Required:
PUBLIC - Parameters:
id(int): Category ID
DELETE /api/v1/categories
Delete category (admin only) DELETE /api/v1/categories/{id}
- Auth Required:
PUBLIC - Parameters:
id(int): Category ID
ClickTracking
GET /api/v1/clicktracking
GET /api/v1/stats/clicks/user/{userId} Get user's click history (User must be authenticated)
- Auth Required:
PUBLIC
Comments
GET /api/v1/comments
GET /api/v1/comments/flagged Get all flagged comments (admin only)
- Auth Required:
PUBLIC
POST /api/v1/comments
POST /api/v1/cams/{site}/{performer}/comments Add a comment to a webcam performer
- Auth Required:
PUBLIC
PUT /api/v1/comments
PUT /api/v1/comments/{id}/status Update comment status (admin only)
- Auth Required:
PUBLIC
DELETE /api/v1/comments
DELETE /api/v1/comments/{id}/like Remove like/dislike from a comment
- Auth Required:
PUBLIC
CreatorEarnings
GET /api/v1/creatorearnings
GET /creator/earnings/platform-settings - Get platform fee settings Returns global platform fee and creator's custom fee if applicable This endpoint is PUBLIC (no auth required) for display purposes
- Auth Required:
PUBLIC
CreatorProfiles
GET /api/v1/creatorprofiles
CreatorProfilesController - Creator profile management
- Auth Required:
PUBLIC
POST /api/v1/creatorprofiles
POST /creator/profile - Create new creator profile
- Auth Required:
PUBLIC
PUT /api/v1/creatorprofiles
PATCH /creator/profile/me - Update authenticated creator's profile
- Auth Required:
PUBLIC
Creators
GET /api/v1/creators
POST /api/v1/creators/me/cover Upload creator cover image
- Auth Required:
PUBLIC
PUT /api/v1/creators
PUT /api/v1/creators/me Update creator profile settings
- Auth Required:
PUBLIC
CreatorSubscriptions
GET /api/v1/creatorsubscriptions
DELETE /creators/{id}/packages/{packageid} - Creator disables a package
- Auth Required:
PUBLIC
Earnings
GET /api/v1/earnings
GET /api/v1/creator/earnings/by-source Get earnings breakdown by source (tips, subscriptions, PPV) Includes counts and totals
- Auth Required:
PUBLIC
Favorites
GET /api/v1/favorites
GET /favorites/counts Get user's favorites counts by type
- Auth Required:
PUBLIC
POST /api/v1/favorites
POST /favorites Add item to favorites Body: { "contenttype": "video|gallery|camperformer|model", "contentid": "123", "notes": "optional" }
- Auth Required:
PUBLIC
DELETE /api/v1/favorites
DELETE /favorites/{type}/{id} Remove from favorites
- Auth Required:
PUBLIC
Features
GET /api/v1/features
Get enabled cam sites GET /api/v1/features/cams
- Auth Required:
PUBLIC
Feed
GET /api/v1/feed
Get trending content GET /api/v1/feed/trending
- Auth Required:
PUBLIC
Friends
GET /api/v1/friends
Reject friend request PUT /api/v1/friends/{id}/reject
- Auth Required:
PUBLIC - Parameters:
id(int): Friendship ID
POST /api/v1/friends
Send friend request POST /api/v1/friends
- Auth Required:
PUBLIC
DELETE /api/v1/friends
Remove friend DELETE /api/v1/friends/{id}
- Auth Required:
PUBLIC - Parameters:
id(int): Friendship ID
Galleries
GET /api/v1/galleries
GET /galleries/{id}/related - Get related galleries
- Auth Required:
PUBLIC
POST /api/v1/galleries
POST /galleries - Create gallery (admin only)
- Auth Required:
PUBLIC
PUT /api/v1/galleries
PATCH /galleries/{id}/status - Update gallery status (admin only)
- Auth Required:
PUBLIC
DELETE /api/v1/galleries
DELETE /galleries/{id} - Delete gallery (admin only)
- Auth Required:
PUBLIC
ImpressionTracking
GET /api/v1/impressiontracking
GET /api/v1/impressions/trends/{type} Get performance trends over time
- Auth Required:
PUBLIC
LiveStream
GET /api/v1/livestream
GET /api/v1/live/{id}/per-minute/status Get current per-minute session status
- Auth Required:
PUBLIC
Media
GET /api/v1/media
Get storage URL for a specific video file
- Auth Required:
PUBLIC - Parameters:
videoId(int): Video IDfileType(string): File type (thumbnail, preview, poster, video, hls, etc.)- Returns: void - (returns download URL or error)
Messages
GET /api/v1/messages
Get list of blocked users GET /api/v1/messages/blocked
- Auth Required:
PUBLIC
DELETE /api/v1/messages
Delete a message DELETE /api/v1/messages/{id}
- Auth Required:
PUBLIC
Models
GET /api/v1/models
GET /api/v1/models/{id}/details Get unified model details Query params: - type: regular|cammodel (required)
- Auth Required:
PUBLIC
POST /api/v1/models
POST /api/v1/models Create new model (admin only)
- Auth Required:
PUBLIC
PUT /api/v1/models
PUT /api/v1/modelclasses/{id}/status Update model status (admin only)
- Auth Required:
PUBLIC
DELETE /api/v1/models
DELETE /api/v1/modelclasses/{id} Delete model (admin only)
- Auth Required:
PUBLIC
Notifications
GET /api/v1/notifications
Get notification preferences GET /api/v1/notifications/preferences
- Auth Required:
PUBLIC
PUT /api/v1/notifications
Update notification preferences PUT /api/v1/notifications/preferences
- Auth Required:
PUBLIC
DELETE /api/v1/notifications
Delete notification (soft delete) DELETE /api/v1/notifications/{id}
- Auth Required:
PUBLIC
Player
GET /api/v1/player
Player Controller Handles video player configuration and settings
- Auth Required:
PUBLIC
Playlists
GET /api/v1/playlists
PUT /playlists/{id}/items/reorder Reorder playlist items (owner only) Body: { "items": [ { "itemid": 1, "sortorder": 0 }, { "itemid": 2, "sortorder": 1 } ] }
- Auth Required:
PUBLIC
POST /api/v1/playlists
POST /playlists/{id}/items Add video to playlist (owner only) Body: { "videoid": 123, "sortorder": 1 }
- Auth Required:
PUBLIC
PUT /api/v1/playlists
PUT /playlists/{id} Update playlist (owner only)
- Auth Required:
PUBLIC
DELETE /api/v1/playlists
DELETE /playlists/{id}/items/{itemId} Remove video from playlist (owner only)
- Auth Required:
PUBLIC
Posts
GET /api/v1/posts
GET /api/v1/posts/{id}/poll Get poll data for a post
- Auth Required:
PUBLIC - Parameters:
postId(int): Post ID
POST /api/v1/posts
POST /api/v1/posts/with-product Create a post with product attachment Handles multipart/form-data with files
- Auth Required:
PUBLIC
PUT /api/v1/posts
PUT /api/v1/posts/{id}/poll Update poll data for a post
- Auth Required:
PUBLIC - Parameters:
postId(int): Post ID
DELETE /api/v1/posts
DELETE /comments/{id} Delete a comment (soft delete)
- Auth Required:
PUBLIC
Products
GET /api/v1/products
Refund a merchandise purchase (Option 2: Proportional Loss) - User gets full refund (100%) - Creator loses their portion (80%) - Platform absorbs their portion (20%)
- Auth Required:
PUBLIC
POST /api/v1/products
Products Controller Handles creator merchandise/product operations
- Auth Required:
AUTH
PUT /api/v1/products
Update order shipping status and tracking number
- Auth Required:
PUBLIC
Ratings
GET /api/v1/ratings
GET /api/v1/models/{id}/rating Get rating stats for a model
- Auth Required:
PUBLIC
Search
GET /api/v1/search
DELETE /search/history - Clear user's search history
- Auth Required:
PUBLIC
SecurityQuestions
GET /api/v1/securityquestions
Reset password using security question token POST /api/v1/auth/reset-password-with-token
- Auth Required:
PUBLIC
Settings
GET /api/v1/settings
Get video player settings GET /api/v1/settings/player
- Auth Required:
PUBLIC
PUT /api/v1/settings
Get all public settings (cached) This is the main method that builds the settings array / private function getPublicSettings(): array { global $conn;
- Auth Required:
PUBLIC
Sponsors
GET /api/v1/sponsors
Track sponsor click POST /api/v1/sponsors/{id}/click
- Auth Required:
PUBLIC
Styles
GET /api/v1/styles
Bulk save multiple styles at once POST /api/v1/styles/bulk
- Auth Required:
PUBLIC
DELETE /api/v1/styles
Delete a specific style override DELETE /api/v1/styles/{id}
- Auth Required:
PUBLIC - Parameters:
id(int): Style ID
Subscriptions
GET /api/v1/subscriptions
Upgrade subscription POST /api/v1/subscriptions/upgrade
- Auth Required:
PUBLIC
Tags
GET /api/v1/tags
Parse tag string and return tag IDs (creates tags if they don't exist) POST /api/v1/tags/parse
- Auth Required:
PUBLIC
POST /api/v1/tags
Create new tag (admin only) POST /api/v1/tags
- Auth Required:
PUBLIC
PUT /api/v1/tags
Update tag (admin only) PUT /api/v1/tags/{id}
- Auth Required:
PUBLIC - Parameters:
id(int): Tag ID
DELETE /api/v1/tags
Delete tag (admin only) DELETE /api/v1/tags/{id}
- Auth Required:
PUBLIC - Parameters:
id(int): Tag ID
Tips
GET /api/v1/tips
POST /api/v1/tips/{tipid}/refund Refund a tip (creator only) - Option 2: Proportional Loss User gets 100% back, creator loses their portion (80%), platform absorbs their portion (20%)
- Auth Required:
PUBLIC
UserPreferences
GET /api/v1/userpreferences
GET /user/preferences Get all user preferences (privacy, stream, email)
- Auth Required:
PUBLIC
PUT /api/v1/userpreferences
PUT /user/preferences/email Update user's email preferences
- Auth Required:
PUBLIC
Users
GET /api/v1/users
Get trusted devices for current user GET /api/v1/user/trusted-devices
- Auth Required:
PUBLIC
PUT /api/v1/users
Update profile privacy settings PUT /api/v1/users/me/privacy
- Auth Required:
PUBLIC
DELETE /api/v1/users
Remove a trusted device DELETE /api/v1/user/trusted-devices/{id}
- Auth Required:
PUBLIC
UserVerification
GET /api/v1/userverification
GET /admin/verification/stats Get verification statistics (admin only)
- Auth Required:
PUBLIC
PUT /api/v1/userverification
PUT /admin/verification/{userId}/status Update verification status (admin only)
- Auth Required:
PUBLIC
DELETE /api/v1/userverification
DELETE /user/verification/documents/{documentId} Delete a verification document
- Auth Required:
PUBLIC
VideoReports
GET /api/v1/videoreports
GET /video-reports/reasons - Get list of valid report reasons
- Auth Required:
PUBLIC
Videos
GET /api/v1/videos
Generate URL-friendly slug from title
- Auth Required:
PUBLIC - Parameters:
title(string):- Returns: string -
POST /api/v1/videos
POST /videos/{id}/tags - Add tag to video
- Auth Required:
PUBLIC
PUT /api/v1/videos
PATCH /videos/{id}/status - Update video status (admin only)
- Auth Required:
PUBLIC
DELETE /api/v1/videos
DELETE /videos/{id} - Delete video (owner or admin)
- Auth Required:
PUBLIC
WatchHistory
GET /api/v1/watchhistory
POST /content/{type}/{id}/track Track viewing of any content type (camperformer, gallery, model) Body: optional { "watchedduration": 1, "totalduration": 1 }
- Auth Required:
PUBLIC
PUT /api/v1/watchhistory
POST /videos/{id}/progress Update video watch progress Body: { "watchedduration": 120, "totalduration": 600, "lastposition": 120 }
- Auth Required:
PUBLIC
DELETE /api/v1/watchhistory
DELETE /history/{id} Remove specific history entry
- Auth Required:
PUBLIC
Webcam
GET /api/v1/webcam
GET /cams/{id}/schedule - Get performer's schedule/heatmap data
- Auth Required:
PUBLIC - Parameters:
performerId(int): Performer ID from tblCamsPerformers- Returns: array - Schedule data with metadata
Webhooks
GET /api/v1/webhooks
GET /api/v1/webhooks/status Get cloud encoding status (requires admin auth)
- Auth Required:
PUBLIC
Withdrawals
GET /api/v1/withdrawals
GET /api/v1/creator/withdrawals/my-requests Get withdrawal history for current user
- Auth Required:
PUBLIC