Product detail API
2 endpoints on 2 platforms return the same Product object. One product by its ID or link. A call costs from $0.0020 to $0.0200, each endpoint at its own price; a failed call is free.
Product detail on each platform
One row per endpoint: what it is called, how much comes back in a call, and what a call costs.
The Product object
Every endpoint above returns these fields, with the same names and types.
idtextID; pass it unchanged to the endpoints that get the product and list its reviewsurllinkLink that opens the producttitletextTitle of the productdescriptiontextThe text of the product's descriptionpriceamountCurrent price; the lowest one when its variants are priced differentlyoriginal_priceamountThe price before the discount; null when there is nonecurrencytextCurrency of the prices, an ISO 4217 codeimageslist of linkAddresses of the product's picturesratingnumberBuyers' rating, out of 5metrics.soldintegerUnits soldmetrics.reviewsintegerReviewsshop.idtextShop IDshop.nametextName of the shopWhich platform fills which field
A field an endpoint cannot give is listed in meta.unavailable on every answer, so a gap is never a surprise.
The same call on two platforms
Same parameter names, same paging, same answer. Only the path changes.
# TikTok curl -G "https://api.dataxapi.com/v1/tiktok/shop/products/get" \ --data-urlencode "id=1732488007561286228" \ -H "Authorization: Bearer $DATAXAPI_API_KEY" # Xiaohongshu (RedNote): one word changes curl -G "https://api.dataxapi.com/v1/xiaohongshu/shop/products/get" \ --data-urlencode "id=67bc0378a2e72600153d3ed1" \ -H "Authorization: Bearer $DATAXAPI_API_KEY"
// TikTok import { DataXAPI } from "@dataxapi/sdk"; const dx = new DataXAPI(); // reads DATAXAPI_API_KEY const result = await dx.tiktok.shop.products.get({ id: "1732488007561286228" }); console.log(result.data.item); // Xiaohongshu (RedNote): one word changes const other = await dx.xiaohongshu.shop.products.get({ id: "67bc0378a2e72600153d3ed1" }); console.log(other.data.item);
# TikTok from dataxapi import DataXAPI dx = DataXAPI() # reads DATAXAPI_API_KEY result = dx.tiktok.shop.products.get(id="1732488007561286228") print(result["data"]["item"]) # Xiaohongshu (RedNote): one word changes other = dx.xiaohongshu.shop.products.get(id="67bc0378a2e72600153d3ed1") print(other["data"]["item"])
# TikTok dataxapi call tiktok.shop.products.get id=1732488007561286228 # Xiaohongshu (RedNote): one word changes dataxapi call xiaohongshu.shop.products.get id=67bc0378a2e72600153d3ed1
{
"code": "ok",
"request_id": "10817c84-2293-4e0e-91a0-a61f8c3664e2",
"data": {
"item": {
"id": "1716954397711561377",
"url": "https://shop.tiktok.com/view/product/1716954397711561377",
"title": "I tried weekend hiking for 30 days. Here is what happened",
"description": "My honest take on weekend hiking, a month in.",
"images": [
"https://p16-sign-va.tiktokcdn.com/tos-maliva-p-0068/c864758cf8a90105a3d1~c5_720x720.jpeg",
"https://p16-sign-va.tiktokcdn.com/tos-maliva-p-0068/2061b170200b03e40ffe~c5_720x720.jpeg",
// … 1 more
],
"rating": 4.1,
"metrics": { "sold": 233, "reviews": 18 },
"shop": { "id": "1748001744684903334", "name": "Lumen Outdoor Store" }
}
},
"warnings": [],
"meta": {
"capability": "tiktok.shop.products.get",
"result_status": "complete",
"fetched_at": "2026-10-12T21:46:17.000Z",
"cached": false,
"replayed": false,
"unavailable": {
"price": "capability",
"original_price": "capability",
"currency": "capability"
},
"billing": {
"amount": "0.002",
"currency": "USD",
"balance_after": "9.998"
}
}
}TikTok Shop product detail: From a response recorded 2026-10-12 21:46 UTC. Names, text and IDs are examples, and so are the links: none is the recorded one (the page shows no one's personal data); the figures are as recorded. Long lists are cut. The request ID, cursor and balance are made up.
What comes back
The objects these endpoints answer with: one set of fields each, the same on every platform.
Questions about the Product detail API
Short answers. Each endpoint's page has its own limits and examples.
TikTok Shop product detail API →How much does it cost?
$0.0020 a call on TikTok; $0.0200 a call on Xiaohongshu (RedNote). You are charged when data comes back; a failed call costs nothing. No subscription, no monthly minimum.
Does every platform fill every field?
No. 4 of the 13 fields are missing on at least one platform; the table on this page says which. A field an endpoint cannot give is named in meta.unavailable on every answer, never filled with a guess.
Do I need an account on the platform?
No. One DataXAPI key reads all 2 platforms. No platform account and no cookie.
Other data types
The same idea everywhere: one action, every platform that has it.
Start with one key.
207 endpoints on 21 platforms, from $0.0003 a call. Errors and timeouts are not charged.