{
  "openapi": "3.0.1",
  "info": {
    "title": "Kuaishou Scraper (快手) - Search, Creators, Comments",
    "description": "Scrape Kuaishou (快手), China's #2 short-video app: keyword search, creator videos and profiles, comments with replies, video details and trending. Videos and image posts (图集): views, likes, shares, direct video and picture URLs, music, location and creator. No login. JSON, CSV or Excel.",
    "version": "0.1",
    "x-build-id": "0jnOAgN4GsP06P2Yy"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/zen-studio~kuaishou-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-zen-studio-kuaishou-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/zen-studio~kuaishou-scraper/runs": {
      "post": {
        "operationId": "runs-sync-zen-studio-kuaishou-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/zen-studio~kuaishou-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-zen-studio-kuaishou-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": {
          "operation": {
            "title": "Scrape type",
            "enum": [
              "search_videos",
              "search_users",
              "user_videos",
              "user_profile",
              "video_comments",
              "video_detail",
              "trending"
            ],
            "type": "string",
            "description": "<b>Search videos by keyword</b>: finds Kuaishou videos matching a keyword, far deeper than the website shows.<br><b>Find creators by keyword</b>: Kuaishou's own creator search, each result with follower count, bio and verification.<br><b>Creator videos</b>: a creator's full video catalogue.<br><b>Creator profile</b>: bio, followers, video and like counts.<br><b>Video comments</b>: every comment on a video, replies optional.<br><b>Video details</b>: the full record for one video.<br><b>Trending videos</b>: what Kuaishou is pushing right now.<br><br>Kuaishou carries image posts (图集) as well as videos. They arrive in the same results with every picture included, and each row says which kind it is."
          },
          "input": {
            "title": "Keywords, videos or creators",
            "maxItems": 200,
            "type": "array",
            "description": "One entry per line, matching the scrape type above: a search keyword, a video (URL or ID) or a creator (profile URL or ID). Kuaishou video and profile links work as they are, including the share links the app copies, which you can paste with the message around them. Trending needs no input.",
            "items": {
              "type": "string"
            }
          },
          "maxItems": {
            "title": "Max results in total",
            "minimum": 0,
            "type": "integer",
            "description": "The ceiling for the whole run, across everything you entered. The run stops here no matter what else is set. Set to <b>0</b> to go as deep as Kuaishou allows."
          },
          "maxItemsPerInput": {
            "title": "Max results per entry",
            "minimum": 0,
            "type": "integer",
            "description": "A separate ceiling for <b>each line</b> you entered, so one busy keyword or creator cannot use up the whole total. Example: three keywords with a total of 300 and 100 per entry gives you 100 from each, instead of 300 from the first. Set to <b>0</b> to leave entries uncapped and let the total decide."
          },
          "expandWithRelatedSearches": {
            "title": "Maximize results (follow related searches)",
            "type": "boolean",
            "description": "Searches only. One keyword is worth roughly 140-165 videos and then Kuaishou has no more to give for it. With this on, the run continues into the related searches Kuaishou itself suggests for your keyword, de-duplicating as it goes, which takes one topic into the hundreds. Every row says which query found it in <b>matchedKeyword</b>, so you can see how far the topic drifted.",
            "default": false
          },
          "includeReplies": {
            "title": "Include replies to comments",
            "type": "boolean",
            "description": "Comments only. Collects the reply thread under each comment as well. Replies count towards your result limits.",
            "default": false
          },
          "enrichCreatorProfiles": {
            "title": "Add exact counts to creators (costs more)",
            "type": "boolean",
            "description": "Creator search only. Every creator already comes with follower count, bio, verification and avatar. Switch this on to look each one up as well, which adds the exact video count, lifetime likes and region. It bills as a creator profile rather than a search result.",
            "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}