{
  "openapi": "3.0.1",
  "info": {
    "title": "RedNote Xiaohongshu (小红书) Scraper ✅ NO COOKIES",
    "description": "Turn RedNote (Xiaohongshu / 小红书) into clean JSON: notes, comments, profiles, products, trends and PGY influencer analytics, by keyword or URL. For AI corpora, consumer and brand research, and social listening. No cookies, no login on any mode; rivals need a session cookie. Failed lookups are free.",
    "version": "1.0",
    "x-build-id": "IbN7tofY2gZKPtXrd"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/atomus~xiaohongshu-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-atomus-xiaohongshu-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/atomus~xiaohongshu-scraper/runs": {
      "post": {
        "operationId": "runs-sync-atomus-xiaohongshu-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/atomus~xiaohongshu-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-atomus-xiaohongshu-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": [
          "searchType"
        ],
        "properties": {
          "searchType": {
            "title": "🎯 What to scrape (mode) / 抓取模式",
            "enum": [
              "search",
              "note-detail",
              "profile",
              "comments",
              "products",
              "trending",
              "influencer"
            ],
            "type": "string",
            "description": "Choose the mode. 💲 Each mode is its own PAID event: the price is shown on every option below. Then fill ONLY the section marked with the same mode. // 选择模式。💲 每种模式为独立的付费事件，价格已标注在下方每个选项上；然后只填写标有相同模式的分区。",
            "default": "search"
          },
          "keywords": {
            "title": "🔍 Keywords ($) / 关键词",
            "type": "array",
            "description": "💲 Paid per result of the selected mode: keyword search $0.02/note, product search $0.04/product. One or more terms, e.g. \"护肤\" (skincare), \"口红\" (lipstick). // 💲 按所选模式的结果计费：关键词搜索 $0.02/条，商品搜索 $0.04/个。可填写一个或多个关键词。",
            "items": {
              "type": "string"
            }
          },
          "noteType": {
            "title": "🎬 Note type, free / 笔记类型筛选（免费）",
            "enum": [
              "不限",
              "视频笔记",
              "普通笔记",
              "直播笔记"
            ],
            "type": "string",
            "description": "Only for \"Keyword search\". FREE: restrict results to a note type, no extra charge. // 仅用于「关键词搜索」，免费，按笔记类型筛选，不额外计费。",
            "default": "不限"
          },
          "timeFilter": {
            "title": "🕒 Time filter, free / 发布时间筛选（免费）",
            "enum": [
              "不限",
              "一天内",
              "一周内",
              "半年内"
            ],
            "type": "string",
            "description": "Only for \"Keyword search\". FREE: restrict results by publish time, no extra charge. // 仅用于「关键词搜索」，免费，按发布时间筛选，不额外计费。",
            "default": "不限"
          },
          "sortType": {
            "title": "↕️ Sort by, free / 排序方式（免费）",
            "enum": [
              "general",
              "popularity_descending",
              "time_descending"
            ],
            "type": "string",
            "description": "Only for \"Keyword search\". FREE: order the results. \"Most liked\" is the way to get the highest-engagement notes first. // 仅用于「关键词搜索」，免费，对结果排序。「最热」可优先获取高互动笔记。",
            "default": "general"
          },
          "noteUrls": {
            "title": "🔗 Note URLs or IDs ($) / 笔记链接或ID",
            "type": "array",
            "description": "💲 Paid per selected mode: note detail $0.04/note, comments $0.01/comment (min 2 per note). Paste full note URLs (https://www.xiaohongshu.com/explore/...), app share links (http://xhslink.com/... - just paste as-is, resolved automatically), or bare 24-character note IDs. // 💲 按所选模式计费：笔记详情 $0.04/条，评论 $0.01/条（每条笔记最低2）。可粘贴完整笔记链接、App分享短链接（http://xhslink.com/... 直接粘贴即可，自动解析）或24位笔记ID。",
            "items": {
              "type": "string"
            }
          },
          "maxComments": {
            "title": "💬 Max comments per note ($0.01/comment) / 每条笔记最大评论数",
            "minimum": 1,
            "maximum": 5000,
            "type": "integer",
            "description": "For \"Note comments\" mode and the \"Also fetch comments\" add-on. 💲 Each comment returned is billed comment ($0.01, min 2 per note). Why there is a minimum: one request is one lookup, and that lookup does the same work whether it comes back with 50 results, with 1, or with none. The minimum covers the request itself, which is what keeps thin targets worth running instead of being refused outright. Requests that fail are free. // 用于「笔记评论」模式及「同时抓取评论」附加项。💲 每返回一条评论按 comment 计费（$0.01，每条笔记最低2）。 为什么有最低计费：一次请求就是一次查询，无论返回 50 条、1 条还是 0 条，工作量都相同。最低计费覆盖的是这次请求本身，这样结果很少的目标依然值得抓取，而不是被直接拒绝。请求失败不收费。",
            "default": 20
          },
          "userUrls": {
            "title": "👤 Profile URLs or user IDs ($) / 用户主页链接或ID",
            "type": "array",
            "description": "💲 Paid per selected mode: profile $0.04/profile, influencer analytics $0.05/creator. Paste profile URLs (https://www.xiaohongshu.com/user/profile/...) or bare 24-character user IDs. // 💲 按所选模式计费：主页 $0.04/个，达人分析 $0.05/个。可粘贴主页链接或24位用户ID。",
            "items": {
              "type": "string"
            }
          },
          "maxItems": {
            "title": "💯 Max results per keyword/target ($) / 每个关键词或目标的最大结果数",
            "minimum": 1,
            "maximum": 5000,
            "type": "integer",
            "description": "How many results to return per keyword or target for search, product search and trending. 💲 Affects cost: these bill per result, so a higher value costs more. Detail/profile/influencer return one record per target; comments use their own \"Max comments per note\" below. Trending bills a minimum of 2 rows per request. Why there is a minimum: one request is one lookup, and that lookup does the same work whether it comes back with 50 results, with 1, or with none. The minimum covers the request itself, which is what keeps thin targets worth running instead of being refused outright. Requests that fail are free. // 用于搜索、商品搜索与热榜，每个关键词或目标返回的最大结果数。💲 影响费用：按条计费，数值越大费用越高；详情/主页/达人每个目标一条记录；评论用下方「每条笔记最大评论数」。 「热榜」每次请求最低计费 2 条。为什么有最低计费：一次请求就是一次查询，无论返回 50 条、1 条还是 0 条，工作量都相同。最低计费覆盖的是这次请求本身，这样结果很少的目标依然值得抓取，而不是被直接拒绝。请求失败不收费。",
            "default": 20
          },
          "includePosts": {
            "title": "📝 Also fetch the user's posts ($) / 同时抓取用户笔记",
            "type": "boolean",
            "description": "For \"User profile\" only. 💲 PAID add-on: also returns the user's recent posts, billed as post-scraped ($0.02 per post returned) ON TOP of the $0.04 profile charge. Off by default. // 仅用于「用户主页」。💲 付费附加项——在 $0.04 主页费用之外，额外返回用户最近发布的笔记，按 post-scraped 计费（$0.02/条）。默认关闭。",
            "default": false
          },
          "maxPostsPerUser": {
            "title": "📝 Max posts per user ($0.02/post) / 每个用户最大笔记数",
            "minimum": 0,
            "maximum": 5000,
            "type": "integer",
            "description": "Only used when \"Also fetch the user's posts\" is on. 💲 Each post returned is billed post-scraped ($0.02). Set 0 to fetch none. // 仅在启用「同时抓取用户笔记」时生效。💲 每返回一条笔记按 post-scraped 计费（$0.02）。设为 0 则不抓取。",
            "default": 20
          },
          "includeComments": {
            "title": "💬 Also fetch the note's comments ($) / 同时抓取笔记评论",
            "type": "boolean",
            "description": "For \"Note detail\" only. 💲 PAID add-on: also returns the note's comments, billed as comment ($0.01/comment, min 2 per note) ON TOP of the $0.04 note-detail charge. Use \"Max comments per note\" above to cap. Off by default. // 仅用于「笔记详情」。💲 付费附加项——在 $0.04 笔记详情费用之外，额外返回该笔记的评论，按 comment 计费（$0.01/条，每条笔记最低2）。用上方「每条笔记最大评论数」限制数量。默认关闭。",
            "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}