Xiaohongshu Pgy APIs - User Blogger (V1)
Retrieve blogger profile information.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
token | query | string | Yes | User authentication token. |
userId | query | string | Yes | Blogger's user 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/cooperator/user/blogger/userId/v1?token=YOUR_API_KEY&userId=VALUE"text
I want to use the "User Blogger (V1)" API from Just One API.
API Endpoint: https://api.justoneapi.com/api/xiaohongshu-pgy/api/solar/cooperator/user/blogger/userId/v1
HTTP Method: GET
Authentication: Append "?token=YOUR_API_KEY" to the URL.
OpenAPI Definition: https://docs.justoneapi.com/openapi/xiaohongshu-pgy-apis/user-blogger-v1-en.json
Parameters:
- token (query): User authentication token. (Required)
- userId (query): Blogger's user 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/cooperator/user/blogger/userId/v1?token=YOUR_API_KEY&userId=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/cooperator/user/blogger/userId/v1?token=YOUR_API_KEY&userId=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/cooperator/user/blogger/userId/v1?token=YOUR_API_KEY&userId=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/cooperator/user/blogger/userId/v1?token=YOUR_API_KEY&userId=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/cooperator/user/blogger/userId/v1?token=YOUR_API_KEY&userId=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": {
"userId": "659902c1000000002200361b",
"valid": 1,
"headPhoto": "https://sns-avatar-qc.xhscdn.com/avatar/1040g2jo318js80k03k005pcp0b0ogdgrnpa11ig?imageView2/2/w/120/format/jpg",
"name": "团子有点咸",
"redId": "4639645438",
"location": "河北 廊坊 固安县",
"homePageDisplay": 1,
"travelAreaList": null,
"type": [],
"personalTags": [
"1-3岁",
"爸爸",
"萌娃",
"妈妈",
"家庭",
"夫妻"
],
"fansCount": 103684,
"likeCollectCountInfo": 2757601,
"businessNoteCount": 31,
"totalNoteCount": null,
"recommend": null,
"picturePrice": 13000,
"videoPrice": 18000,
"lowerPrice": 13000,
"userType": 2,
"showPrice": null,
"pictureState": 1,
"videoState": 1,
"isCollect": false,
"cooperateState": 1,
"pictureInCart": false,
"videoInCart": false,
"note": null,
"live": null,
"cps": null,
"noteSign": null,
"liveSign": null,
"goodRecommendPermission": null,
"cpc": null,
"pictureCpcBasePrice": null,
"pictureCpcPerPrice": null,
"pictureCpcEstimateNum": null,
"videoCpcState": 0,
"videoCpcBasePrice": null,
"videoCpcPerPrice": null,
"videoCpcEstimateNum": null,
"pictureCpcInCart": null,
"videoCpcInCart": null,
"contentTags": [
{
"taxonomy1Tag": "母婴",
"taxonomy2Tags": [
"母婴日常"
]
}
],
"featureTags": null,
"industryTag": null,
"gender": "女",
"picPriceRemind": null,
"videoPriceRemind": null,
"currentLevel": 2,
"nextLevel": -1,
"priceState": 1,
"resemblance": true,
"noteList": null,
"tradeType": null,
"clickMidNum": 64478,
"clickMidNumMcn": 64478,
"interMidNum": 647,
"fansNum": 103684,
"matchNoteNumber": 0,
"authorityList": null,
"processingAuthorities": null,
"pictureShowState": true,
"videoShowState": true,
"classifyCode": null,
"predictiveExposure": null,
"efficiencyValidUser": 0,
"pictureReadCost": null,
"videoReadCost": null,
"pictureClickMidNum": 0,
"pictureInterMidNum": 0,
"videoClickMidNum": 0,
"videoFinishRate": null,
"videoInterMidNum": 0,
"fans30GrowthRate": null,
"fans30GrowthNum": 0,
"nextPicturePrice": null,
"nextVideoPrice": null,
"fansRiseNum": null,
"fansEngageNum": null,
"overflowNum": null,
"newHighQuality": 0,
"isIndustryRecommend": null,
"picturePriceGtZero": true,
"videoPriceGtZero": true,
"lowActive": false,
"fansActiveIn28dLv": null,
"fansEngageNum30dLv": null,
"hundredLikePercent30": null,
"thousandLikePercent30": null,
"pictureHundredLikePercent30": null,
"pictureThousandLikePercent30": null,
"videoHundredLikePercent30": null,
"videoThousandLikePercent30": null,
"cooperType": 1,
"buyerType": 1,
"promiseImpNum": null,
"kolType": 0,
"showPromiseTag": 0,
"activityList": [],
"controlState": 0,
"clothingIndustryPrice": {
"bizType": null,
"industryId": 0,
"picturePrice": 0,
"pictureState": 0,
"videoPrice": 0,
"videoState": 0
},
"fbState": 0,
"forecastReadUvLower": 0,
"forecastReadUvUpper": 0,
"forecastGroupCoverRateLower": 0,
"forecastGroupCoverRateUpper": 0,
"intentionInfo": null,
"seedAndHarcest": null,
"liveImg": null,
"liveId": null,
"liveGMV": null,
"isStar": null,
"top2CategoryList": null,
"hasBuyerAuth": false,
"sellerRealIncomeAmt90d": 0,
"estimatePictureCpm": 0,
"estimatePictureCpmCompare": 0,
"estimateVideoCpm": 0,
"estimateVideoCpmCompare": 0,
"estimatePictureEngageCost": 0,
"estimatePictureEngageCostCompare": 0,
"estimateVideoEngageCost": 0,
"estimateVideoEngageCostCompare": 0,
"inviteReply48hNumRatio": 0,
"recommendReason": null,
"kolHeadLabel": 0,
"accumCoopImpMedinNum30d": 0,
"estimateCpuv30d": 0,
"accumPicCommonImpMedinNum30d": 0,
"accumVideoCommonImpMedinNum30d": 0,
"accumCommonImpMedinNum30d": 0,
"marketTarget": null,
"readMidCoop30": null,
"interMidCoop30": null,
"coopNoteNum30d": 0,
"specialIndustryLimit": null,
"kliveCnt30d": 0,
"avgAgmv90d": 0,
"avgLiveViewerNum": 0,
"algoRecommendReasons": null,
"mengagementNumMcn": 746,
"mengagementNum": 746,
"mcpuvNum30d": 0,
"mEngagementNum": 746,
"mEngagementNumMcn": 746,
"mCpuvNum30d": 0
}
}💡 Note: For list data, the example shows only 1-2 items for simplicity. The actual count depends on the API response.
