Skip to main content

Studio API

Studios often have integration needs with other internal tools and platforms they use to centralize data about their models and tippers that may span multiple platforms.

For Studio Plus accounts we offer an API that currently covers the following endpoints:

  • Recent cam sessions: A list of the most recently (24h) completed cam sessions (broadcasts) of your models.
  • Cam session details: A comprehensive list of stats and insights for the completed cam session.
info

If you are a studio with integration needs, reach out to CB Cam Insights support to discuss the API and the Studio Plus plan option. The details of the API below are geared towards developers to plug the data into your system.

Recent Cam Sessions API

Retrieve a list of cam sessions for the studio’s models that finished within the last 24 hours.

Endpoint

POST https://api.cbcaminsights.com/public_api/recent_cam_sessions

Request Body

Send a JSON object with the following properties (note that models is optional here):

{
"apiKey": "your_api_key",
"models": ["modelA", "modelB"]
}
PropertyTypeRequiredDescription
apiKeystringYesYour API key for authentication
modelsstring[]NoList of model usernames; if omitted, returns sessions for all models in your studio`

Response

Returns a JSON array of camsessionSummary objects for all sessions that ended in the past 24 hours:

[
{
"camSessionId": 123456,
"performerName": "model_user",
"startTime": "2025-05-18T20:00:00Z",
"endTime": "2025-05-18T22:15:00Z",
"totalTokens": 15000,
"tipTokens": 9000,
"purchaseTokens": 5000,
"privateTokens": 1000,
"viewers": 120,
"followersAdded": 35,
"earningsPerHour": 6250.50,
"duration": "2h 15m"
}
]

camSessionSummary Schema

PropertyTypeDescription
camSessionIdintegerUnique identifier of the session
performerNamestringModel's username
startTimestringISO8601 timestamp when session started
endTimestringISO8601 timestamp when session ended (nullable)
totalTokensintegerTotal tokens earned
tipTokensintegerTokens earned via tips
purchaseTokensintegerTokens earned via purchases
privateTokensintegerTokens earned via private shows
viewersintegerPeak concurrent viewers
followersAddedintegerNew followers gained during session
earningsPerHournumberToken earnings per hour in USD (decimal)
durationstringHuman-friendly duration (e.g., "1h 23m")

Cam Session Details API

Retrieve detailed statistics and events for a specific cam session by its camSessionId. This endpoint will only return data for cam sessions that were for one of the Studio's configured models.


Endpoint

POST https://api.cbcaminsights.com/public_api/cam_session_details

Request Body

Send a JSON object with the following properties:

{
"apiKey": "your_api_key",
"camSessionId": 123456
}
PropertyTypeRequiredDescription
apiKeystringYesYour API key for authentication
camSessionIdintegerYesIdentifier of the cam session to fetch details for

Response

Returns a JSON object with the following structure:

{
"overallStats": { /* CamSessionSummary */ },
"summary": "Optional AI-generated session summary as text",
"tips": [ /* TipWithTimeSpenderAndTipMenuItem[] */ ],
"purchases": [ /* PurchaseWithTimeAndSpender[] */ ],
"satisfactionScores": [ /* SatisfactionScoreDetails[] */ ]
}

CamSessionSummary

Aggregate stats for this cam session, same data that's returned for each cam session from the Recent Cam Sessions endpoint.

PropertyTypeDescription
camSessionIdintegerID of the session (matches request parameter)
performerNamestringModel's username
startTimestringISO8601 timestamp when session started
endTimestringISO8601 timestamp when session ended (nullable, null if still live)
totalTokensintegerTotal tokens earned
tipTokensintegerTokens earned via tips
purchaseTokensintegerTokens earned via purchases
privateTokensintegerTokens earned via private shows
viewersintegerPeak concurrent viewers
followersAddedintegerNew followers gained during the session
earningsPerHournumberEarnings in USD per hour (decimal)
durationstringHuman-friendly duration (e.g., "1h 23m")

TipWithTimeSpenderAndTipMenuItem

PropertyTypeDescription
timestringISO8601 timestamp of the tip
amountintegerToken amount tipped
tipperstringUsername of the tipper
tipMenuItemstringName of the matched tip menu item (if applicable)

PurchaseWithTimeAndSpender

PropertyTypeDescription
timestringISO8601 timestamp of the purchase
itemstringName of the purchased menu item
amountintegerToken amount spent
buyerstringUsername of the buyer

SatisfactionScoreDetails

PropertyTypeDescription
timestringISO8601 timestamp when the score was recorded
upVotesintegerNumber of positive satisfaction votes
downVotesintegerNumber of negative satisfaction votes
percentnumberPercentage of positive votes (0–100)
maxintegerMaximum possible score or votes scale used

Example Request

POST /public_api/cam_session_details HTTP/1.1
Host: api.cbcaminsights.com
Content-Type: application/json

{
"apiKey": "ABC123",
"camSessionId": 123456
}

Example Response

{
"overallStats": {
"camSessionId": 123456,
"performerName": "model_user",
"startTime": "2025-05-18T20:00:00Z",
"endTime": "2025-05-18T22:15:00Z",
"totalTokens": 15000,
"tipTokens": 9000,
"purchaseTokens": 5000,
"privateTokens": 1000,
"viewers": 120,
"followersAdded": 35,
"earningsPerHour": 6666.66,
"duration": "2h 15m"
},
"summary": "The model delivered an engaging session with steady peaks of activity...",
"tips": [
{
"time": "2025-05-18T20:05:23Z",
"amount": 100,
"tipper": "user123",
"tipMenuItem": "Cheerful Wave"
}
],
"purchases": [
{
"time": "2025-05-18T21:45:10Z",
"item": "VIP Show",
"amount": 5000,
"buyer": "user456"
}
],
"satisfactionScores": [
{
"time": "2025-05-18T22:14:00Z",
"upVotes": 45,
"downVotes": 5,
"percent": 90.0,
"max": 50
}
]
}