# Xiaohongshu (RedNote) product detail API

The Xiaohongshu (RedNote) product detail API returns a product of Xiaohongshu's shop by its ID: title, current and original price in yuan, pictures, rating, reviews, shop. One call costs 12 credits ($0.024 to $0.04 depending on the pack); failed calls are free. Call it over HTTP or from your AI client over MCP. Last tested 2026-10-17.

- Page: https://socialtoai.com/xiaohongshu-product-detail-api/
- Last updated: 2026-10-17
- Last tested: 2026-10-17

| Request | Price key | Credits |
| --- | --- | --- |
| `POST /v1/call/xiaohongshu.product_detail` | `xiaohongshu.product_detail` | 12 |

Preview: this interface is not marked stable yet, so its parameters and fields may still change. It is charged like any other call, and a failed call is not charged.

## Request

```bash
curl https://api.socialtoai.com/v1/call/xiaohongshu.product_detail \
  -H "Authorization: Bearer $SOCIALTOAI_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "id": "67bc0378a2e72600153d3ed1"
  }'
```

```python
import os
import requests

response = requests.post(
    "https://api.socialtoai.com/v1/call/xiaohongshu.product_detail",
    headers={"Authorization": f"Bearer {os.environ['SOCIALTOAI_KEY']}"},
    json={
        "id": "67bc0378a2e72600153d3ed1",
    },
)
print(response.json())
```

## Parameters

| Name | Type | Required | Default | Description |
| --- | --- | --- | --- | --- |
| `id` | string | Required | — | Product ID, 24 hexadecimal characters |

## Where the values come from

- `id`: Product ID, 24 hexadecimal characters (e.g. `67bc0378a2e72600153d3ed1`)
  Returned as `ref` by: [product_search](https://socialtoai.com/xiaohongshu-product-search-api.md)

## Response fields

| Field | Type | Meaning | Given |
| --- | --- | --- | --- |
| `items[].title` | string | The entry's title or name. | yes |
| `items[].url` | string | A link that opens it; null where the platform's list has none. | always null: Xiaohongshu does not give it |
| `items[].rank` | integer | Position on a board, from 1. | yes |
| `items[].heat` | integer | The platform's heat score. | yes |
| `items[].fields.description` | string | The product description. | yes |
| `items[].fields.price` | string | The current price, as a decimal string in fields.currency. | yes |
| `items[].fields.original_price` | string | The price before discount. | yes |
| `items[].fields.currency` | string | The currency of the prices. | yes |
| `items[].fields.images` | string[] | Image addresses. | yes |
| `items[].fields.rating` | number | The rating. | yes |
| `items[].fields.sold` | integer | Units sold. | yes |
| `items[].fields.reviews_count` | integer | How many reviews it has. | yes |
| `items[].fields.shop.id` | string | The shop's ID. | yes |
| `items[].fields.shop.name` | string | The shop's name. | yes |

Every item also has platform, id, ref, approx and type; the response around the items is the same on every call. [Response format](https://socialtoai.com/docs/api/response.md)

## Sample response

Sample data: names, links and text are replaced by placeholders; the numbers are as recorded.

```json
{
  "request_id": "req_00000000-0000-4000-8000-000000000001",
  "schema_version": "v1",
  "fetched_at": "2026-10-12T21:55:33.000Z",
  "action": "call",
  "op": "xiaohongshu.product_detail",
  "platform": "xiaohongshu",
  "status": "ok",
  "items": [
    {
      "platform": "xiaohongshu",
      "id": "…",
      "ref": "…",
      "approx": [],
      "type": "entry",
      "entry_type": "product",
      "title": "…",
      "url": null,
      "rank": null,
      "heat": null,
      "fields": {
        "description": null,
        "price": "17.9",
        "original_price": null,
        "currency": "…",
        "images": ["https://example.com/…", "https://example.com/…"],
        "rating": 4.5,
        "sold": 4027,
        "reviews_count": 431,
        "shop": {
          "id": "…",
          "name": "…"
        }
      }
    }
  ],
  "unavailable": ["url"],
  "warnings": [],
  "applied_params": {
    "id": "67bc0378a2e72600153d3ed1"
  },
  "cost_credits": 12,
  "billing": {
    "cost_credits": 12,
    "balance_credits": 88,
    "today_spend_credits": 12,
    "daily_limit_credits": null,
    "daily_remaining_credits": null,
    "display": "This call: 12 credits. Balance: 88 credits."
  },
  "replayed": false
}
```

## Paging and failures

- One call returns one object, with no pages, for 12 credits.
- 1 call per second per key, 5 after a purchase; going over is not charged. [Rate limits](https://socialtoai.com/docs/credits-and-billing.md#rate-limits)
- A failed call costs 0 credits and is never retried on its own. [Error codes](https://socialtoai.com/docs/api/errors.md)

## Ask your AI

- Get a product of Xiaohongshu's shop by its ID: 67bc0378a2e72600153d3ed1. → `call {"op":"xiaohongshu.product_detail","id":"67bc0378a2e72600153d3ed1"}`, 12 credits
- Search the products of Xiaohongshu's shop by terms: 防晒霜, then for the first 3: get a product of Xiaohongshu's shop by its ID. → `call {"op":"xiaohongshu.product_search","query":"防晒霜"}`, `call {"op":"xiaohongshu.product_detail","id":"<ref>"}` × 3, 48 credits

## The same call on other platforms

| Platform | Price key | Credits | Page |
| --- | --- | --- | --- |
| TikTok | `tiktok.product_detail` | 2 | https://socialtoai.com/tiktok-product-detail-api.md |

## More on Xiaohongshu

| Interface | What it does | Price key | Credits | Page |
| --- | --- | --- | --- | --- |
| `product_search` | Search the products of Xiaohongshu's shop by terms. | `xiaohongshu.product_search` | 12 | https://socialtoai.com/xiaohongshu-product-search-api.md |
| `product_reviews` | Get the first page of buyers' reviews of a product of Xiaohongshu's shop by the product's ID. | `xiaohongshu.product_reviews` | 12 | https://socialtoai.com/xiaohongshu-product-reviews-api.md |
| `search` | Find notes by keyword: text, author, likes, comment count and publish time. | `xiaohongshu.search` | 12 | https://socialtoai.com/xiaohongshu-search-api.md |
| `trending` | What is trending now: title, rank and heat. | `xiaohongshu.trending` | 12 | https://socialtoai.com/xiaohongshu-trending-api.md |
| `detail` | One note by ID or link: text, author, likes, comment count and publish time. | `xiaohongshu.detail` | 12 | https://socialtoai.com/xiaohongshu-detail-api.md |
| `comments` | The comments under one note: text, likes, reply count and time. | `xiaohongshu.comments` | 12 | https://socialtoai.com/xiaohongshu-comments-api.md |
| `user_profile` | One account: name, bio, followers, following and post count. | `xiaohongshu.user_profile` | 12 | https://socialtoai.com/xiaohongshu-user-profile-api.md |
| `user_posts` | The recent notes of one account. | `xiaohongshu.user_posts` | 12 | https://socialtoai.com/xiaohongshu-user-posts-api.md |
| `topic_notes` | Get the trending notes under a Xiaohongshu topic by its page ID. | `xiaohongshu.topic_notes` | 12 | https://socialtoai.com/xiaohongshu-topic-notes-api.md |
| `topic` | Get one Xiaohongshu topic by its page ID. | `xiaohongshu.topic` | 12 | https://socialtoai.com/xiaohongshu-topic-api.md |

## FAQ

**Do I need a Xiaohongshu account or Xiaohongshu's own API access?**

No. You only need a SocialToAI key. The call returns content and account information publicly visible on Xiaohongshu; you never sign in to Xiaohongshu or apply for anything there.

**What does “Preview” mean here?**

Preview: this interface is not marked stable yet, so its parameters and fields may still change. It is charged like any other call, and a failed call is not charged.
