API Description

Costco Reviews API Collect Costco product reviews, ratings, publication dates and images.

Request URL

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

Request Headers

ParametersParameter valueTypeDescription
Content-Typeapplication/jsonstringData format
AuthorizationBearer xxxstringAuthorization Token

Collection timeout: 90 seconds. Allow at least 105 seconds in your client.

Request Parameters

ParameterRequiredTypeDescription
countryYesstringStorefront country code.
Values: [“CA”, “US”]
productIdNostringProduct ID as a string; supply productId or productUrl.
productUrlNostringProduct URL on a configured storefront; alternative to productId.
Maximum length: 2048
pageNointegerPages start at 1. Continue with data.pagination.nextPage.
Default: 1
Minimum: 1
Maximum: 300001
pageSizeNointegerSee site table for defaults and limits; omit to use storefront default.
Minimum: 1
Maximum: 100
includeNativeNobooleanDefaults to true; includes original platform fields.
allowStaleNobooleanDefaults to false; true permits stale cache on failure, identified in meta.
refreshNobooleanDefaults to false; true bypasses fresh cache.

Supply at least one of productId or productUrl. Product IDs must be strings.

Supported Storefronts

CountryDefault page sizeMaximum page size
US20100
CA20100

Reviews are returned in newest order.

Response Fields

FieldTypeDescription
codeintegerStatus code; 0 indicates success.
messagestringResponse message; ok on success.
pointCostnumberPoints charged for the complete response.
dataobject | nullCollected data, described below.

data Fields

FieldTypeDescription
countrystringStorefront country, not the review author’s country.
paginationobjectPagination details; continue using nextPage.
productIdstringProduct ID, returned as a string.
queryobjectEffective search parameters.
warningsstring[]Collection scope and data interpretation notes.
storestringstore
totalsobjectReported totals and returned counts, which may use different count semantics.
platformstringPlatform identifier.
sourceUrlstringsourceUrl
providerstringprovider
metaobjectCollection status and cache metadata.
schemaFingerprintstringschemaFingerprint
capturedAtstringCollection timestamp.
productSummaryobjectAggregate product rating and star distribution.
resultsobject[]Primary records returned by this request.
statisticsobjectstatistics

data.pagination Fields

FieldTypeDescription
nextPageintegerNext page number; null indicates the end.
totalPagesintegerTotal pages; null when unknown.
pageSizeintegerRecords per page.
hasNextbooleanWhether another page is available.
pageintegerCurrent page number.

data.totals Fields

FieldTypeDescription
queryintegerEffective search parameters.
reportedintegerreported
returnedintegerreturned
withTextintegerwithText

data.meta Fields

FieldTypeDescription
cachestringcache
stalebooleanstale
ageSecondsintegerageSeconds
operationIdstringoperationId
upstreamAttemptsintegerupstreamAttempts
coalescedbooleancoalesced

data.productSummary Fields

FieldTypeDescription
withTextCountnullText review count; null when unavailable.
reviewCountnullReview count; null when unavailable.
averageRatingnumberAggregate average rating.
scopestringScope covered by the aggregate.
warningsany[]Collection scope and data interpretation notes.
sourcestringSource of the aggregate statistics.
totalCountintegerPlatform total, interpreted using countKind.
countKindstringCount semantics, distinguishing all ratings from text reviews.
starDistributionobjectCounts for ratings from 1 to 5 stars.

data.productSummary.starDistribution Fields

FieldTypeDescription
1integer1
2integer2
3integer3
4integer4
5integer5

data.results[] Fields

FieldTypeDescription
reviewIdstringUnique review identifier.
contentstringBody text in the original language.
titlestring | nullReview or post title; null when unavailable.
authorstring | nullAuthor name.
starstring | nullReview rating as a string, e.g. 5.0.
datestring | nullReview date reported by the platform.
createdAtstring | nullFull publication timestamp; null when unavailable.
purchasedboolean | nullVerified purchase status; null when unknown.
imgsstring[]Image URL array.
photosany[]Original image objects, including available sizes.
videosany[]Video array.
nativeobjectOriginal platform fields, controlled by includeNative.

data.statistics Fields

FieldTypeDescription
includesobjectincludes

data.statistics.includes Fields

FieldTypeDescription
ProductsobjectProducts
ProductsOrderstring[]ProductsOrder

imgs supports Best Buy CA imageUrl and Judge.me original. photos retains original image objects and sizes. Unavailable ratings and dates remain null.

Continue using data.pagination.nextPage until null. Deduplicate reviews across pages using reviewId.

Errors retain the response envelope and data.error. Codes: invalid parameters 1002, rate limit 4029, busy 5001, collection failure 9200. HTTP 503 cooldown responses retain Retry-After.

Request Example

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

Response Example

This excerpt retains the first list item and shortens long text and URLs. pointCost is the charge for the complete response.

{
  "code": 0,
  "pointCost": 16.0,
  "data": {
    "country": "US",
    "pagination": {
      "nextPage": 2,
      "totalPages": 24,
      "pageSize": 20,
      "hasNext": true,
      "page": 1
    },
    "productId": "4201020136",
    "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": 480,
      "reported": 480,
      "returned": 20,
      "withText": 15
    },
    "platform": "costco",
    "sourceUrl": "https://www.costco.com/p/-/roborock-qx-revo-ultra-2-robot-vacuum-and-mop-with-25000-pa-suction/4201020136",
    "provider": "bazaarvoice",
    "meta": {
      "cache": "miss",
      "stale": false,
      "ageSeconds": 0,
      "operationId": "82a12633-3d8d-4731-8e79-fa178350ed57",
      "upstreamAttempts": 1,
      "coalesced": false
    },
    "schemaFingerprint": "d1f23336be47f63b0edbdbb1b2bf8cb512fbef1df5dbd4b968dba46671eaa321",
    "capturedAt": "2026-11-07T11:49:27.724Z",
    "productSummary": {
      "withTextCount": null,
      "reviewCount": null,
      "averageRating": 4.508333333333334,
      "scope": "upstream_product_or_review_group",
      "warnings": [],
      "source": "Bazaarvoice Includes.Products[upstreamProductId].ReviewStatistics",
      "totalCount": 480,
      "countKind": "reviews_including_ratings_only",
      "starDistribution": {
        "1": 27,
        "2": 15,
        "3": 16,
        "4": 51,
        "5": 371
      }
    },
    "results": [
      {
        "date": "2026-11-06",
        "imgs": [],
        "merchantResponses": [],
        "syndication": {
          "isSyndicated": false
        },
        "star": "1.0",
        "author": "Gwen S",
        "actualProductId": "4201020136",
        "videos": [],
        "language": "en_US",
        "title": null,
        "photos": [],
        "content": "I purchased this product as it was rated very high I think I just got a lemon there were several things that were weird about it it would return to the dock ...",
        "createdAt": "2026-11-06T16:32:23.000+00:00",
        "actualProductUrl": null,
        "purchased": true,
        "native": {
          "TotalClientResponseCount": 0,
          "InappropriateFeedbackList": [],
          "UserNickname": "Gwen S",
          "Rating": 1,
          "ReviewText": "I purchased this product as it was rated very high I think I just got a lemon there were several things that were weird about it it would return to the dock ...",
          "ContextDataValues": {},
          "ProductId": "4201020136",
          "SourceClient": "costco",
          "Videos": [],
          "CommentIds": [],
          "Photos": [],
          "TotalNegativeFeedbackCount": 0,
          "RatingRange": 5,
          "CampaignId": "BV_PIE_FOLLOWUP_MPR",
          "SecondaryRatingsOrder": [],
          "UserLocation": null,
          "TotalCommentCount": 0,
          "ContextDataValuesOrder": [],
          "TagDimensionsOrder": [],
          "ClientResponses": [],
          "TotalPositiveFeedbackCount": 0,
          "CID": "ff94add2-924b-56ec-a6c2-9f6693b9e0f8",
          "IsRatingsOnly": false,
          "LastModificationTime": "2026-11-06T16:45:16.000+00:00",
          "Pros": null,
          "ProductRecommendationIds": [],
          "BadgesOrder": [
            "verifiedPurchaser"
          ],
          "AuthorId": "92ff3b46-ac31-4db0-8e6a-9e0164a544da",
          "Helpfulness": null,
          "SubmissionTime": "2026-11-06T16:32:23.000+00:00",
          "AdditionalFields": {},
          "TotalFeedbackCount": 0,
          "AdditionalFieldsOrder": [],
          "Title": null,
          "ModerationStatus": "APPROVED",
          "OriginalProductName": "Roborock QX Revo Ultra 2 Robot Vacuum and Mop with 25,000 Pa Suction",
          "IsFeatured": false,
          "TotalInappropriateFeedbackCount": 0,
          "Cons": null,
          "TagDimensions": {},
          "SecondaryRatings": {},
          "Badges": {
            "verifiedPurchaser": {
              "ContentType": "REVIEW",
              "Id": "verifiedPurchaser",
              "BadgeType": "Custom"
            }
          },
          "SubmissionId": "r12070-en__17939827Mh3X0TF1x8",
          "IsSyndicated": false,
          "IsRecommended": true,
          "LastModeratedTime": "2026-11-06T16:45:16.000+00:00",
          "Id": "273732497",
          "ContentLocale": "en_US"
        },
        "reviewId": "273732497"
      }
    ],
    "statistics": {
      "includes": {
        "Products": {
          "4201020136": {
            "CategoryId": "30809",
            "EANs": [],
            "ModelNumbers": [
              "2064561"
            ],
            "Description": "<div><strong>Warranty:</strong></div><ul><li>2-Year Warranty</li></ul><div>​</div><div><strong>For product related questions please contact Roborock&nbsp;</s...",
            "Attributes": {
              "AVAILABILITY": {
                "Values": [
                  {
                    "Locale": null,
                    "Value": "True"
                  }
                ],
                "Id": "AVAILABILITY"
              }
            },
            "ImageUrl": "https://gdx-assets.costco.com/adobe/assets/urn:aaid:aem:489fd6f3-6823-451e-8141-0299e4dc33eb/as/4201020136-847__1.avif?width=700&height=700&fit=contain",
            "BrandExternalId": "60tggeijwpplwg5eqnk8mkiek",
            "UPCs": [],
            "ReviewStatistics": {
              "FeaturedReviewCount": 0,
              "RecommendedCount": 271,
              "SecondaryRatingsAveragesOrder": [],
              "IntelligentTrustMarkDisplayEligible": true,
              "NotHelpfulVoteCount": 661,
              "AverageOverallRating": 4.508333333333334,
              "RatingDistribution": [
                {
                  "RatingValue": 5,
                  "Count": 371
                }
              ],
              "RatingsOnlyReviewCount": 183,
              "FirstSubmissionTime": "2026-06-18T22:58:47.000+00:00",
              "TagDistribution": {},
              "ContextDataDistribution": {},
              "TotalReviewCount": 480,
              "LastSubmissionTime": "2026-11-06T16:32:23.000+00:00",
              "TotalVideoCount": 0,
              "TotalPhotoCount": 59,
              "TagDistributionOrder": [],
              "TotalMediaCount": 59,
              "OverallRatingRange": 5,
              "HelpfulVoteCount": 1041,
              "NotRecommendedCount": 40,
              "ContextDataDistributionOrder": [],
              "SecondaryRatingsAverages": {}
            },
            "Name": "Roborock QX Revo Ultra 2 Robot Vacuum and Mop with 25,000 Pa Suction",
            "Brand": {
              "Id": "60tggeijwpplwg5eqnk8mkiek",
              "Name": "Roborock"
            },
            "QuestionIds": [],
            "TotalReviewCount": 480,
            "Active": true,
            "FamilyIds": [],
            "ReviewIds": [],
            "ProductPageUrl": "http://www.costco.com//.product.4201020136.html",
            "ISBNs": [],
            "Id": "4201020136",
            "Disabled": false,
            "AttributesOrder": [
              "AVAILABILITY"
            ],
            "ManufacturerPartNumbers": [
              "QX Revo Ultra 2"
            ],
            "StoryIds": []
          }
        },
        "ProductsOrder": [
          "4201020136"
        ]
      }
    }
  },
  "message": "ok"
}

Points Usage

0.8 points per unique review within the response.

Each successful call is billed independently, including cached responses. Errors and empty lists cost zero; pointCost reports the charge.