Xiaohongshu APIs - Notes Feed (V1)
Retrieves the Xiaohongshu notes feed stream, returning a paginated list of recommended notes. Each feed item typically includes basic note information (e.g., note ID, title/text snippet, cover/media info), author signals (when available), and engagement counters (when available).
Typical use cases:
- Tracking platform trends and what content is being recommended
- Building datasets for discovery, analytics, and reporting
- Finding emerging notes/creators for monitoring
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
token | query | string | Yes | Access token for this API service. |
oid | query | string | No | Feed stream identifier. Available Values: - homefeed_recommend: recommend- homefeed_video_v3: video- homefeed_live: live- homefeed_fashion_v3: fashion- homefeed_books_v3: books- homefeed_nails_v3: nails- homefeed_painting_v3: painting- homefeed_cartoon_v3: cartoon- homefeed_photography_v3: photography- homefeed_food_v3: food- homefeed_celebrity_v3: celebrity- homefeed_profile_photo_v3: profile photo- homefeed_gaming_v3: gaming- homefeed_cosmetics_v3: cosmetics- homefeed_stationery_v3: stationery- homefeed_love_v3: love- homefeed_music_v3: music- homefeed_movie_and_tv_v3: movie and tv- homefeed_handmade_v3: handmade- homefeed_education_v3: education- homefeed_digital_technology_v3: digital technology- homefeed_household_product_v3: household product- homefeed_hair_v3: hair- homefeed_pets_v3: pets- homefeed_travel_v3: travel- homefeed_lose_weight_v3: lose weight- homefeed_dance_v3: dance- homefeed_skincare_v3: skincare- homefeed_home_decoration_v3: home decoration- homefeed_fashion_shoes_v3: fashion shoes- homefeed_wallpaper_v3: wallpaper- homefeed_career_v3: career- homefeed_funny_v3: funny- homefeed_maternity_v3: maternity- homefeed_cars_v3: cars- homefeed_weddings_v3: weddings- homefeed_bags_v3: bags- homefeed_trend_art_v3: trend art- homefeed_designer_toys_v3: designer toys- homefeed_science_popularization_v3: science popularization- homefeed_variety_show_v3: variety show |
page | query | integer | No | Page number for pagination. |
Code Samples
💡 Environment Note
Default samples use https://api.justoneapi.com (prod-global). For users in Mainland China, it is recommended to replace it with http://47.117.133.51:30015 (prod-cn) for better performance. See Environment Guide.
bash
# Tip: For Mainland China, replace https://api.justoneapi.com with http://47.117.133.51:30015
curl -X GET "https://api.justoneapi.com/api/xiaohongshu/get-note-feed/v1?token=YOUR_API_KEY"text
I want to use the "Notes Feed (V1)" API from Just One API.
API Endpoint: https://api.justoneapi.com/api/xiaohongshu/get-note-feed/v1
HTTP Method: GET
Authentication: Append "?token=YOUR_API_KEY" to the URL.
OpenAPI Definition: https://docs.justoneapi.com/openapi/xiaohongshu-apis/notes-feed-v1-en.json
Parameters:
- token (query): Access token for this API service. (Required)
- oid (query): Feed stream identifier.
Available Values:
- `homefeed_recommend`: recommend
- `homefeed_video_v3`: video
- `homefeed_live`: live
- `homefeed_fashion_v3`: fashion
- `homefeed_books_v3`: books
- `homefeed_nails_v3`: nails
- `homefeed_painting_v3`: painting
- `homefeed_cartoon_v3`: cartoon
- `homefeed_photography_v3`: photography
- `homefeed_food_v3`: food
- `homefeed_celebrity_v3`: celebrity
- `homefeed_profile_photo_v3`: profile photo
- `homefeed_gaming_v3`: gaming
- `homefeed_cosmetics_v3`: cosmetics
- `homefeed_stationery_v3`: stationery
- `homefeed_love_v3`: love
- `homefeed_music_v3`: music
- `homefeed_movie_and_tv_v3`: movie and tv
- `homefeed_handmade_v3`: handmade
- `homefeed_education_v3`: education
- `homefeed_digital_technology_v3`: digital technology
- `homefeed_household_product_v3`: household product
- `homefeed_hair_v3`: hair
- `homefeed_pets_v3`: pets
- `homefeed_travel_v3`: travel
- `homefeed_lose_weight_v3`: lose weight
- `homefeed_dance_v3`: dance
- `homefeed_skincare_v3`: skincare
- `homefeed_home_decoration_v3`: home decoration
- `homefeed_fashion_shoes_v3`: fashion shoes
- `homefeed_wallpaper_v3`: wallpaper
- `homefeed_career_v3`: career
- `homefeed_funny_v3`: funny
- `homefeed_maternity_v3`: maternity
- `homefeed_cars_v3`: cars
- `homefeed_weddings_v3`: weddings
- `homefeed_bags_v3`: bags
- `homefeed_trend_art_v3`: trend art
- `homefeed_designer_toys_v3`: designer toys
- `homefeed_science_popularization_v3`: science popularization
- `homefeed_variety_show_v3`: variety show
- page (query): Page number for pagination.
Return format: JSON
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 request timeout to at least 60 seconds.
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
Please help me write a script in my preferred programming language to call this API and handle the response.python
# Tip: For Mainland China, replace https://api.justoneapi.com with http://47.117.133.51:30015
import requests
url = "https://api.justoneapi.com/api/xiaohongshu/get-note-feed/v1?token=YOUR_API_KEY"
response = requests.get(url)
print(response.json())js
// Tip: For Mainland China, replace https://api.justoneapi.com with http://47.117.133.51:30015
const response = await fetch("https://api.justoneapi.com/api/xiaohongshu/get-note-feed/v1?token=YOUR_API_KEY", {
method: "GET"
});
const data = await response.json();
console.log(data);java
// Tip: For Mainland China, replace https://api.justoneapi.com with http://47.117.133.51:30015
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class Main {
public static void main(String[] args) throws Exception {
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://api.justoneapi.com/api/xiaohongshu/get-note-feed/v1?token=YOUR_API_KEY"))
.method("GET", HttpRequest.BodyPublishers.noBody())
.build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
}
}go
// Tip: For Mainland China, replace https://api.justoneapi.com with http://47.117.133.51:30015
package main
import (
"fmt"
"io"
"net/http"
)
func main() {
client := &http.Client{}
url := "https://api.justoneapi.com/api/xiaohongshu/get-note-feed/v1?token=YOUR_API_KEY"
req, _ := http.NewRequest("GET", url, nil)
resp, _ := client.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}php
// Tip: For Mainland China, replace https://api.justoneapi.com with http://47.117.133.51:30015
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://api.justoneapi.com/api/xiaohongshu/get-note-feed/v1?token=YOUR_API_KEY");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET");
$response = curl_exec($ch);
curl_close($ch);
echo $response;Responses
json
{
"code": 0,
"data": [
{
"id": "699fdc5c000000000e00f4cd",
"type": "normal",
"timestamp": 1772084316,
"name": "成都!这棵樱花树开爆了!!!竟然没人拍!!!",
"title": "成都!这棵樱花树开爆了!!!竟然没人拍!!!",
"desc": "",
"likes": 4,
"user": {
"nickname": "贪玩小晕吖",
"images": "https://sns-avatar-qc.xhscdn.com/avatar/1040g2jo31aci7i9vna005og0nof8che6qr6mr3g?imageView2/2/w/80/f...",
"followed": false,
"fstatus": "none",
"userid": "6200be1e00000000210245c6"
},
"last_update_time": 0,
"display_title": "成都!这棵樱花树开爆了!!!竟然没人拍!!!",
"images_list": [
{
"height": 1920,
"width": 1440,
"url": "https://sns-i8.rednotecdn.com/notes_pre_post/1040g3k031t1pl2kf5kc05og0nof8che60g76fco?imageView2/2/w...",
"original": "",
"fileid": "notes_pre_post/1040g3k031t1pl2kf5kc05og0nof8che60g76fco",
"url_size_large": "https://sns-i8.rednotecdn.com/notes_pre_post/1040g3k031t1pl2kf5kc05og0nof8che60g76fco?imageView2/2/w...",
"trace_id": "notes_pre_post/1040g3k031t1pl2kf5kc05og0nof8che60g76fco",
"url_multi_level": {
"low": "https://sns-i8.rednotecdn.com/notes_pre_post/1040g3k031t1pl2kf5kc05og0nof8che60g76fco?imageView2/2/w...",
"medium": "https://sns-i8.rednotecdn.com/notes_pre_post/1040g3k031t1pl2kf5kc05og0nof8che60g76fco?imageView2/2/w...",
"high": "https://sns-i8.rednotecdn.com/notes_pre_post/1040g3k031t1pl2kf5kc05og0nof8che60g76fco?imageView2/2/w..."
},
"need_load_original_image": false,
"thumb_hash": "oxgGDQK0iI2I+XhYiHlnh1FwBHWJ",
"rgb": "0xcfc3b6"
}
],
"inlikes": false,
"model_type": "note",
"is_ads": false,
"is_tracking": false,
"debug_info_str": "{\"videofeedLazyLoadScore\":\"0.5958698\"}",
"is_tracking_upgrade": false,
"has_music": false,
"is_top_show_eco_officer_note": false,
"pk_status_info": "{\"ubtsecret\":\"RBGqmc7Jb/azO8KxrqoLo7bpAyomRWtHaErCr58cLzOwDZr6rMKwwmO6laXbEEbS6SKhwwMQTkEy5PkmoKHV4N...",
"advanced_widgets_groups": {
"groups": [
{
"mode": 1,
"fetch_types": [
"guos_test"
]
}
]
},
"widgets_context": "{\"flags\":{},\"author_id\":\"6200be1e00000000210245c6\",\"author_name\":\"贪玩小晕吖\"}",
"corner_tag": [],
"rec_extra_info": "{\"followConductVideoTime\":\"-1\",\"followConductReason\":\"\",\"needInnerSharePrompt\":\"false\",\"needSharePro...",
"rec_params": "{\"isNiceNote\":0,\"hfTrackId\":\"2g19pa3vq1j0oxhd21e9u\"}",
"recommend": {
"desc": "",
"icon": "",
"type": "",
"dark_icon": "",
"target_id": "",
"target_name": "",
"track_id": "dssmbase_recall_dssm_newneg_ali_imp_1hour@2g19pa3vq1j0oxhd21e9u",
"topic_id": "",
"topic_name": "",
"mf_topic_id": "",
"mf_topic_name": "",
"topic_type": "",
"topic_sub_type": "",
"is_super_topic": false,
"is_followed_topic": false,
"category_id": "5ab094be481d26b8ef9045f0",
"category_name": "旅游",
"predict_click_ratio": 0.21813332,
"predict_video_complete_ratio": 0.31263548,
"is_activate_search": false,
"videofeed_lazy_load_score": 0.5958698
},
"dislike_optional": {
"follow_user": false
},
"cursor_score": "1772084648.9990",
"app_json_string": "{\"note_need_unique\":true}",
"downgrade_data": 0,
"track_id_mix_rank": "2g19pa3vq1j0oxhd21e9u",
"generate_item_index": 0,
"rec_result_from_inner_cache": false
}
]
}💡 Note: For list data, the example shows only 1-2 items for simplicity. The actual count depends on the API response.
