{
  "openapi": "3.0.1",
  "info": {
    "title": "Xiaohongshu (RedNote) Pro Scraper",
    "description": "Five-mode Xiaohongshu / RedNote scraper: keyword search, note details, user profile, topic feed, trending. Returns title, body, likes, collects, comments, hashtags, images, video, location, time. No cookies. For trend tracking, AI training data, market research, KOL discovery.",
    "version": "0.2",
    "x-build-id": "RJ0yEKPwGGvtfsUjG"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/habit.zhou~xiaohongshu-pro-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-habit.zhou-xiaohongshu-pro-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/habit.zhou~xiaohongshu-pro-scraper/runs": {
      "post": {
        "operationId": "runs-sync-habit.zhou-xiaohongshu-pro-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/habit.zhou~xiaohongshu-pro-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-habit.zhou-xiaohongshu-pro-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",
        "required": [
          "mode"
        ],
        "properties": {
          "mode": {
            "title": "Scrape mode",
            "enum": [
              "search",
              "notes",
              "user",
              "topic",
              "hotsearch",
              "suggest",
              "trending"
            ],
            "type": "string",
            "description": "What kind of data to pull from Xiaohongshu / RedNote.",
            "default": "search"
          },
          "keywords": {
            "title": "Search keywords",
            "uniqueItems": true,
            "type": "array",
            "description": "Keywords to search for in Xiaohongshu. Used when mode is 'search'.",
            "items": {
              "type": "string"
            }
          },
          "noteUrls": {
            "title": "Note URLs",
            "type": "array",
            "description": "Xiaohongshu note URLs to fetch full details for. Used when mode is 'notes'. Accepts three formats: (1) standard web URL https://www.xiaohongshu.com/explore/<noteId>, (2) /discovery/item/<noteId>, or (3) xhslink.com share-link from the XHS app share sheet (e.g. https://xhslink.com/a/EZ4M9TwMA6c3 — auto-resolved to the underlying note).",
            "default": [],
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "userIds": {
            "title": "User IDs",
            "type": "array",
            "description": "Xiaohongshu user IDs to fetch profiles + recent posts for. Used when mode is 'user'. Find a user ID in the profile URL (/user/profile/<userId>).",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "topicNames": {
            "title": "Topic URLs or page IDs",
            "type": "array",
            "description": "Xiaohongshu topic URLs (e.g. https://www.xiaohongshu.com/page/topics/5c1cc866febed9000184b7c1) or raw page_id strings (24-char hex). Used when mode is 'topic'. Free-form Chinese topic names are no longer supported by the upstream feed — please use the URL or page_id.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "suggestKeywords": {
            "title": "Seed keywords for autocomplete suggestions",
            "uniqueItems": true,
            "type": "array",
            "description": "Seed keywords to fetch search-box suggestions for. Used when mode is 'suggest'. Each seed returns up to ~10 related search phrases — great for SEO and content-discovery research.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "maxItemsPerInput": {
            "title": "Max items per input",
            "minimum": 1,
            "maximum": 500,
            "type": "integer",
            "description": "Cap per keyword / URL / user / topic. Each item returned is one billed result.",
            "default": 30
          },
          "sortType": {
            "title": "Sort (search mode)",
            "enum": [
              "general",
              "time_descending",
              "popularity_descending",
              "comment_descending",
              "collect_descending"
            ],
            "type": "string",
            "description": "Sort order for keyword search.",
            "default": "general"
          },
          "noteType": {
            "title": "Note type (search mode)",
            "enum": [
              "不限",
              "视频笔记",
              "普通笔记",
              "直播笔记"
            ],
            "type": "string",
            "description": "Filter by note type.",
            "default": "不限"
          },
          "timeFilter": {
            "title": "Published within (search mode)",
            "enum": [
              "不限",
              "一天内",
              "一周内",
              "半年内"
            ],
            "type": "string",
            "description": "Filter by recency.",
            "default": "不限"
          },
          "fetchComments": {
            "title": "Also fetch top comments per note",
            "type": "boolean",
            "description": "When on, fetches up to 20 top comments per note. Significantly increases run time and is billed per comment-bearing note.",
            "default": false
          },
          "proxyConfiguration": {
            "title": "Proxy configuration (trending mode only)",
            "type": "object",
            "description": "Only used in the 'trending' fallback mode. The other modes do not need proxies.",
            "default": {
              "useApifyProxy": true,
              "apifyProxyGroups": [
                "RESIDENTIAL"
              ]
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}