Xiaohongshu (RedNote) Hot Search API (V1)
API health status
Healthy Available Limited Mostly unavailable No data
Loading health status...
Searches Xiaohongshu (RedNote) hot-content entries with optional keyword, content-category path, pagination, ranking metric, and time-range controls. Use it to support trend discovery, topic monitoring, and content planning.
Parameters
| Name | In | Type | Required | Default | Description |
|---|---|---|---|---|---|
token | query | string | Yes | - | Access token for this API service. |
searchWord | query | string | No | | Search keyword. |
pageNum | query | integer | No | 1 | Page number for pagination. |
orderBy | query | string | No | premium_imp_num | Sort metric for the result set. Available Values: - premium_imp_num: Exposure- premium_good_read_rate: Read rate- premium_read_num: Read count- premium_engage_num: Engagement count- premium_engage_rate: Engagement rate- premium_like_num: Like count- premium_fav_num: Favorite count- premium_cmt_num: Comment count |
nd | query | string | No | DAY_7 | Time range in days. Available Values: - DAY_3: Last 3 days- DAY_7: Last 7 days- DAY_14: Last 14 days- DAY_30: Last 30 days |
noteContentCategory | query | string | No | - | Content category filter. Pass one complete Pugongying category path joined with # separators. You may pass a parent path or append one listed child with another #. Only one path is accepted. Available values: Content categories: - 内容类目#美妆: 整体妆容, 唇妆, 眼妆, 美甲, 底妆, 美妆合集, 香水, 美妆其他 - 内容类目#护肤: 面部保养, 面部清洁, 护肤合集, 护肤其他 - 内容类目#个人护理: 头发产品, 身体护理, 口腔护理, 护理其他 - 内容类目#母婴: 母婴日常, 早教, 婴童用品, 婴童洗护, 婴童食品, 婴童时尚, 孕期穿搭, 孕产经验, 产后恢复, 育儿经验, 宝宝才艺, 宝宝写真, 母婴其他 - 内容类目#时尚: 穿搭, 配饰, 发型, 箱包, 鞋靴, 时尚其他 - 内容类目#美食: 美食教程, 美食探店, 美食展示, 美食测评, 吃播, 美食其他 - 内容类目#家居家装: 装修, 家居用品, 花艺园艺, 家居装饰, 家具, 家电, 室内设计, 居家经验, 家居家装其他 - 内容类目#影视综资讯: 动漫, 娱乐资讯, 影视, 民生资讯, 综艺, 影视综其他 - 内容类目#运动健身: 减脂塑形, 滑雪, 滑板, 水上活动, 运动其他, 足球, 篮球, 跑步, 游泳 - 内容类目#宠物: 猫, 狗, 动物其他 - 内容类目#文化艺术: 社科, 文化, 艺术, 文化艺术其他 - 内容类目#兴趣爱好: 绘画, 手工, 阅读, 文具手账, 舞蹈, 兴趣爱好其他, 玩具周边 - 内容类目#生活记录: 接地气生活, 日常片段, 中外生活, 品质生活, 校园生活 - 内容类目#教育: 大学教育, k12教育, 家庭教育, 学习日常, 留学教育, 教育其他, 语言教育 - 内容类目#职场: 职场干货, 职场行业, 职业考试, 职场其他 - 内容类目#情感: 情感知识, 情感日常, 情感其他 - 内容类目#摄影: 人文风光摄影, 摄影技巧, 胶片摄影, 人像摄影, 摄影其他 - 内容类目#游戏: 手机游戏, 主机游戏, 游戏其他, 线下游戏 - 内容类目#科技数码: 移动数码, 玩机攻略, 数码科技其他 - 内容类目#出行旅游: 城市出行, 户外, 旅行 - 内容类目#音乐 - 内容类目#搞笑 - 内容类目#健康养生 - 内容类目#汽车: 用车攻略, 汽车评测, 汽车其他 - 内容类目#婚嫁: 婚礼造型, 婚礼记录, 婚礼经验, 婚礼用品 - 内容类目#商业财经 - 内容类目#素材 - 内容类目#其他 Industry categories: - 所属行业#母婴: 母婴出行, 哺乳喂养工具, 婴童个护清洁, 母婴家居, 母婴奶粉, 母婴辅零食, 婴童服饰鞋靴, 玩具相关, 母婴纸品, 孕产妇相关, 母婴营养品, 婴童面部护肤, 母婴小家电 - 所属行业#家用电器: 大家电, 厨卫电器, 生活电器, 家电套系 - 所属行业#3C数码: 手机, 数码设备, 电脑, 办公设备, 操作系统 - 所属行业#食品饮料: 休闲零食, 方便速食, 粮油调味, 预制菜, 饮料冲调, 乳制品, 水果/水产, 肉禽蛋品, 功能性食品, 酒类(新) - 所属行业#美妆个护: 彩妆, 美容护肤, 香水香薰, 身体洗护, 口腔护理, 头发护理, 美容仪器 - 所属行业#汽车出行: 乘用车, 摩托车, 电动自行车, 自行车, 卡车, 汽车用品, 维修保养, 汽车服务 - 所属行业#本地生活: 奶茶果汁(新), 咖啡(新), 甜品烘焙(新), 熟食卤味(新), 特色小吃/特产(新), 酒吧(新), 西式快餐(新), 中式快餐(新), 中式正餐(新), 西式正餐(新), 线下零售 - 所属行业#日化家清: 家务工具, 家用清洁, 纸品, 护理用品 - 所属行业#医疗健康: OTC, 保健食品, 保健用品, 非OTC药品, 健康机械, 视力保健, 家用医疗器械, 成人计生(械) - 所属行业#宠物(新): 宠物服务, 宠物食品, 宠物用品, 养宠经验, 宠物药保 - 所属行业#家居家装: 灯饰光源, 家居百货, 家居建材零售, 家具, 家装辅材, 家装主材, 五金电具, 装修设计与工程服务, 智能家居, 家居卖场, 家居展会, 家纺, 餐厨杯 - 所属行业#出行旅游: 交通出行, 酒店住宿, 国内游(新), 出境游(新), 景点景区(新), 旅游攻略(新), 旅游主题(新) - 所属行业#教育培训: K12教育, 素质教育, 图书, 成人兴趣培训, 学历教育, 语言及留学, 早教, 职业教育 - 所属行业#金融行业: 保险, 贷款, 银行, 证券 - 所属行业#医疗医美: 口腔医疗, 眼科医疗, 皮肤美容, 植发养发, 体检机构(新), 月子妇产(新), 面部塑形, 医美身体塑形, 中医医疗 - 所属行业#免税平台: 美妆个护, 奢侈品 - 所属行业#服饰鞋包: 女装, 男装, 女鞋, 男鞋, 女士内衣, 男士内衣, 服饰配件, 童装/亲子装, 箱包, 旅行箱, 童鞋/亲子鞋 - 所属行业#珠宝配饰: 腕表, 首饰, 眼镜, 配饰, 珠宝摆件, 金条、金币 - 所属行业#运动户外: 运动鞋, 户外鞋, 运动服装, 户外服装, 运动户外装备, 运动服配, 健身器械, 运动现场 - 所属行业#文玩娱乐: 玩具, 游戏, 文玩收藏, 文体, 文具 - 所属行业#到店综合: 商务服务, 生活服务 - 所属行业#奢侈品: 箱包, 服饰, 鞋履, 珠宝配饰, 腕表, 运动户外, 品质生活, 婴童, 内衣, 高端酒店, 书写工具 - 所属行业#互联网: 平台电商, 网服, 游戏, 内容消费, 生活服务, 软件工具, 会员服务 - 所属行业#影像婚美: 婚纱摄影, 写真摄影, 婚礼服务, 婚恋交友 - 所属行业#房地产: 房产中介, 房产开发, 商业地产 Examples: - 内容类目#美妆 - 内容类目#美妆#整体妆容 - 所属行业#母婴#母婴出行 |
Code Samples
bash
curl --max-time 120 -X GET 'https://api.justoneapi.com/api/xiaohongshu/hot-search/v1?token=YOUR_API_KEY'text
I want to use the "Hot Search (V1)" API from Just One API.
Base URL: https://api.justoneapi.com.
API Path: /api/xiaohongshu/hot-search/v1?token=YOUR_API_KEY
API Endpoint: BASE_URL + /api/xiaohongshu/hot-search/v1?token=YOUR_API_KEY
HTTP Method: GET
Authentication: Append the "token" query parameter to the URL.
OpenAPI Definition: https://docs.justoneapi.com/openapi/xiaohongshu-rednote/hot-search-v1-en.json
Parameters:
- token (query): Access token for this API service. (Required)
- searchWord (query): Search keyword.
- pageNum (query): Page number for pagination.
- orderBy (query): Sort metric for the result set.
Available Values:
- `premium_imp_num`: Exposure
- `premium_good_read_rate`: Read rate
- `premium_read_num`: Read count
- `premium_engage_num`: Engagement count
- `premium_engage_rate`: Engagement rate
- `premium_like_num`: Like count
- `premium_fav_num`: Favorite count
- `premium_cmt_num`: Comment count
- nd (query): Time range in days.
Available Values:
- `DAY_3`: Last 3 days
- `DAY_7`: Last 7 days
- `DAY_14`: Last 14 days
- `DAY_30`: Last 30 days
- noteContentCategory (query): Content category filter. Pass one complete Pugongying category path joined with # separators. You may pass a parent path or append one listed child with another #. Only one path is accepted.
Available values:
Content categories:
- 内容类目#美妆: 整体妆容, 唇妆, 眼妆, 美甲, 底妆, 美妆合集, 香水, 美妆其他
- 内容类目#护肤: 面部保养, 面部清洁, 护肤合集, 护肤其他
- 内容类目#个人护理: 头发产品, 身体护理, 口腔护理, 护理其他
- 内容类目#母婴: 母婴日常, 早教, 婴童用品, 婴童洗护, 婴童食品, 婴童时尚, 孕期穿搭, 孕产经验, 产后恢复, 育儿经验, 宝宝才艺, 宝宝写真, 母婴其他
- 内容类目#时尚: 穿搭, 配饰, 发型, 箱包, 鞋靴, 时尚其他
- 内容类目#美食: 美食教程, 美食探店, 美食展示, 美食测评, 吃播, 美食其他
- 内容类目#家居家装: 装修, 家居用品, 花艺园艺, 家居装饰, 家具, 家电, 室内设计, 居家经验, 家居家装其他
- 内容类目#影视综资讯: 动漫, 娱乐资讯, 影视, 民生资讯, 综艺, 影视综其他
- 内容类目#运动健身: 减脂塑形, 滑雪, 滑板, 水上活动, 运动其他, 足球, 篮球, 跑步, 游泳
- 内容类目#宠物: 猫, 狗, 动物其他
- 内容类目#文化艺术: 社科, 文化, 艺术, 文化艺术其他
- 内容类目#兴趣爱好: 绘画, 手工, 阅读, 文具手账, 舞蹈, 兴趣爱好其他, 玩具周边
- 内容类目#生活记录: 接地气生活, 日常片段, 中外生活, 品质生活, 校园生活
- 内容类目#教育: 大学教育, k12教育, 家庭教育, 学习日常, 留学教育, 教育其他, 语言教育
- 内容类目#职场: 职场干货, 职场行业, 职业考试, 职场其他
- 内容类目#情感: 情感知识, 情感日常, 情感其他
- 内容类目#摄影: 人文风光摄影, 摄影技巧, 胶片摄影, 人像摄影, 摄影其他
- 内容类目#游戏: 手机游戏, 主机游戏, 游戏其他, 线下游戏
- 内容类目#科技数码: 移动数码, 玩机攻略, 数码科技其他
- 内容类目#出行旅游: 城市出行, 户外, 旅行
- 内容类目#音乐
- 内容类目#搞笑
- 内容类目#健康养生
- 内容类目#汽车: 用车攻略, 汽车评测, 汽车其他
- 内容类目#婚嫁: 婚礼造型, 婚礼记录, 婚礼经验, 婚礼用品
- 内容类目#商业财经
- 内容类目#素材
- 内容类目#其他
Industry categories:
- 所属行业#母婴: 母婴出行, 哺乳喂养工具, 婴童个护清洁, 母婴家居, 母婴奶粉, 母婴辅零食, 婴童服饰鞋靴, 玩具相关, 母婴纸品, 孕产妇相关, 母婴营养品, 婴童面部护肤, 母婴小家电
- 所属行业#家用电器: 大家电, 厨卫电器, 生活电器, 家电套系
- 所属行业#3C数码: 手机, 数码设备, 电脑, 办公设备, 操作系统
- 所属行业#食品饮料: 休闲零食, 方便速食, 粮油调味, 预制菜, 饮料冲调, 乳制品, 水果/水产, 肉禽蛋品, 功能性食品, 酒类(新)
- 所属行业#美妆个护: 彩妆, 美容护肤, 香水香薰, 身体洗护, 口腔护理, 头发护理, 美容仪器
- 所属行业#汽车出行: 乘用车, 摩托车, 电动自行车, 自行车, 卡车, 汽车用品, 维修保养, 汽车服务
- 所属行业#本地生活: 奶茶果汁(新), 咖啡(新), 甜品烘焙(新), 熟食卤味(新), 特色小吃/特产(新), 酒吧(新), 西式快餐(新), 中式快餐(新), 中式正餐(新), 西式正餐(新), 线下零售
- 所属行业#日化家清: 家务工具, 家用清洁, 纸品, 护理用品
- 所属行业#医疗健康: OTC, 保健食品, 保健用品, 非OTC药品, 健康机械, 视力保健, 家用医疗器械, 成人计生(械)
- 所属行业#宠物(新): 宠物服务, 宠物食品, 宠物用品, 养宠经验, 宠物药保
- 所属行业#家居家装: 灯饰光源, 家居百货, 家居建材零售, 家具, 家装辅材, 家装主材, 五金电具, 装修设计与工程服务, 智能家居, 家居卖场, 家居展会, 家纺, 餐厨杯
- 所属行业#出行旅游: 交通出行, 酒店住宿, 国内游(新), 出境游(新), 景点景区(新), 旅游攻略(新), 旅游主题(新)
- 所属行业#教育培训: K12教育, 素质教育, 图书, 成人兴趣培训, 学历教育, 语言及留学, 早教, 职业教育
- 所属行业#金融行业: 保险, 贷款, 银行, 证券
- 所属行业#医疗医美: 口腔医疗, 眼科医疗, 皮肤美容, 植发养发, 体检机构(新), 月子妇产(新), 面部塑形, 医美身体塑形, 中医医疗
- 所属行业#免税平台: 美妆个护, 奢侈品
- 所属行业#服饰鞋包: 女装, 男装, 女鞋, 男鞋, 女士内衣, 男士内衣, 服饰配件, 童装/亲子装, 箱包, 旅行箱, 童鞋/亲子鞋
- 所属行业#珠宝配饰: 腕表, 首饰, 眼镜, 配饰, 珠宝摆件, 金条、金币
- 所属行业#运动户外: 运动鞋, 户外鞋, 运动服装, 户外服装, 运动户外装备, 运动服配, 健身器械, 运动现场
- 所属行业#文玩娱乐: 玩具, 游戏, 文玩收藏, 文体, 文具
- 所属行业#到店综合: 商务服务, 生活服务
- 所属行业#奢侈品: 箱包, 服饰, 鞋履, 珠宝配饰, 腕表, 运动户外, 品质生活, 婴童, 内衣, 高端酒店, 书写工具
- 所属行业#互联网: 平台电商, 网服, 游戏, 内容消费, 生活服务, 软件工具, 会员服务
- 所属行业#影像婚美: 婚纱摄影, 写真摄影, 婚礼服务, 婚恋交友
- 所属行业#房地产: 房产中介, 房产开发, 商业地产
Examples:
- 内容类目#美妆
- 内容类目#美妆#整体妆容
- 所属行业#母婴#母婴出行
Return format: safely handle JSON or text according to the actual Content-Type.
Response Handling & Error Codes:
1. Business results should be determined by the "code" field in the response body (code 0 means success).
2. Timeout Recommendation: Set the request timeout to 120 seconds. If 120 seconds is too long for your use case, use at least 60 seconds, but a small number of requests may time out before receiving a result.
3. Business Code Reference:
- 0: Success
- 100: Invalid or Inactive Token
- 301: Collection Failed. Please Retry.
- 302: Rate Limit Exceeded
- 303: Daily Quota Exceeded
- 400: Invalid Parameters
- 500: Internal Server Error
- 600: Permission Denied
- 601: Insufficient Balance
- 602: Token Budget Exceeded
4. Code 601 means the shared account balance is insufficient. Code 602 means the current API token's own cumulative budget limit has been reached. Token budget limits do not transfer funds out of the shared account balance.
Please help me write a script in my preferred programming language to call this API and handle the response.python
import requests
BASE_URL = "https://api.justoneapi.com" # Provided by OpenAPI servers
url = BASE_URL + "/api/xiaohongshu/hot-search/v1?token=YOUR_API_KEY"
response = requests.get(url, timeout=120)
print(response.status_code)
if response.content:
content_type = response.headers.get("content-type", "").lower()
if "json" in content_type:
try:
print(response.json())
except ValueError:
print(response.text)
elif content_type.startswith("text/") or "xml" in content_type or content_type.split(";", 1)[0].strip() in {"application/javascript", "application/x-www-form-urlencoded", "application/graphql"}:
print(response.text)
else:
with open("response.bin", "wb") as output:
output.write(response.content)
print(f"Saved {len(response.content)} bytes to response.bin")js
const BASE_URL = "https://api.justoneapi.com"; // Provided by OpenAPI servers
const url = BASE_URL + "/api/xiaohongshu/hot-search/v1?token=YOUR_API_KEY";
const response = await fetch(url, {
method: "GET",
signal: AbortSignal.timeout(120000)
});
console.log(response.status);
const responseBytes = await response.arrayBuffer();
if (responseBytes.byteLength) {
const contentType = (response.headers.get("content-type") || "").toLowerCase();
const mediaType = contentType.split(";", 1)[0].trim();
const textual = contentType.startsWith("text/") || contentType.includes("json") || contentType.includes("xml") || ["application/javascript", "application/x-www-form-urlencoded", "application/graphql"].includes(mediaType);
if (textual) {
const responseText = new TextDecoder().decode(responseBytes);
let data = responseText;
if (contentType.includes("json")) {
try { data = JSON.parse(responseText); } catch { /* Keep the raw body. */ }
}
console.log(data);
} else {
console.log(`Received ${responseBytes.byteLength} binary bytes`);
}
}java
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.time.Duration;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Path;
public class Main {
public static void main(String[] args) throws Exception {
final String BASE_URL = "https://api.justoneapi.com"; // Provided by OpenAPI servers
final String url = BASE_URL + "/api/xiaohongshu/hot-search/v1?token=YOUR_API_KEY";
HttpClient client = HttpClient.newBuilder().connectTimeout(Duration.ofSeconds(120)).build();
HttpRequest.Builder builder = HttpRequest.newBuilder()
.uri(URI.create(url))
.timeout(Duration.ofSeconds(120))
.method("GET", HttpRequest.BodyPublishers.noBody());
HttpRequest request = builder.build();
HttpResponse<byte[]> response = client.send(request, HttpResponse.BodyHandlers.ofByteArray());
System.out.println(response.statusCode());
String contentType = response.headers().firstValue("content-type").orElse("").toLowerCase();
String mediaType = contentType.split(";", 2)[0].trim();
if (contentType.startsWith("text/") || contentType.contains("json") || contentType.contains("xml") || mediaType.equals("application/javascript") || mediaType.equals("application/x-www-form-urlencoded") || mediaType.equals("application/graphql")) {
System.out.println(new String(response.body(), StandardCharsets.UTF_8));
} else {
Files.write(Path.of("response.bin"), response.body());
System.out.println("Saved " + response.body().length + " bytes to response.bin");
}
}
}go
package main
import (
"fmt"
"io"
"os"
"strings"
"net/http"
"time"
)
const BASE_URL = "https://api.justoneapi.com" // Provided by OpenAPI servers
func main() {
client := &http.Client{Timeout: 120 * time.Second}
url := BASE_URL + "/api/xiaohongshu/hot-search/v1?token=YOUR_API_KEY"
req, _ := http.NewRequest("GET", url, nil)
resp, _ := client.Do(req)
defer resp.Body.Close()
fmt.Println(resp.StatusCode)
bodyBytes, _ := io.ReadAll(resp.Body)
contentType := strings.ToLower(resp.Header.Get("Content-Type"))
mediaType := strings.TrimSpace(strings.SplitN(contentType, ";", 2)[0])
if strings.HasPrefix(contentType, "text/") || strings.Contains(contentType, "json") || strings.Contains(contentType, "xml") || mediaType == "application/javascript" || mediaType == "application/x-www-form-urlencoded" || mediaType == "application/graphql" {
fmt.Println(string(bodyBytes))
} else {
os.WriteFile("response.bin", bodyBytes, 0600)
fmt.Printf("Saved %d bytes to response.bin\n", len(bodyBytes))
}
}php
<?php
$BASE_URL = 'https://api.justoneapi.com'; // Provided by OpenAPI servers
$url = $BASE_URL . '/api/xiaohongshu/hot-search/v1?token=YOUR_API_KEY';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 120);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET");
$response = curl_exec($ch);
$status = curl_getinfo($ch, CURLINFO_RESPONSE_CODE);
$contentType = strtolower((string) curl_getinfo($ch, CURLINFO_CONTENT_TYPE));
curl_close($ch);
echo $status . PHP_EOL;
$mediaType = trim(explode(';', $contentType, 2)[0]);
if (str_starts_with($contentType, 'text/') || str_contains($contentType, 'json') || str_contains($contentType, 'xml') || in_array($mediaType, ['application/javascript', 'application/x-www-form-urlencoded', 'application/graphql'], true)) {
echo $response;
} else {
file_put_contents('response.bin', $response);
echo 'Saved ' . strlen($response) . ' bytes to response.bin' . PHP_EOL;
}Response Example
Loading the response example...
