{
  "openapi": "3.0.1",
  "info": {
    "title": "LiveMe Scraper",
    "description": "Extract live rooms from LiveMe.com: streamer info, titles, viewers, heat, thumbnails, country. No login required. Export JSON/CSV/Excel or run via API.",
    "version": "0.1",
    "x-build-id": "NObHkUPpQJgsTbdC6"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/nickslam~liveme-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-nickslam-liveme-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/nickslam~liveme-scraper/runs": {
      "post": {
        "operationId": "runs-sync-nickslam-liveme-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/nickslam~liveme-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-nickslam-liveme-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "properties": {
          "feeds": {
            "title": "📡 Feeds to scrape",
            "type": "array",
            "description": "Which LiveMe discovery feeds to query. More feeds = broader coverage (more API calls).",
            "items": {
              "type": "string",
              "enum": [
                "featurelist",
                "homepageNew",
                "boys",
                "girls",
                "talent",
                "gVideoList",
                "newMainInfo"
              ],
              "enumTitles": [
                "Hot / featurelist",
                "Homepage New",
                "Boys",
                "Girls",
                "Talent",
                "Video Game Live",
                "New Main Info"
              ]
            },
            "default": [
              "featurelist",
              "homepageNew"
            ]
          },
          "countries": {
            "title": "🌍 Countries",
            "type": "array",
            "description": "Countries used as LiveMe catalog pools. Each selected country is requested separately — pick several for broader coverage.",
            "items": {
              "type": "string",
              "enum": [
                "US",
                "JP",
                "CN",
                "EG",
                "TR",
                "SA",
                "BR",
                "RU",
                "ID",
                "PH"
              ],
              "enumTitles": [
                "United States",
                "Japan",
                "China",
                "Egypt",
                "Turkey",
                "Saudi Arabia",
                "Brazil",
                "Russia",
                "Indonesia",
                "Philippines"
              ]
            },
            "default": [
              "US",
              "JP",
              "CN"
            ]
          },
          "maxItems": {
            "title": "💯 Maximum rooms",
            "minimum": 0,
            "type": "integer",
            "description": "Cap on unique live rooms returned (after dedupe + filters). Set <code>0</code> for no limit.",
            "default": 50
          },
          "minViewers": {
            "title": "👁 Minimum viewers",
            "minimum": 0,
            "type": "integer",
            "description": "Keep only rooms with at least this many viewers.",
            "default": 0
          },
          "sortBy": {
            "title": "Sort by",
            "enum": [
              "viewers",
              "heat",
              "startedAt"
            ],
            "type": "string",
            "description": "How to order the final dataset.",
            "default": "viewers"
          },
          "featurelistPages": {
            "title": "Hot feed pages per country",
            "minimum": 1,
            "maximum": 20,
            "type": "integer",
            "description": "How deep to paginate the Hot feed for each selected country. The Actor also queries several internal Hot “shelves” (same as the website) and shuffles them each run so capped results stay diverse. Example: 3 pages × 3 countries × 3 shelves ≈ up to 27 Hot API calls. Higher = more rooms, more API calls. Duplicates are merged by room id.",
            "default": 3
          },
          "homepagePages": {
            "title": "Homepage New pages per country",
            "minimum": 1,
            "maximum": 20,
            "type": "integer",
            "description": "How many pages to fetch from Homepage New for <b>each selected country</b>. Example: 2 pages × 3 countries = 6 API calls. Only used when the Homepage New feed is enabled. Results are deduped with Hot and other feeds.",
            "default": 2
          },
          "boysPages": {
            "title": "Boys / Girls feed pages per country",
            "minimum": 1,
            "maximum": 20,
            "type": "integer",
            "description": "Pagination depth for the Boys and Girls tabs, per selected country. Only used when those feeds are enabled. Same multiplier idea: pages × countries (× each enabled gender feed).",
            "default": 2
          },
          "requestDelayMs": {
            "title": "Delay between requests (ms)",
            "minimum": 0,
            "maximum": 5000,
            "type": "integer",
            "description": "Polite delay between LiveMe API calls. Lower = faster runs, higher risk of rate limits; higher = slower but safer.",
            "default": 120
          },
          "includeStreamUrls": {
            "title": "$ Include signed stream URLs (HLS/FLV)",
            "type": "boolean",
            "description": "Paid add-on. Include temporary signed HLS/FLV playback URLs from the API. They expire quickly — do not store permanently. Prefer linking to <code>https://www.liveme.com/{roomId}</code>.",
            "default": false
          },
          "includeRaw": {
            "title": "$ Include raw API payload",
            "type": "boolean",
            "description": "Paid add-on. Attach the full room object (~100+ fields) under <code>raw</code> for power users / debugging.",
            "default": false
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}