# Xiaohongshu Comments from multiple URLs API (xiaohongshu.comments_batch)

- Canonical page: https://everyinfra.com/en/xiaohongshu-api/comments_batch
- Endpoint: POST https://api.everyinfra.com/api/v1/social with {"platform": "xiaohongshu", "action": "comments_batch", "params": {...}}
- Price: $0.005556 per call ($5.56 per 1,000 requests); failed calls and empty results are not charged
- Returns: list, one page of 15 per target, no next_page_token (to read further, page one target at a time with the single-target action; limit is ignored)
- Mode: sync only; everything it returns (every target of a batch, or every SKU of a product) is read in one call, and "mode": "async" returns 422 before any charge

## Health

- Live health (24h percent, hourly and daily trends): https://api.everyinfra.com/api/v1/social/availability?platform=xiaohongshu&action=comments_batch

## Parameters

| name | type | required | default | description |
|---|---|---|---|---|
| urls | not declared | yes | not declared | Specifies an array of 1 to 20 Xiaohongshu note URLs for the comments_batch action. Each URL must contain a valid note ID and an xsec_token. Billing is per target note; check partial or missed response fields if some notes fail rather than assuming zero comments exist. |
| sort | enum: default / most_liked / newest | no | not declared | Comment order for every note in the request: default follows the platform's own order (the same as omitting it), newest puts the latest comments first, and most_liked puts the most-liked first. |

## Response fields (items in `results`)

| field | meaning |
|---|---|
| id | The record's unique ID on the platform. Unique only within one platform; IDs can repeat across platforms. |
| text | Note body or comment text. note and hashtag return the full body; search and user_posts may return a truncated excerpt (up to about 60 and 100 characters respectively). Call note with the note ID for the full text. |
| like_count | Like count. On note and comment results, the likes on that item; on profile, the total likes the account's notes have received. null means not public or not returned this time, not zero. |
| posted_at | Publish time in ISO 8601, UTC (for example 2026-08-07T12:34:56+00:00). Non-standard strings from the platform are passed through as is, so parse defensively. null means the platform does not disclose it. |
| ip_location | IP location (province or country) that Xiaohongshu displays; not entered by the user. Only some user_posts rows carry it. |
| author_name | Author's display name. |
| author_id | The author's user ID. Pass it to profile or user_posts. Note results carry the 24-character ID from profile URLs; comment results (comments, comments_batch, sub_comments) usually carry a different 29-character form. The two forms of one person do not match, so convert them with the user_id that profile returns before de-duplicating across batches. |
| sub_comment_count | Number of replies under this comment. |
| note_id | Note ID. Comment capabilities use it to point back to the note. |
| note_url | Link to the note the comment belongs to. |
| next_page_token | Page token (search, comments, sub_comments, user_posts, search_users, hashtag): pass it back unchanged as page_token, with the other parameters the same, to fetch the next page. |
| images | Image links. On note, hashtag, search and user_posts, every image of the note in order. On comment results (comments, comments_batch, sub_comments), the images attached to the comment, stickers included; an empty array means none. null means this item was not returned this time. |
| is_author | Whether the note's author wrote this comment. null means this item was not returned this time, not false. |
| author_avatar_url | The commenter's avatar link (comments, comments_batch, sub_comments). |
| author_red_id | The author's Xiaohongshu ID: on comment results (comments, comments_batch, sub_comments) the commenter's, on note the note author's. |
| author_is_ai_agent | Whether the commenter is an account the platform marks as AI; absent when this item was not returned. |
| mentioned_users | People @-mentioned: on comment results, those mentioned in the comment; on note, those mentioned in the note. Each entry has user_id and nickname. Absent when there are none. |
| comment_tags | platform-native meaning |
| sub_comments | platform-native meaning |
| platform | Source platform identifier, the same as platform in the request (for example xiaohongshu, tiktok). |

## Example

```bash
curl -X POST 'https://api.everyinfra.com/api/v1/social' \
  -H "Authorization: Bearer $EVERYINFRA_API_KEY" \
  -H 'Content-Type: application/json' \
  --data-raw '{
  "platform": "xiaohongshu",
  "action": "comments_batch",
  "params": {
    "urls": [
      "https://www.xiaohongshu.com/explore/6aa7a3f600000000110335f8?xsec_token=YByFNzoKupps8B3qI774Gx7XGxfHpq4QWEvxU4zsD8454%3D"
    ]
  }
}'
```

```python
import os
import requests

response = requests.post(
    "https://api.everyinfra.com/api/v1/social",
    headers={"Authorization": f"Bearer {os.environ['EVERYINFRA_API_KEY']}"},
    json={
        "platform": "xiaohongshu",
        "action": "comments_batch",
        "params": {
            "urls": [
                "https://www.xiaohongshu.com/explore/6aa7a3f600000000110335f8?xsec_token=YByFNzoKupps8B3qI774Gx7XGxfHpq4QWEvxU4zsD8454%3D",
            ],
        },
    },
    timeout=120,
)
print(response.status_code)
print(response.json())
```

## Response example

No real sample for these example parameters yet: structure only, every value is a placeholder (…).

```text
{
  "id": "req_…",
  "platform": "xiaohongshu",
  "action": "comments_batch",
  "results": [
    {
      "id": …,
      "text": …,
      "like_count": …,
      "posted_at": …,
      "ip_location": …,
      "author_name": …,
      "author_id": …,
      "sub_comment_count": …,
      "note_id": …,
      "note_url": …,
      "next_page_token": …,
      "images": …,
      "is_author": …,
      "author_avatar_url": …,
      "author_red_id": …,
      "author_is_ai_agent": …,
      "mentioned_users": …,
      "comment_tags": …,
      "sub_comments": …,
      "platform": …
    }
  ],
  "count": …,
  "billing": {
    "charged": …,
    "charged_usd": …,
    "balance_after_usd": …,
    …
  },
  "quota": { … }
}
```

## Also

- Capability catalog (no key): https://api.everyinfra.com/api/v1/social/catalog?platform=xiaohongshu
- OpenAPI: https://everyinfra.com/openapi.json · Agents guide: https://everyinfra.com/agents.md
