Shopify Ryviu Reviews Scraper API
Pricing
from $1.50 / 1,000 reviews
Shopify Ryviu Reviews Scraper API
Scrape Ryviu reviews from Shopify product URLs, or scan a store sitemap for product ratings and review counts.
Shopify Ryviu Reviews Scraper API
Pricing
from $1.50 / 1,000 reviews
Scrape Ryviu reviews from Shopify product URLs, or scan a store sitemap for product ratings and review counts.
You can access the Shopify Ryviu 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 Integrations settings in Apify Console.
{ "openapi": "3.0.1", "info": { "version": "0.0", "x-build-id": "9niFcuLqaqnKFsqp3" }, "servers": [ { "url": "https://api.apify.com/v2" } ], "paths": { "/acts/lurkapi~shopify-ryviu-reviews-scraper-api/run-sync-get-dataset-items": { "post": { "operationId": "run-sync-get-dataset-items-lurkapi-shopify-ryviu-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-ryviu-reviews-scraper-api/runs": { "post": { "operationId": "runs-sync-lurkapi-shopify-ryviu-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-ryviu-reviews-scraper-api/run-sync": { "post": { "operationId": "run-sync-lurkapi-shopify-ryviu-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": "A store URL returns one product summary per public product, including products with zero reviews. A product URL or storefront page containing one product's Ryviu widget returns individual reviews. Store, product, and landing-page URLs 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. A store URL returns up to this many product summaries; a product or landing-page URL returns up to this many individual reviews.", "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" ] }, "default": [] }, "sortBy": { "title": "Sort reviews by", "enum": [ "newest", "oldest", "highest_rating", "lowest_rating", "most_helpful", "photos_first" ], "type": "string", "description": "Newest and oldest use Ryviu's native order and are included in the base row price. Rating, helpfulness, and photo-first orders are custom paid enhancements.", "default": "newest" }, "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." }, "onlyWithMedia": { "title": "Only reviews with media", "type": "boolean", "description": "Only keep reviews with at least one public photo or video. This uses Ryviu's native filter and is free with the base row price.", "default": false }, "onlyWithPhotos": { "title": "Only reviews with photos ($)", "type": "boolean", "description": "Only keep reviews containing at least one photo. Charged as an advanced filter on each delivered review.", "default": false }, "onlyWithVideos": { "title": "Only reviews with videos ($)", "type": "boolean", "description": "Only keep reviews containing at least one video. Charged as an advanced filter on each delivered review.", "default": false }, "merchantReplyOnly": { "title": "Only reviews with store replies ($)", "type": "boolean", "description": "Only keep reviews with a publicly available store reply. Charged as an advanced filter on each delivered review.", "default": false }, "featuredOnly": { "title": "Only featured reviews ($)", "type": "boolean", "description": "Only keep reviews Ryviu marks as featured. Charged as an advanced filter on each delivered review.", "default": false }, "filterStartDate": { "title": "Published on or after ($)", "pattern": "^\\d{4}-\\d{2}-\\d{2}$", "type": "string", "description": "Only keep reviews published on or after this date (YYYY-MM-DD, inclusive). Reviews without a date are excluded." }, "filterEndDate": { "title": "Published on or before ($)", "pattern": "^\\d{4}-\\d{2}-\\d{2}$", "type": "string", "description": "Only keep reviews published on or before this date (YYYY-MM-DD, inclusive). Reviews without a 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 such as pt-BR and en-US match the base language too. Language detection is also charged when it succeeds.", "items": { "type": "string", "pattern": "^[A-Za-z]{2,3}(?:-[A-Za-z]{2,4})?$" }, "default": [] }, "minContentLength": { "title": "Minimum review length ($)", "minimum": 0, "maximum": 100000, "type": "integer", "description": "Only keep reviews whose body contains at least this many characters." }, "filterCountries": { "title": "Reviewer countries ($)", "maxItems": 50, "type": "array", "description": "Only keep reviews from these ISO 3166-1 alpha-2 country codes, such as US, GB, or AU.", "items": { "type": "string", "pattern": "^[A-Za-z]{2}$" }, "default": [] }, "detectLanguage": { "title": "Detect review language ($)", "type": "boolean", "description": "Add a detectedLanguage field when enough review text is available. Charged only when detection succeeds.", "default": false }, "translateReviews": { "title": "Translate reviews ($)", "type": "boolean", "description": "Translate review titles and bodies into the selected target language. Charged only when translation succeeds.", "default": false }, "translationTarget": { "title": "Translate into", "maxLength": 16, "type": "string", "description": "Language code for translated review text, such as en, es, 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 aquasonic.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 }, "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": "Ryviu's product-level average rating.", "default": true }, "outputReviewCount": { "title": "Review count", "type": "boolean", "description": "Total number of Ryviu reviews on the product.", "default": true }, "outputRatingHistogram": { "title": "Rating histogram", "type": "boolean", "description": "Review counts broken down by star rating.", "default": true }, "outputPlanLimit": { "title": "Public review limit", "type": "boolean", "description": "The number of reviews Ryviu currently allows the public widget to retrieve, and whether that is below the reported total.", "default": true }, "outputStoreCounts": { "title": "Store media and reply counts", "type": "boolean", "description": "Store-level counts of reviews with media and public store replies.", "default": true }, "outputReviewTitle": { "title": "Review title", "type": "boolean", "description": "Public review title.", "default": true }, "outputPublishedAt": { "title": "Review date", "type": "boolean", "description": "Timestamp when the review was posted.", "default": true }, "outputReviewerName": { "title": "Reviewer name", "type": "boolean", "description": "Public display name Ryviu shows for the reviewer.", "default": true }, "outputReviewerCountry": { "title": "Reviewer country", "type": "boolean", "description": "Public reviewer country name and country code, when Ryviu exposes them.", "default": true }, "outputFeatured": { "title": "Featured flag", "type": "boolean", "description": "Whether Ryviu marks the review as featured.", "default": true }, "outputHelpfulVotes": { "title": "Helpful votes", "type": "boolean", "description": "Public like and dislike counts.", "default": true }, "outputReply": { "title": "Store reply", "type": "boolean", "description": "Public store reply when its Ryviu response shape is available.", "default": true }, "outputMediaUrls": { "title": "Media URLs", "type": "boolean", "description": "Source URLs for customer photos and videos on each review.", "default": true }, "outputLanguage": { "title": "Detected language", "type": "boolean", "description": "Detected language code when language detection succeeds.", "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 } } }, "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 } } } } } } } } }}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 Ryviu 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: