{
  "openapi": "3.0.1",
  "info": {
    "title": "iHerb Reviews Scraper",
    "description": "Scrape iHerb product reviews: rating, title, text, date, language, country, verified purchase, helpful votes, images and reviewer stats. Filter by language, star rating, country or keyword. Export JSON, CSV, Excel.",
    "version": "1.0",
    "x-build-id": "5h5dKbJ12IYnQ9Xkc"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/parsebird~iherb-reviews-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-parsebird-iherb-reviews-scraper",
        "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/parsebird~iherb-reviews-scraper/runs": {
      "post": {
        "operationId": "runs-sync-parsebird-iherb-reviews-scraper",
        "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/parsebird~iherb-reviews-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-parsebird-iherb-reviews-scraper",
        "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",
        "properties": {
          "productUrls": {
            "title": "iHerb product URLs",
            "type": "array",
            "description": "Product or review page links from any iHerb country site, e.g. https://www.iherb.com/pr/california-gold-nutrition-bee-propolis-2x-concentrated-extract-500-mg-90-veggie-caps/61839 or https://pk.iherb.com/r/.../61839. Tracking parameters and surrounding text are ignored. Review filters in a /r/ link (sort, ratings, isShowTranslated, withImagesOnly, search) are used when you leave the matching field below at its default.",
            "items": {
              "type": "string"
            }
          },
          "productIds": {
            "title": "iHerb product IDs",
            "type": "array",
            "description": "Numeric product IDs, the number at the end of a product URL (e.g. 61839). Use this instead of, or together with, product URLs.",
            "items": {
              "type": "string"
            }
          },
          "maxReviews": {
            "title": "Max reviews per product",
            "minimum": 0,
            "type": "integer",
            "description": "Reviews to save from each product. 0 = all reviews.",
            "default": 20
          },
          "sortBy": {
            "title": "Sort by",
            "enum": [
              "mostRelevant",
              "newest",
              "oldest",
              "mostHelpful",
              "highestRating",
              "lowestRating"
            ],
            "type": "string",
            "description": "Order in which iHerb returns the reviews.",
            "default": "mostRelevant"
          },
          "language": {
            "title": "Review language",
            "enum": [
              "",
              "ar-SA",
              "hy-AM",
              "az-AZ",
              "bs-BA",
              "bg-BG",
              "zh-HK",
              "zh-CN",
              "zh-TW",
              "hr-HR",
              "cs-CZ",
              "da-DK",
              "nl-NL",
              "en-US",
              "en-GB",
              "et-EE",
              "pt-PT",
              "es-ES",
              "fi-FI",
              "fr-FR",
              "ka-GE",
              "de-DE",
              "el-GR",
              "he-IL",
              "hi-IN",
              "hu-HU",
              "id-ID",
              "it-IT",
              "ja-JP",
              "kk-KZ",
              "ko-KR",
              "lv-LV",
              "lt-LT",
              "ms-MY",
              "no-NO",
              "fa-IR",
              "pl-PL",
              "pt-BR",
              "ro-RO",
              "ru-RU",
              "sk-SK",
              "sl-SI",
              "es-MX",
              "sv-SE",
              "th-TH",
              "tr-TR",
              "uk-UA"
            ],
            "type": "string",
            "description": "Only reviews written in this language. Leave on All languages to get reviews in every language, in the text the reviewer wrote.",
            "default": ""
          },
          "translateReviews": {
            "title": "Translate reviews",
            "type": "boolean",
            "description": "Get reviews in all languages, machine-translated by iHerb into the review language above (English when All languages is selected). The original language stays in the languageCode field. Turned off, you get the reviewer's own text.",
            "default": false
          },
          "ratings": {
            "title": "Star ratings",
            "type": "array",
            "description": "Only reviews with these star ratings. Leave empty for all ratings.",
            "items": {
              "type": "string",
              "enum": [
                "5",
                "4",
                "3",
                "2",
                "1"
              ],
              "enumTitles": [
                "5 stars",
                "4 stars",
                "3 stars",
                "2 stars",
                "1 star"
              ]
            }
          },
          "withImagesOnly": {
            "title": "Reviews with images only",
            "type": "boolean",
            "description": "Only reviews that include customer photos.",
            "default": false
          },
          "countryCode": {
            "title": "Reviewer country",
            "pattern": "^([A-Za-z]{2})?$",
            "type": "string",
            "description": "Only reviews from customers in this country, as a 2-letter code (e.g. US, GB, KR, SA). Leave empty for all countries."
          },
          "searchText": {
            "title": "Search reviews",
            "type": "string",
            "description": "Only reviews that contain this word or phrase, e.g. taste or side effects. iHerb's own review search is used."
          },
          "reviewsSince": {
            "title": "Only reviews since",
            "type": "string",
            "description": "Keep only reviews posted on or after this date. Reviews are then read newest first and reading stops at the first older review, so scheduled monitoring runs stay small."
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Keep the default Apify Proxy: iHerb refuses requests sent directly from Apify servers. Refused requests are retried on a fresh IP, and Apify Residential is tried as a fallback when your plan includes it.",
            "default": {
              "useApifyProxy": 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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}