Skip to content

Xiaohongshu Pgy APIs - Note Details (V1)

prod-global
GET
/api/xiaohongshu-pgy/api/solar/note/noteId/detail/v1

Retrieve details for a specific note.

Parameters

NameInTypeRequiredDescription
tokenquerystringYesUser authentication token.
noteIdquerystringYesNote's unique ID.

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-pgy/api/solar/note/noteId/detail/v1?token=YOUR_API_KEY&noteId=VALUE"
text
I want to use the "Note Details (V1)" API from Just One API.
API Endpoint: https://api.justoneapi.com/api/xiaohongshu-pgy/api/solar/note/noteId/detail/v1
HTTP Method: GET
Authentication: Append "?token=YOUR_API_KEY" to the URL.
OpenAPI Definition: https://docs.justoneapi.com/openapi/xiaohongshu-pgy-apis/note-details-v1-en.json

Parameters:
- token (query): User authentication token. (Required)
- noteId (query): Note's unique ID. (Required)

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-pgy/api/solar/note/noteId/detail/v1?token=YOUR_API_KEY&noteId=VALUE"
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-pgy/api/solar/note/noteId/detail/v1?token=YOUR_API_KEY&noteId=VALUE", {
  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-pgy/api/solar/note/noteId/detail/v1?token=YOUR_API_KEY&noteId=VALUE"))
            .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-pgy/api/solar/note/noteId/detail/v1?token=YOUR_API_KEY&noteId=VALUE"
	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-pgy/api/solar/note/noteId/detail/v1?token=YOUR_API_KEY&noteId=VALUE");
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": {
    "noteId": "65c0b3fc000000002c037a49",
    "noteLink": "https://www.xiaohongshu.com/explore/65c0b3fc000000002c037a49?xsec_token=MBZ5JOqdwczIfWfPBnr07jLpjhAUQ4Udcjkil5rH-2RFg=&xsec_source=pc_pgy",
    "userId": "62060e8c0000000010008f55",
    "headPhoto": "https://sns-avatar-qc.xhscdn.com/avatar/1000g2jo2pdfsn8cjs0005og61q6413qlmn6hsa0?imageView2/2/w/120/format/jpg",
    "name": "曹操来了",
    "redId": null,
    "type": 2,
    "atUserList": null,
    "title": "",
    "content": "拍狙击手的时候张艺谋说了这句话让曹操觉得皮特别冷心特别暖  #电影狙击手[话题]#   #曹操来了[话题]#  #明星[话题]#",
    "imagesList": [
      {
        "fileId": "spectrum/1040g0k030ups4ufllg005og61q6413qltc9ngeo",
        "url": "http://ci.xiaohongshu.com/spectrum/1040g0k030ups4ufllg005og61q6413qltc9ngeo?imageView2/2/w/1080/format/jpg",
        "original": "http://ci.xiaohongshu.com/spectrum/1040g0k030ups4ufllg005og61q6413qltc9ngeo",
        "width": 1080,
        "height": 1920,
        "latitude": null,
        "longitude": null,
        "traceId": "spectrum/1040g0k030ups4ufllg005og61q6413qltc9ngeo",
        "sticker": null,
        "imageExtraInfo": null
      }
    ],
    "videoInfo": {
      "id": "112137331",
      "videoKey": "stream/110/258/01e5c0b37e064fea010376038d78bf83b6_258.mp4",
      "originVideoKey": "spectrum/1040g0jg30ups4uac5i005og61q6413ql180l93g",
      "meta": {
        "width": 1080,
        "height": 1920,
        "duration": 23,
        "videoId": "136727240850690026"
      },
      "gifKey": "",
      "videoUrl": "http://v.xiaohongshu.com/stream/110/258/01e5c0b37e064fea010376038d78bf83b6_258.mp4?sign=d9240bb7cd83add45a7f6b8f6640600b&t=69b04000",
      "gifUrl": "",
      "videoKeyList": [],
      "hasFragments": false,
      "thumbnail": "110/0/01e5c0b37e064fea0010000000018d78bf1fd7_0.webp",
      "firstFrame": null,
      "volume": 0,
      "chapters": null,
      "redGifInfo": null
    },
    "time": {
      "createTime": 1707127804000,
      "updateTime": 1707142186000,
      "userUpdateTime": 1707127804000
    },
    "createTime": "2024-02-05 18:10",
    "impNum": 0,
    "likeNum": 0,
    "favNum": 0,
    "cmtNum": 0,
    "readNum": 0,
    "shareNum": 0,
    "followCnt": 0,
    "reportBrandUserId": null,
    "reportBrandName": null,
    "featureTags": null,
    "userInfo": {
      "nickName": "曹操来了",
      "avatar": "https://sns-avatar-qc.xhscdn.com/avatar/1000g2jo2pdfsn8cjs0005og61q6413qlmn6hsa0?imageView2/2/w/120/format/jpg",
      "userId": "62060e8c0000000010008f55",
      "advertiserId": null,
      "fansNum": 498837,
      "cooperType": 1,
      "priceState": 1,
      "pictureState": 0,
      "picturePrice": 0,
      "videoState": 1,
      "videoPrice": 200000,
      "userType": 2,
      "operateState": 1,
      "currentLevel": 2,
      "location": "北京",
      "contentTags": [
        {
          "taxonomy1Tag": "文化艺术",
          "taxonomy2Tags": [
            "科普"
          ]
        }
      ],
      "featureTags": null,
      "personalTags": null,
      "gender": "男",
      "isCollect": false,
      "clickMidNum": 70177,
      "interMidNum": 2589,
      "pictureInCart": null,
      "videoInCart": null,
      "kolType": 0,
      "mengagementNum": 2925,
      "mEngagementNum": 2925
    },
    "compClickData": null
  }
}

💡 Note: For list data, the example shows only 1-2 items for simplicity. The actual count depends on the API response.