接口说明

Target Reviews API 获取 Target 商品评论、星级、发布时间和图片等数据。

请求URL

POST https://scrapeapi.pangolinfo.com/api/v1/ecommerce/target/reviews

请求头

参数名参数值类型说明
Content-Typeapplication/jsonstring数据格式
AuthorizationBearer xxxstring认证凭证

采集超时90秒,客户端超时建议至少105秒。

请求参数

参数必填类型说明
productIdNostring商品ID,必须用字符串传递;与productUrl二选一。
productUrlNostring配置站点的商品链接,可替代productId。
最多字符: 2048
pageNointeger页码从 1 开始;使用 data.pagination.nextPage 续页。
默认值: 1
最小值: 1
最大值: 300001
pageSizeNointeger各站点默认值和最大值见站点表;不传则沿用站点默认。
最小值: 1
最大值: 100
includeNativeNoboolean默认true,保留原始平台字段。
allowStaleNoboolean默认false;true允许失败时返回旧缓存,meta会注明。
refreshNoboolean默认false;true跳过新鲜缓存。

productId 与 productUrl 至少填写一项;商品 ID 必须使用字符串。

支持站点

国家码默认每页最大每页
US2050

评论按最新排序。

响应值

返回值类型说明
codeinteger状态码,0 表示成功。
messagestring响应信息,成功时为 ok。
pointCostnumber本次完整响应实际消耗的积点。
dataobject | null返回数据,字段见下表。

返回参数 data 说明

返回值类型说明
countrystring采集站点国家,不代表评论作者的国家。
paginationobject分页结果,续页时使用 nextPage。
productIdstring商品 ID,以字符串返回。
queryobject本次生效的检索参数。
warningsstring[]采集范围及数据口径提示。
storestringstore
totalsobject平台报告总量与本次返回数量,口径可能不同。
platformstring平台标识。
sourceUrlstringsourceUrl
providerstringprovider
metaobject采集状态、缓存信息等元数据。
schemaFingerprintstringschemaFingerprint
capturedAtstring本次数据采集时间。
productSummaryobject商品整体评分及星级分布。
resultsobject[]本次返回的主体记录数组。
statisticsobjectstatistics

data.pagination 字段说明

返回值类型说明
nextPageinteger下一页页码;null 表示结束。
totalPagesinteger总页数;未知时为 null。
pageSizeinteger每页记录数。
hasNextboolean是否还有下一页。
pageinteger本次页码。

data.totals 字段说明

返回值类型说明
queryinteger本次生效的检索参数。
reportedintegerreported
returnedintegerreturned
withTextintegerwithText

data.meta 字段说明

返回值类型说明
cachestringcache
stalebooleanstale
ageSecondsintegerageSeconds
operationIdstringoperationId
upstreamAttemptsintegerupstreamAttempts
coalescedbooleancoalesced

data.productSummary 字段说明

返回值类型说明
withTextCountnull有文字的评论数量;平台未提供时为 null。
reviewCountinteger评论总数;平台未提供时为 null。
averageRatingnumber商品整体平均评分。
scopestring汇总覆盖范围。
warningsany[]采集范围及数据口径提示。
sourcestring统计数据来源。
totalCountinteger平台统计总数,含义由 countKind 说明。
countKindstring统计口径,区分全部评分与文字评论。
starDistributionobject1–5 星对应的数量。

data.productSummary.starDistribution 字段说明

返回值类型说明
1integer1
2integer2
3integer3
4integer4
5integer5

data.results[] 字段说明

返回值类型说明
reviewIdstring评论唯一标识。
contentstring正文,保留平台原文。
titlestring | null评论或帖子标题,缺失时为 null。
authorstring | null作者名称。
starstring | null评论星级,以字符串返回,如 5.0。
datestring | null平台评论日期。
createdAtstring | null发布时间,保留完整时间;不可用时为 null。
purchasedboolean | null是否已验证购买;未知时为 null。
imgsstring[]图片 URL 数组。
photosany[]保留图片各尺寸的原始对象。
videosany[]视频数组。
nativeobject平台原始字段;includeNative 控制是否返回。

data.statistics 字段说明

返回值类型说明
metadataobjectmetadata
statisticsobjectstatistics

data.statistics.metadata 字段说明

返回值类型说明
has_videosbooleanhas_videos
has_photosbooleanhas_photos
has_verifiedbooleanhas_verified
has_entitiesbooleanhas_entities

data.statistics.statistics 字段说明

返回值类型说明
question_countintegerquestion_count
not_recommended_countintegernot_recommended_count
reviews_with_videos_countintegerreviews_with_videos_count
recommended_percentageintegerrecommended_percentage
ratingobjectrating
review_countintegerreview_count
recommended_countintegerrecommended_count
reviews_with_images_countintegerreviews_with_images_count
calculated_atstringcalculated_at
incentivized_countintegerincentivized_count

imgs 兼容 Best Buy CA 的 imageUrl 和 Judge.me 的 original;photos 保留各尺寸原对象。评论星级、日期等缺失值保留 null。

下一页使用 data.pagination.nextPage,为 null 时结束。分页时可按 reviewId 去重。

失败保留统一响应外壳及 data.error;参数错误 code=1002、限流4029、暂忙5001、采集失败9200。HTTP 503 冷却响应保留 Retry-After。

请求示例

curl --request POST \
  --url https://scrapeapi.pangolinfo.com/api/v1/ecommerce/target/reviews \
  --header 'Authorization: Bearer YOUR_PANGOLINFO_API_KEY' \
  --header 'Content-Type: application/json' \
  --data '{
  "productId": "94409105"
}'

返回示例

下例截取实际响应首条列表记录,长文本和链接作了缩写;pointCost 为完整响应的实际费用。

{
  "code": 0,
  "pointCost": 16.0,
  "data": {
    "country": "US",
    "pagination": {
      "nextPage": 2,
      "totalPages": 2,
      "pageSize": 20,
      "hasNext": true,
      "page": 1
    },
    "productId": "94409105",
    "query": {
      "includeRatings": true,
      "pageSize": 20,
      "page": 1,
      "sort": "newest"
    },
    "warnings": [
      "Live pagination can shift as reviews are added. Deduplicate by review ID and reconcile page 1."
    ],
    "store": "roborock",
    "totals": {
      "query": 35,
      "reported": 35,
      "returned": 20,
      "withText": 20
    },
    "platform": "target",
    "sourceUrl": "https://www.target.com/p/-/A-94409105",
    "provider": "target",
    "meta": {
      "cache": "miss",
      "stale": false,
      "ageSeconds": 0,
      "operationId": "36820a05-615b-44e7-a8d0-141ba6080f53",
      "upstreamAttempts": 1,
      "coalesced": false
    },
    "schemaFingerprint": "e7b38cfdbcbf1c18a976c9c370d506a38b1848c2a8465f42abdd1852eb37b0a1",
    "capturedAt": "2026-11-07T11:49:40.010Z",
    "productSummary": {
      "withTextCount": null,
      "reviewCount": 35,
      "averageRating": 4.47,
      "scope": "upstream_product_or_review_group",
      "warnings": [],
      "source": "Target statistics.rating; review_count is separate",
      "totalCount": 64,
      "countKind": "ratings",
      "starDistribution": {
        "1": 5,
        "2": 2,
        "3": 3,
        "4": 2,
        "5": 52
      }
    },
    "results": [
      {
        "date": "2026-09-27",
        "imgs": [],
        "merchantResponses": [],
        "syndication": {
          "isSyndicated": false
        },
        "star": "5.0",
        "author": "breanne",
        "actualProductId": "94409105",
        "videos": [],
        "language": null,
        "title": "Just Buy It Already",
        "photos": [],
        "content": "This is the best robot vacuum I’ve ever used! We tried a few of the popular brands and they all broke within a month. I get it. We’re hard on vacuums with ou...",
        "createdAt": "2026-09-27T01:20:00.000+00:00",
        "actualProductUrl": null,
        "purchased": true,
        "native": {
          "is_syndicated": false,
          "reviewer_attributes": [],
          "ClientResponseCount": 0,
          "submitted_at": "2026-09-27T01:20:00.000+00:00",
          "is_incentivized": false,
          "Rating": 5,
          "channel": "TARGET",
          "external_id": "42674445-68a6-5693-a61c-2e623dc2d70d",
          "videos": [],
          "SourceClient": "targetcom",
          "title": "Just Buy It Already",
          "photos": [],
          "feedback": {
            "inappropriate": 0,
            "helpful": 0,
            "unhelpful": 0
          },
          "Tcin": "94409105",
          "RatingRange": 5,
          "SecondaryRatingsOrder": [],
          "id": "aad5281c-747e-48fb-a5ef-7fadf07da9b4",
          "text": "This is the best robot vacuum I’ve ever used! We tried a few of the popular brands and they all broke within a month. I get it. We’re hard on vacuums with ou...",
          "ClientResponses": [],
          "modified_at": "2026-09-29T10:33:40.000+00:00",
          "IsRatingsOnly": false,
          "BadgesOrder": [
            "verifiedPurchaser"
          ],
          "author": {
            "nickname": "breanne",
            "external_id": "20014215788"
          },
          "is_verified": true,
          "Entities": [],
          "tags": [],
          "SecondaryRatings": {},
          "is_recommended": true,
          "Badges": {
            "verifiedPurchaser": {
              "ContentType": "REVIEW",
              "Id": "verifiedPurchaser",
              "BadgeType": "Custom"
            }
          },
          "status": "APPROVED"
        },
        "reviewId": "aad5281c-747e-48fb-a5ef-7fadf07da9b4"
      }
    ],
    "statistics": {
      "metadata": {
        "has_videos": true,
        "has_photos": true,
        "has_verified": true,
        "has_entities": true
      },
      "statistics": {
        "question_count": 29,
        "not_recommended_count": 2,
        "reviews_with_videos_count": 3,
        "recommended_percentage": 87,
        "rating": {
          "average": 4.47,
          "secondary_averages": [],
          "count": 64,
          "positive_percentage": 89,
          "distribution": {
            "1": 5,
            "2": 2,
            "3": 3,
            "4": 2,
            "5": 52
          }
        },
        "review_count": 35,
        "recommended_count": 14,
        "reviews_with_images_count": 8,
        "calculated_at": "2026-10-23T03:23:23.112Z",
        "incentivized_count": 0
      }
    }
  },
  "message": "ok"
}

积点消耗说明

每条评论消耗0.8积点,同一响应内按唯一评论计费。

每次成功请求独立计费,命中缓存也按返回主体收费;失败及空列表不扣费,以 pointCost 为准。