logo

Data Models

Understand the data structures and schemas used in the Cherry.tv Affiliates API

Data Models

This page describes the data structures returned by the Cherry.tv Affiliates API.

Row

The main response object that contains all information about a model and their room.

interface Row {
  model: Model;           // Model information
  links: Links;           // Affiliate and room URLs
  embed: Embed;           // Embedding information
  room: Room;             // Current room status
}

Model

Contains detailed information about a model.

interface Model {
  id: string;                    // Unique identifier
  username: string;              // Unique username
  name: string;                  // Display name
  avatar: string;                // URL to avatar image
  age: number;                   // Model's age
  gender: BroadcastCategory;     // Gender category (0-7)
  country: string | null;        // Country code
  level: number;                 // Model level
  followers: number;             // Number of followers
  spoken_languages: string[];    // Languages the model speaks
  tags: string[];                // Hashtags associated with the model
  internal_tags: string[];       // Internal marketing tags
  categories: string[];          // Model categories
  social_links: object;          // Social media links
  images: object;                // Additional model images
  country_name: string;          // Full country name
  level_progress: number;        // Experience bar percentage (0-100)
  about: string;                 // Model's bio/description
  location: string;              // Model's location
  is_new: boolean;               // True if model is a newcomer
}

Gender Categories (BroadcastCategory)

ValueDescription
0Female
1Male
2Couple
3Trans
4Non-binary
5Other
6Unknown
7All

Contains URLs for affiliate purposes.

interface Links {
  affiliate_url: string;  // Direct affiliate URL to model room
  room_url: string;       // Direct URL to model room
}

Example

{
  "affiliate_url": "https://cherry.tv/examplemodel?ref_affid=12345&ref_oid=tracking123",
  "room_url": "https://cherry.tv/examplemodel"
}

Embed

Contains URLs and information for embedding the model's room.

interface Embed {
  stream_url: string;        // URL for embedding the stream
  room_url: object;          // Room URL object
  room_url_revshare: object; // Revenue sharing room URL object
}

Example

{
  "stream_url": "https://cherry.tv/embed/examplemodel",
  "room_url": {},
  "room_url_revshare": {}
}

Room

Contains current room status and information.

interface Room {
  status: RoomStatus;  // Current room status (0-3)
  thumbnail: object;   // Snapshot of current stream
  viewers: number;     // Current viewer count
  subject: object;     // Room subject/topic
}

Room Status Values

ValueStatusDescription
0OfflineModel is not broadcasting
1OnlineModel is currently live
2PrivateModel is in a private show
3AwayModel is away/idle

Query Parameters for Filtering

When using the /affiliates/v1/models endpoint, you can filter results using these parameters:

Available Filters

ParameterTypeDescriptionExample Values
categoryanyFilter by category"masturbation"
usernameanyFilter by specific username"examplemodel"
taganyFilter by tag"blonde"
languageanyFilter by spoken language"english"
gendernumberFilter by gender (0-7)0 (female)
sortstringSort direction"asc", "desc"
orderstringSort field"id", "viewer"
offsetanyPagination offset0, 20, 40
statusnumberFilter by room status (0-3)1 (online)
limitanyNumber of results to return10, 50, 100

Example Filtered Request

curl "https://api.cherry.tv/affiliates/v1/models?apiKey=YOUR_API_KEY&gender=0&status=1&limit=20&sort=desc&order=viewer"

This request would return the top 20 female models who are currently online, sorted by viewer count in descending order.

Error Handling

The API returns standard HTTP status codes. Common error responses include:

401 Unauthorized

{
  "error": "Invalid API key",
  "statusCode": 401
}

404 Not Found

{
  "error": "Model not found",
  "statusCode": 404
}

400 Bad Request

{
  "error": "Invalid parameter value",
  "statusCode": 400
}