Skip to content
Eden Engine

Xiaohongshu Note Search (by Keyword)

omnial/xiaohongshu-app-search-notes

Given a search keyword, returns up to 20 matching Xiaohongshu (Little Red Book) notes: each note's title, caption, image count/dimensions, video length, publish/update timestamps, engagement counts (likes, comments, collects, shares), any corner-badge tags the app shows on the note (e.g. a publish-date badge), and the author's public nickname and handle. A keyword with no real matches can still return a full page of loosely-related notes rather than an empty result -- see usage.md.

activeper callv1
Provider
Web & Business Data Network
Category
xiaohongshu
Provider price
$0.020475 per call
Latency p50 / p95
— / —
Success rate
—
Verified
—

Provider list price; Omnial MCP charges provider cost plus a platform markup on top.

Contract

input_schema.json
{
  "type": "object",
  "required": [
    "keyword"
  ],
  "properties": {
    "page": {
      "type": "integer",
      "default": 1,
      "examples": [
        1
      ],
      "description": "Page number, start from 1"
    },
    "source": {
      "type": "string",
      "default": "explore_feed",
      "examples": [
        "explore_feed"
      ],
      "description": "Source"
    },
    "ai_mode": {
      "type": "integer",
      "default": 0,
      "description": "AI mode: 0=off, 1=on"
    },
    "keyword": {
      "type": "string",
      "examples": [
        "美食推荐"
      ],
      "description": "Search keyword"
    },
    "note_type": {
      "type": "string",
      "examples": [
        "不限"
      ],
      "description": "笔记类型/Note type: 不限, 视频笔记, 普通笔记, 直播笔记"
    },
    "search_id": {
      "type": "string",
      "description": "Search ID for pagination"
    },
    "sort_type": {
      "type": "string",
      "default": "general",
      "examples": [
        "general"
      ],
      "description": "Sort type"
    },
    "time_filter": {
      "type": "string",
      "examples": [
        "不限"
      ],
      "description": "发布时间筛选/Time filter: 不限, 一天内, 一周内, 半年内"
    },
    "search_session_id": {
      "type": "string",
      "description": "Search session ID for pagination"
    }
  },
  "additionalProperties": false
}
output_schema.json
{
  "type": "object",
  "properties": {
    "msg": {
      "type": "string",
      "description": "e.g. '成功' (Chinese for 'success')."
    },
    "code": {
      "type": "number",
      "description": "0 on both real calls observed."
    },
    "data": {
      "type": "object",
      "properties": {
        "items": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "note": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "The note's own content id."
                  },
                  "desc": {
                    "type": "string",
                    "description": "The note's caption text."
                  },
                  "type": {
                    "type": "string",
                    "description": "e.g. 'normal', 'video'."
                  },
                  "user": {
                    "type": "object",
                    "properties": {
                      "images": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "The author's avatar, withheld same as `images_list[].url`."
                      },
                      "red_id": {
                        "type": "string",
                        "description": "The author's Xiaohongshu handle -- usually a vendor-assigned numeric string, but observed as a self-chosen vanity string on some accounts."
                      },
                      "followed": {
                        "type": "boolean",
                        "description": "Whether the API credential's own account follows them."
                      },
                      "nickname": {
                        "type": "string",
                        "description": "The author's display name."
                      },
                      "red_official_verified": {
                        "type": "boolean"
                      },
                      "red_official_verify_type": {
                        "type": "number"
                      },
                      "show_red_official_verify_icon": {
                        "type": "boolean"
                      }
                    },
                    "description": "The note's author.",
                    "additionalProperties": true
                  },
                  "liked": {
                    "type": "boolean"
                  },
                  "niced": {
                    "type": "boolean"
                  },
                  "title": {
                    "type": "string",
                    "description": "Often empty on video-type notes."
                  },
                  "geo_info": {
                    "type": "object",
                    "properties": {
                      "distance": {
                        "type": "string",
                        "description": "Empty string on every real note calibrated."
                      }
                    },
                    "additionalProperties": true
                  },
                  "tag_info": {
                    "type": "object",
                    "properties": {
                      "type": {
                        "type": "string"
                      },
                      "title": {
                        "type": "string"
                      }
                    },
                    "additionalProperties": true
                  },
                  "collected": {
                    "type": "boolean"
                  },
                  "has_music": {
                    "type": "boolean"
                  },
                  "timestamp": {
                    "type": "number",
                    "description": "Publish time, Unix seconds."
                  },
                  "nice_count": {
                    "type": "number"
                  },
                  "images_list": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "url": {
                          "type": [
                            "string",
                            "null"
                          ],
                          "description": "Withheld (returned as `null` regardless of what the note published) -- only that an image exists is observable, not the image itself."
                        },
                        "width": {
                          "type": "number"
                        },
                        "fileid": {
                          "type": "string",
                          "description": "Opaque internal image asset id."
                        },
                        "height": {
                          "type": "number"
                        },
                        "trace_id": {
                          "type": "string"
                        },
                        "url_size_large": {
                          "type": [
                            "string",
                            "null"
                          ],
                          "description": "Withheld, same as `url`."
                        },
                        "need_load_original_image": {
                          "type": "boolean"
                        }
                      },
                      "additionalProperties": true
                    }
                  },
                  "liked_count": {
                    "type": "number"
                  },
                  "update_time": {
                    "type": "number",
                    "description": "Last update time, Unix milliseconds."
                  },
                  "shared_count": {
                    "type": "number"
                  },
                  "video_info_v2": {
                    "type": "object",
                    "properties": {
                      "image": {
                        "type": "object",
                        "properties": {
                          "thumbnail": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Withheld, same as `images_list[].url`."
                          },
                          "first_frame": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Withheld, same as `images_list[].url`. Only observed present on some video notes, not all."
                          },
                          "thumbnail_dim": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Withheld, same as `images_list[].url`."
                          }
                        },
                        "additionalProperties": true
                      }
                    },
                    "description": "Present only on video-type notes. Only thumbnail imagery is exposed; the actual video stream URLs, codecs, and CDN metadata the upstream response also carries are not.",
                    "additionalProperties": true
                  },
                  "comments_count": {
                    "type": "number"
                  },
                  "video_duration": {
                    "type": [
                      "string",
                      "number"
                    ],
                    "description": "e.g. '0:07' (MM:SS string) on a video note; absent/not meaningful on an image-only note."
                  },
                  "collected_count": {
                    "type": "number"
                  },
                  "corner_tag_info": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "text": {
                          "type": "string"
                        },
                        "type": {
                          "type": "string"
                        },
                        "style": {
                          "type": "number"
                        },
                        "text_en": {
                          "type": "string"
                        },
                        "location": {
                          "type": "number"
                        }
                      },
                      "additionalProperties": true
                    },
                    "description": "Small badges the app overlays on a note's thumbnail. One observed badge type ('publish_time') carries a human-readable relative date in `text`/`text_en`; another observed type ('ubt_sig_token') carries an opaque signed tracking string in `text` instead of anything a customer would read -- `text`'s meaning depends on this entry's own `type`."
                  },
                  "note_attributes": {
                    "type": "array",
                    "description": "Empty array on every real note calibrated."
                  },
                  "last_update_time": {
                    "type": "number",
                    "description": "Observed as `0` on every real note calibrated."
                  },
                  "cover_image_index": {
                    "type": "number"
                  }
                },
                "additionalProperties": true
              }
            },
            "additionalProperties": true
          },
          "description": "20 notes on both real calls observed."
        },
        "is_broad_query": {
          "type": "boolean",
          "description": "Observed `true` on BOTH real calibration calls (an ordinary Chinese-language keyword and a deliberately nonexistent one) -- its exact meaning ('this query was broadened beyond an exact keyword match') is not confirmed to reliably distinguish an exact-match search from a broadened/fallback one; do not rely on this field alone to detect a no-real-match search (see usage.md)."
        }
      },
      "additionalProperties": true
    },
    "page": {
      "type": "number"
    },
    "success": {
      "type": "boolean"
    },
    "next_page": {
      "type": "number"
    },
    "search_id": {
      "type": "string",
      "description": "Pass back as the `search_id` input to continue paging this same search."
    },
    "search_session_id": {
      "type": "string",
      "description": "Pass back as the `search_session_id` input to continue paging this same search."
    }
  },
  "description": "The search response, as returned at routing.responseResultPath ($.output).",
  "additionalProperties": true
}

Pricing

Every real charge, itemised. A model that quietly omits one is a slow financial leak, so nothing here is rolled up, and a charge that only applies to some inputs says so rather than being added in.

Prices in this catalog are the provider's own list price, not your bill: Omnial MCP charges provider cost plus a platform markup on top, so what you are charged is higher than the figure shown. For the exact amount a specific call will cost, run omnial_execute with dry_run: true; that number includes the markup and is what we hold while the call runs. It is a quote, not a cap on the charge.

ChargeRate
Per call
Flat, regardless of what comes back
$0.020475
Cost basis
Not recorded

This tool's catalog entry does not record how its final bill is determined, so we will not tell you whether its cost is fixed before the call or reported by the provider afterwards. Either way what is held is a quote rather than a cap: you are charged what the call actually costs, bounded at 2x the quote.

Updated
Sep 23, 2026