{
  "openapi": "3.0.1",
  "info": {
    "title": "Shopify Ali Reviews Scraper API",
    "description": "Scrape Ali Reviews, product Q&A, AI review summaries, and product ratings from Shopify stores.",
    "version": "0.0",
    "x-build-id": "Bsmxqiy8zcgXfRdsC"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/lurkapi~shopify-ali-reviews-scraper-api/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-lurkapi-shopify-ali-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-ali-reviews-scraper-api/runs": {
      "post": {
        "operationId": "runs-sync-lurkapi-shopify-ali-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-ali-reviews-scraper-api/run-sync": {
      "post": {
        "operationId": "run-sync-lurkapi-shopify-ali-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 Shopify store URLs for store-wide reviews or product URLs for individual product reviews. Custom domains are supported.",
            "items": {
              "type": "string",
              "maxLength": 2048
            }
          },
          "maxResultsPerUrl": {
            "title": "Maximum results per URL",
            "minimum": 1,
            "maximum": 50000,
            "type": "integer",
            "description": "Maximum review rows for each input URL. Product questions use the same separate per-input cap.",
            "default": 50
          },
          "filterRatings": {
            "title": "Star ratings",
            "uniqueItems": true,
            "type": "array",
            "description": "Only return reviews with selected ratings. This is a free filter.",
            "items": {
              "type": "string",
              "enum": [
                "1",
                "2",
                "3",
                "4",
                "5"
              ],
              "enumTitles": [
                "1 star",
                "2 stars",
                "3 stars",
                "4 stars",
                "5 stars"
              ]
            }
          },
          "filterKeyword": {
            "title": "Search review text",
            "maxLength": 500,
            "type": "string",
            "description": "Return reviews matching this phrase. This is a free search."
          },
          "sortBy": {
            "title": "Sort reviews by",
            "enum": [
              "featured",
              "newest",
              "oldest",
              "highestRating",
              "lowestRating",
              "mostHelpful",
              "withMedia",
              "byContent"
            ],
            "type": "string",
            "description": "Choose the storefront's review order. Featured reviews may remain pinned at the beginning.",
            "default": "featured"
          },
          "onlyWithMedia": {
            "title": "Only reviews with media ($)",
            "type": "boolean",
            "description": "Only return reviews containing a photo or video. Charged only on delivered matching rows.",
            "default": false
          },
          "onlyWithPhotos": {
            "title": "Only reviews with photos ($)",
            "type": "boolean",
            "description": "Only return reviews containing at least one photo.",
            "default": false
          },
          "onlyWithVideos": {
            "title": "Only reviews with videos ($)",
            "type": "boolean",
            "description": "Only return reviews containing at least one video.",
            "default": false
          },
          "merchantReplyOnly": {
            "title": "Only reviews with merchant replies ($)",
            "type": "boolean",
            "description": "Only return reviews marked as having a public merchant reply.",
            "default": false
          },
          "filterStartDate": {
            "title": "Published on or after ($)",
            "type": "string",
            "description": "Only return reviews published on or after this date, inclusive."
          },
          "filterEndDate": {
            "title": "Published on or before ($)",
            "type": "string",
            "description": "Only return reviews published on or before this date, inclusive."
          },
          "reviewContent": {
            "title": "Written or rating-only ($)",
            "enum": [
              "all",
              "written",
              "ratingOnly"
            ],
            "type": "string",
            "description": "Return every review, only written reviews, or only rating-only reviews.",
            "default": "all"
          },
          "filterCountries": {
            "title": "Reviewer countries ($)",
            "maxItems": 250,
            "type": "array",
            "description": "Only return reviews from these ISO-2 country codes, such as US, GB, or BR.",
            "items": {
              "type": "string",
              "maxLength": 2
            }
          },
          "filterSource": {
            "title": "Review source ($)",
            "enum": [
              "all",
              "imported",
              "native"
            ],
            "type": "string",
            "description": "Return all reviews, imported marketplace reviews, or store-collected reviews.",
            "default": "all"
          },
          "filterLanguages": {
            "title": "Review languages ($)",
            "maxItems": 50,
            "type": "array",
            "description": "Only return reviews detected in these ISO language codes, such as en, es, or pt-BR.",
            "items": {
              "type": "string",
              "maxLength": 16
            }
          },
          "detectLanguage": {
            "title": "Detect review language ($)",
            "type": "boolean",
            "description": "Detect the language of each delivered written review.",
            "default": false
          },
          "translateReviews": {
            "title": "Translate reviews ($)",
            "type": "boolean",
            "description": "Add a translation to each delivered review. The store's own published translation is used first and is free. Paid translation runs only when the store has none, and is charged only when it actually returns translated text.",
            "default": false
          },
          "translationTarget": {
            "title": "Translate into",
            "maxLength": 16,
            "type": "string",
            "description": "Target language code 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, at most 3 MB each, to the run's key-value store.",
            "default": false
          },
          "includeQuestions": {
            "title": "Include product Q&A ($)",
            "type": "boolean",
            "description": "Add public product questions and merchant answers when the store has Q&A enabled. Charged per delivered question row.",
            "default": false
          },
          "includeAiSummary": {
            "title": "Include AI review summaries ($)",
            "type": "boolean",
            "description": "Add the merchant's public AI review summary and sentiment keywords when ready. Charged once per delivered summary.",
            "default": false
          },
          "outputStoreDomain": {
            "title": "Store domain",
            "type": "boolean",
            "description": "Canonical myshopify.com domain.",
            "default": true
          },
          "outputStoreUrl": {
            "title": "Store URL",
            "type": "boolean",
            "description": "Public storefront URL used for this result.",
            "default": true
          },
          "outputProductHandle": {
            "title": "Product handle",
            "type": "boolean",
            "description": "Shopify product URL slug.",
            "default": true
          },
          "outputProductTitle": {
            "title": "Product title",
            "type": "boolean",
            "description": "Public product title.",
            "default": true
          },
          "outputProductUrl": {
            "title": "Product URL",
            "type": "boolean",
            "description": "Canonical public product URL.",
            "default": true
          },
          "outputProductImageUrl": {
            "title": "Product image",
            "type": "boolean",
            "description": "Primary public product image URL.",
            "default": true
          },
          "outputProductDescription": {
            "title": "Product description",
            "type": "boolean",
            "description": "Plain-text public product description.",
            "default": true
          },
          "outputPrice": {
            "title": "Product price",
            "type": "boolean",
            "description": "Public product price.",
            "default": true
          },
          "outputCurrency": {
            "title": "Currency",
            "type": "boolean",
            "description": "Store currency code when available.",
            "default": true
          },
          "outputAvailable": {
            "title": "Availability",
            "type": "boolean",
            "description": "Whether the product is publicly available.",
            "default": true
          },
          "outputAverageRating": {
            "title": "Average rating",
            "type": "boolean",
            "description": "Product-level average rating.",
            "default": true
          },
          "outputReviewCount": {
            "title": "Review count",
            "type": "boolean",
            "description": "Product-level public review count.",
            "default": true
          },
          "outputRatingHistogram": {
            "title": "Rating histogram",
            "type": "boolean",
            "description": "Counts for ratings one through five.",
            "default": true
          },
          "outputReviewerName": {
            "title": "Reviewer name",
            "type": "boolean",
            "description": "Public reviewer display name.",
            "default": true
          },
          "outputReviewerCountry": {
            "title": "Reviewer country",
            "type": "boolean",
            "description": "Public ISO-2 reviewer country code.",
            "default": true
          },
          "outputReviewerAvatar": {
            "title": "Reviewer avatar",
            "type": "boolean",
            "description": "Absolute public avatar URL when available.",
            "default": true
          },
          "outputPublishedAt": {
            "title": "Review dates",
            "type": "boolean",
            "description": "Review publication and pin timestamps.",
            "default": true
          },
          "outputPinned": {
            "title": "Pinned timestamp",
            "type": "boolean",
            "description": "When the review was pinned, when applicable.",
            "default": true
          },
          "outputHelpfulCounts": {
            "title": "Helpful counts",
            "type": "boolean",
            "description": "Public like and dislike counts.",
            "default": true
          },
          "outputSourceMarketplace": {
            "title": "Source marketplace",
            "type": "boolean",
            "description": "Whether the review was imported from Amazon or AliExpress, plus its source ID.",
            "default": true
          },
          "outputReply": {
            "title": "Merchant reply",
            "type": "boolean",
            "description": "Reply flag and public reply text when available.",
            "default": true
          },
          "outputMediaUrls": {
            "title": "Media URLs",
            "type": "boolean",
            "description": "Public photo and video source URLs.",
            "default": true
          },
          "outputOriginalLanguage": {
            "title": "Original language",
            "type": "boolean",
            "description": "Original language code when available.",
            "default": true
          },
          "outputInputUrl": {
            "title": "Input URL",
            "type": "boolean",
            "description": "Original URL that produced the row.",
            "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}