Our own visit statistics are always on. Google Analytics, which helps us understand how people use our public pages (not your signed-in workspace), is enabled only with your permission. See our Privacy policy.

POST

API health

Status data for this API is temporarily unavailable, so its recent state is unknown. This does not mean it is down.

Read the place a Xiaohongshu note is tagged with, by note link or share link. Get the location text as shown, the city, the place name and the place IDs. A note with no tagged place returns an empty result.

Price $5.56 per 1,000 requests ($0.005556 per call). Failed calls and empty results are not charged. Synchronous. For slow jobs add "mode": "async" to the body, take the job_id and poll.

AI prompt

Please help me write a data collection script with the EveryInfra Xiaohongshu Note location endpoint (xiaohongshu/note_location).

How the endpoint works:
- Request: POST https://api.everyinfra.com/api/v1/social with the header Authorization: Bearer <API key>. Read the key from the EVERYINFRA_API_KEY environment variable and never hard-code it.
- In the request body, set platform to xiaohongshu and action to note_location, and put the parameters inside params.
- Required parameters:
  - url: A note link (/explore/<note ID> or /discovery/item/<note ID>) or a Xiaohongshu share link. Only the note ID is needed, not the xsec_token; if the link carries one, the returned note link keeps it.
- Returns one object. Main fields: note_id (Note ID), url (The record's link on Xiaohongshu), location_text (The note's tagged place exactly as show…), city (City of the tagged place (note_location…), poi_name (Place name: on search, the place tagged…), poi_ids (Place IDs of the tagged place (note_loc…).
- Example request body:
{
  "platform": "xiaohongshu",
  "action": "note_location",
  "params": {
    "url": "https://www.xiaohongshu.com/explore/6a97c1c2000000002b00074e"
  }
}
- Price: $5.56 per 1,000 requests; failed and empty results are not charged.
- For dozens or hundreds of targets, add "mode": "async" to the body: you get a job_id at once and poll GET https://api.everyinfra.com/api/v1/jobs/{job_id} for the result.
- On 422, fix the request using the suggested parameter names and allowed values in the error; on 429 or 503, wait for Retry-After and try again.

Before writing code, ask me which targets I need, how many, which fields, and what output format I want; then confirm the plan and the rough cost with me.

Request parameters

NameInTypeRequiredDefaultDescription
AuthorizationheaderstringYes-Bearer followed by your API key. Create it in the console; never put it in a URL or a code repository.
platformbodystringYesxiaohongshuPlatform identifier, fixed value.
actionbodystringYesnote_locationCapability identifier, fixed value.
urlbody.paramsstringYes-A note link (/explore/<note ID> or /discovery/item/<note ID>) or a Xiaohongshu share link. Only the note ID is needed, not the xsec_token; if the link carries one, the returned note link keeps it.

Code samples

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": "note_location",
  "params": {
    "url": "https://www.xiaohongshu.com/explore/6a97c1c2000000002b00074e"
  }
}'

OpenAPI definition (JSON)Samples read the key from the EVERYINFRA_API_KEY environment variable; copied code never contains your key.

Response example

Field preview

No sample response is available for these parameters yet. This preview shows the response shape and fields from the API definition, with … as placeholders; it is not the result of a live call.

json
{
  "id": "req_…",
  "platform": "xiaohongshu",
  "action": "note_location",
  "results": {
    "note_id": …,
    "url": …,
    "location_text": …,
    "city": …,
    "poi_name": …,
    "poi_ids": …,
    "platform": …
  },
  "billing": {
    "charged": …,
    "charged_usd": …,
    "balance_after_usd": …,
    …
  },
  "quota": { … }
}

Response fields

Business data is in results. The table lists the fields a record can contain; values the platform does not show are never made up.

FieldMeaning
note_idNote ID. Comment capabilities use it to point back to the note.
urlThe record's link on Xiaohongshu. Links from search, note, profile and hashtag usually carry an access token, so they open in a signed-out browser (the token expires; call again for a fresh link). Note links from user_posts carry no token and need one to open in a browser: call note with the note ID to get a link that opens. Profile links from search_users carry no token either; call profile with the user_id for one that opens. Note links from pgy_content_square carry a token, except with keyword, where they carry none.
location_textThe note's tagged place exactly as shown (note_location), such as a city and a café; when several places are tagged it reads like a city followed by etc. An untagged note returns an empty result.
cityCity of the tagged place (note_location), the part before the dot; absent when several places are tagged.
poi_namePlace name: on search, the place tagged on the result card; on note_location, the part of the note's tagged place after the dot, such as a café branch. Absent when no place, or several places, are tagged.
poi_idsPlace IDs of the tagged place (note_location), in page order; several when several places are tagged.
platformSource platform identifier, the same as platform in the request (for example xiaohongshu, tiktok).

Errors and billing

401
Missing or invalid key.
402
Insufficient balance. Top up first.
422
Invalid parameter name or value. Fix it using the suggestions in the error. No charge.
429
Per-minute request limit reached. Wait for Retry-After, then try again.
503
Could not complete. The held charge is returned to your balance. If the outcome is unknown, verify it before you retry.
200 empty
No data. No charge.

Errors