Shopify Loox Reviews Scraper API
Pricing
from $1.50 / 1,000 reviews
Shopify Loox Reviews Scraper API
Scrape Loox reviews from Shopify product URLs or scan store sitemaps for product ratings and review counts.
Shopify Loox Reviews Scraper API
Pricing
from $1.50 / 1,000 reviews
Scrape Loox reviews from Shopify product URLs or scan store sitemaps for product ratings and review counts.
You can access the Shopify Loox Reviews Scraper API programmatically from your own applications by using the Apify API. You can also choose the language preference from below. To use the Apify API, youโll need an Apify account and your API token, found in API & Integrations in Apify Console.
{ "openapi": "3.0.1", "info": { "version": "0.0", "x-build-id": "yvyh9UMkLmRDc3YfR" }, "servers": [ { "url": "https://api.apify.com/v2" } ], "paths": { "/acts/lurkapi~shopify-loox-reviews-scraper-api/run-sync-get-dataset-items": { "post": { "operationId": "run-sync-get-dataset-items-lurkapi-shopify-loox-reviews-scraper-api", "x-openai-isConsequential": false, "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.", "tags": [ "Run Actor" ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/inputSchema" } } } }, "parameters": [ { "name": "token", "in": "query", "required": true, "schema": { "type": "string" }, "description": "Enter your Apify token here" } ], "responses": { "200": { "description": "OK" } } } }, "/acts/lurkapi~shopify-loox-reviews-scraper-api/runs": { "post": { "operationId": "runs-sync-lurkapi-shopify-loox-reviews-scraper-api", "x-openai-isConsequential": false, "summary": "Executes an Actor and returns information about the initiated run in response.", "tags": [ "Run Actor" ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/inputSchema" } } } }, "parameters": [ { "name": "token", "in": "query", "required": true, "schema": { "type": "string" }, "description": "Enter your Apify token here" } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/runsResponseSchema" } } } } } } }, "/acts/lurkapi~shopify-loox-reviews-scraper-api/run-sync": { "post": { "operationId": "run-sync-lurkapi-shopify-loox-reviews-scraper-api", "x-openai-isConsequential": false, "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.", "tags": [ "Run Actor" ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/inputSchema" } } } }, "parameters": [ { "name": "token", "in": "query", "required": true, "schema": { "type": "string" }, "description": "Enter your Apify token here" } ], "responses": { "200": { "description": "OK" } } } } }, "components": { "schemas": { "inputSchema": { "type": "object", "required": [ "startUrls" ], "properties": { "startUrls": { "title": "Store or product URLs", "maxItems": 1000, "type": "array", "description": "Paste a Shopify store URL to get one summary row per public product, a product URL to get that product's Loox reviews, or another public storefront page containing a Loox product widget. All forms can be mixed in one run.", "items": { "type": "string", "maxLength": 2048 } }, "maxResultsPerUrl": { "title": "Maximum results per URL", "minimum": 1, "maximum": 50000, "type": "integer", "description": "Cap on rows returned for each input URL. Store URLs return product summaries; product-widget pages return individual reviews; other storefront pages fall back to store summaries.", "default": 50 }, "filterRatings": { "title": "Star ratings", "uniqueItems": true, "type": "array", "description": "Only keep reviews with the star ratings you pick. Leave empty to include every rating. Free with the base row price.", "items": { "type": "string", "enum": [ "1", "2", "3", "4", "5" ], "enumTitles": [ "1 star", "2 stars", "3 stars", "4 stars", "5 stars" ] } }, "sortBy": { "title": "Sort reviews by", "enum": [ "featured", "newest", "highest_rating", "lowest_rating", "oldest", "pictures_first", "videos_first" ], "type": "string", "description": "Loox's built-in orders (featured, newest, highest rating, lowest rating) are free. Oldest, pictures first, and videos first are custom sorts computed by the actor and count as add-ons.", "default": "featured" }, "filterKeyword": { "title": "Search review text ($)", "maxLength": 500, "type": "string", "description": "Only keep reviews whose title or body contains this phrase. Charged only on matching rows that are delivered." }, "verifiedOnly": { "title": "Only verified buyers ($)", "type": "boolean", "description": "Only keep reviews Loox marks as verified purchases.", "default": false }, "onlyWithMedia": { "title": "Only reviews with media ($)", "type": "boolean", "description": "Only keep reviews that include at least one photo or video.", "default": false }, "onlyWithPhotos": { "title": "Only reviews with photos ($)", "type": "boolean", "description": "Only keep reviews that include at least one customer photo.", "default": false }, "onlyWithVideos": { "title": "Only reviews with videos ($)", "type": "boolean", "description": "Only keep reviews that include a customer video.", "default": false }, "merchantReplyOnly": { "title": "Only reviews with store replies ($)", "type": "boolean", "description": "Only keep reviews where the store owner replied publicly.", "default": false }, "filterStartDate": { "title": "Published on or after ($)", "type": "string", "description": "Only keep reviews posted on or after this date (YYYY-MM-DD, inclusive). Reviews without a public date are excluded. Some Loox stores hide dates in their public widget." }, "filterEndDate": { "title": "Published on or before ($)", "type": "string", "description": "Only keep reviews posted on or before this date (YYYY-MM-DD, inclusive). Reviews without a public date are excluded." }, "reviewContent": { "title": "Written vs. rating-only ($)", "enum": [ "all", "with_text", "rating_only" ], "type": "string", "description": "Keep every review, only reviews that have written text, or only star-ratings without text.", "default": "all" }, "filterLanguages": { "title": "Review languages ($)", "maxItems": 50, "type": "array", "description": "Only keep reviews in these languages. Use ISO codes such as en, eng, es, spa, or pt-BR. Region tags (pt-BR, en-US) match the base language too.", "items": { "type": "string", "maxLength": 16 } }, "detectLanguage": { "title": "Detect review language ($)", "type": "boolean", "description": "When Loox does not return a language for a review, the actor detects one and adds a detectedLanguage field. Charged only when detection succeeds.", "default": false }, "translateReviews": { "title": "Translate reviews ($)", "type": "boolean", "description": "First tries the free translation the Loox widget already offers. If the widget cannot serve one, a paid fallback translator is used. You are only charged when the fallback runs and succeeds.", "default": false }, "translationTarget": { "title": "Translate into", "maxLength": 16, "type": "string", "description": "Target language for translations. Use a code such as en, es, fr, de, ja, or pt-BR.", "default": "en" }, "downloadMedia": { "title": "Archive review media ($)", "type": "boolean", "description": "Save up to 10 verified photos or videos per review (max 3 MB each) to the run's key-value store. Original source URLs stay in the row either way. Charged per file successfully stored.", "default": false }, "outputStoreDomain": { "title": "Store domain", "type": "boolean", "description": "Normalized store host, for example your-store.com.", "default": true }, "outputStoreUrl": { "title": "Store URL", "type": "boolean", "description": "Full canonical URL of the store's home page.", "default": true }, "outputProductHandle": { "title": "Product handle", "type": "boolean", "description": "The URL slug Shopify uses in product paths.", "default": true }, "outputProductTitle": { "title": "Product title", "type": "boolean", "description": "Public product name.", "default": true }, "outputProductUrl": { "title": "Product URL", "type": "boolean", "description": "Canonical link to the product page.", "default": true }, "outputProductImageUrl": { "title": "Product image", "type": "boolean", "description": "URL of the primary product image.", "default": true }, "outputProductDescription": { "title": "Product description", "type": "boolean", "description": "Plain-text product description (product-summary rows only).", "default": true }, "outputPrice": { "title": "Product price", "type": "boolean", "description": "Public price shown on the storefront.", "default": true }, "outputCurrency": { "title": "Currency", "type": "boolean", "description": "Storefront currency code, when it can be detected.", "default": true }, "outputAvailable": { "title": "Availability", "type": "boolean", "description": "Whether the product is publicly for sale.", "default": true }, "outputAverageRating": { "title": "Average rating", "type": "boolean", "description": "Loox's product-level average rating.", "default": true }, "outputReviewCount": { "title": "Review count", "type": "boolean", "description": "Total number of Loox reviews on the product.", "default": true }, "outputRatingHistogram": { "title": "Rating histogram", "type": "boolean", "description": "Review counts broken down by star rating, when the widget exposes them.", "default": true }, "outputReviewerName": { "title": "Reviewer name", "type": "boolean", "description": "Public reviewer display name Loox shows (usually first name and last initial).", "default": true }, "outputPublishedAt": { "title": "Review date", "type": "boolean", "description": "Timestamp when the review was posted, when the widget exposes it.", "default": true }, "outputVerifiedBuyer": { "title": "Verified buyer flag", "type": "boolean", "description": "Loox's verified-purchase flag on each review.", "default": true }, "outputReply": { "title": "Merchant reply", "type": "boolean", "description": "Public reply the merchant posted to the review.", "default": true }, "outputMediaUrls": { "title": "Media URLs", "type": "boolean", "description": "Source URLs for customer photos and videos on each review.", "default": true }, "outputOriginalLanguage": { "title": "Original language", "type": "boolean", "description": "Language code Loox reports for the review.", "default": true }, "outputInputUrl": { "title": "Input URL", "type": "boolean", "description": "The URL from your input that produced this row. Useful for grouping results.", "default": true } } }, "runsResponseSchema": { "type": "object", "properties": { "data": { "type": "object", "properties": { "id": { "type": "string" }, "actId": { "type": "string" }, "userId": { "type": "string" }, "startedAt": { "type": "string", "format": "date-time", "example": "2025-01-08T00:00:00.000Z" }, "finishedAt": { "type": "string", "format": "date-time", "example": "2025-01-08T00:00:00.000Z" }, "status": { "type": "string", "example": "READY" }, "meta": { "type": "object", "properties": { "origin": { "type": "string", "example": "API" }, "userAgent": { "type": "string" } } }, "stats": { "type": "object", "properties": { "inputBodyLen": { "type": "integer", "example": 2000 }, "rebootCount": { "type": "integer", "example": 0 }, "restartCount": { "type": "integer", "example": 0 }, "resurrectCount": { "type": "integer", "example": 0 }, "computeUnits": { "type": "integer", "example": 0 } } }, "options": { "type": "object", "properties": { "build": { "type": "string", "example": "latest" }, "timeoutSecs": { "type": "integer", "example": 300 }, "memoryMbytes": { "type": "integer", "example": 1024 }, "diskMbytes": { "type": "integer", "example": 2048 } } }, "buildId": { "type": "string" }, "defaultKeyValueStoreId": { "type": "string" }, "defaultDatasetId": { "type": "string" }, "defaultRequestQueueId": { "type": "string" }, "buildNumber": { "type": "string", "example": "1.0.0" }, "containerUrl": { "type": "string" }, "usage": { "type": "object", "properties": { "ACTOR_COMPUTE_UNITS": { "type": "integer", "example": 0 }, "DATASET_READS": { "type": "integer", "example": 0 }, "DATASET_WRITES": { "type": "integer", "example": 0 }, "KEY_VALUE_STORE_READS": { "type": "integer", "example": 0 }, "KEY_VALUE_STORE_WRITES": { "type": "integer", "example": 1 }, "KEY_VALUE_STORE_LISTS": { "type": "integer", "example": 0 }, "REQUEST_QUEUE_READS": { "type": "integer", "example": 0 }, "REQUEST_QUEUE_WRITES": { "type": "integer", "example": 0 }, "DATA_TRANSFER_INTERNAL_GBYTES": { "type": "integer", "example": 0 }, "DATA_TRANSFER_EXTERNAL_GBYTES": { "type": "integer", "example": 0 }, "PROXY_RESIDENTIAL_TRANSFER_GBYTES": { "type": "integer", "example": 0 }, "PROXY_SERPS": { "type": "integer", "example": 0 }, "PROXY_UNBLOCKER_UNITS": { "type": "integer", "example": 0 } } }, "usageTotalUsd": { "type": "number", "example": 0.00005 }, "usageUsd": { "type": "object", "properties": { "ACTOR_COMPUTE_UNITS": { "type": "integer", "example": 0 }, "DATASET_READS": { "type": "integer", "example": 0 }, "DATASET_WRITES": { "type": "integer", "example": 0 }, "KEY_VALUE_STORE_READS": { "type": "integer", "example": 0 }, "KEY_VALUE_STORE_WRITES": { "type": "number", "example": 0.00005 }, "KEY_VALUE_STORE_LISTS": { "type": "integer", "example": 0 }, "REQUEST_QUEUE_READS": { "type": "integer", "example": 0 }, "REQUEST_QUEUE_WRITES": { "type": "integer", "example": 0 }, "DATA_TRANSFER_INTERNAL_GBYTES": { "type": "integer", "example": 0 }, "DATA_TRANSFER_EXTERNAL_GBYTES": { "type": "integer", "example": 0 }, "PROXY_RESIDENTIAL_TRANSFER_GBYTES": { "type": "integer", "example": 0 }, "PROXY_SERPS": { "type": "integer", "example": 0 }, "PROXY_UNBLOCKER_UNITS": { "type": "integer", "example": 0 } } } } } } } } }}OpenAPI is a standard for designing and describing RESTful APIs, allowing developers to define API structure, endpoints, and data formats in a machine-readable way. It simplifies API development, integration, and documentation.
OpenAPI is effective when used with AI agents and GPTs by standardizing how these systems interact with various APIs, for reliable integrations and efficient communication.
By defining machine-readable API specifications, OpenAPI allows AI models like GPTs to understand and use varied data sources, improving accuracy. This accelerates development, reduces errors, and provides context-aware responses, making OpenAPI a core component for AI applications.
You can download the OpenAPI definitions for Shopify Loox Reviews Scraper API from the options below:
If youโd like to learn more about how OpenAPI powers GPTs, read our blog post.
You can also check out our other API clients: