{
  "openapi": "3.0.1",
  "info": {
    "title": "Amazon AI Review Summary",
    "description": "Amazon's AI-generated 'Customers say' review summary per ASIN, with per-aspect sentiments and verbatim mention counters — 18 marketplaces, charged only when a summary is actually delivered.",
    "version": "0.0",
    "x-build-id": "VHHoVTliBa73NbCSu"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/cyprusapi~amazon-ai-summary/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-cyprusapi-amazon-ai-summary",
        "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/cyprusapi~amazon-ai-summary/runs": {
      "post": {
        "operationId": "runs-sync-cyprusapi-amazon-ai-summary",
        "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/cyprusapi~amazon-ai-summary/run-sync": {
      "post": {
        "operationId": "run-sync-cyprusapi-amazon-ai-summary",
        "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": {
          "asins": {
            "title": "ASINs",
            "type": "array",
            "description": "Amazon ASINs (10 characters) to fetch the AI review summary for, e.g. B079VP6DH5. One dataset item per ASIN × selected marketplace. Provide asins and/or startUrls.",
            "items": {
              "type": "string"
            }
          },
          "startUrls": {
            "title": "Product URLs",
            "type": "array",
            "description": "Amazon product URLs (/dp/... or /gp/product/...). The ASIN is extracted from each URL; the run's marketplace setting decides which Amazon domain is fetched. Provide asins and/or startUrls.",
            "items": {
              "type": "string"
            }
          },
          "marketplace": {
            "title": "Marketplace",
            "enum": [
              "de",
              "com",
              "co.uk",
              "fr",
              "it",
              "es",
              "ca",
              "com.au",
              "co.jp",
              "in",
              "nl",
              "se",
              "pl",
              "be",
              "mx",
              "br",
              "ae",
              "sa"
            ],
            "type": "string",
            "description": "Amazon marketplace all ASINs are fetched from (domain, locale and rendering language follow this setting). Used only when 'Marketplaces (multi)' below is empty; a non-empty multi-selection takes precedence.",
            "default": "com"
          },
          "marketplaces": {
            "title": "Marketplaces (multi)",
            "type": "array",
            "description": "Optional: fetch every ASIN on SEVERAL marketplaces in ONE run — one dataset item per ASIN × marketplace, each carrying its own marketplace code. When this list is non-empty it takes precedence over the single 'Marketplace' field above; when empty, that single field is used (unchanged behavior). Each selected marketplace gets its own pass with its own session/proxy/detection chain.",
            "items": {
              "type": "string",
              "enum": [
                "de",
                "com",
                "co.uk",
                "fr",
                "it",
                "es",
                "ca",
                "com.au",
                "co.jp",
                "in",
                "nl",
                "se",
                "pl",
                "be",
                "mx",
                "br",
                "ae",
                "sa"
              ],
              "enumTitles": [
                "Germany (de)",
                "US (com)",
                "UK (co.uk)",
                "France (fr)",
                "Italy (it)",
                "Spain (es)",
                "Canada (ca)",
                "Australia (com.au)",
                "Japan (co.jp)",
                "India (in)",
                "Netherlands (nl)",
                "Sweden (se)",
                "Poland (pl)",
                "Belgium (be)",
                "Mexico (mx)",
                "Brazil (br)",
                "UAE (ae)",
                "Saudi Arabia (sa)"
              ]
            },
            "default": []
          },
          "maxItems": {
            "title": "Max items",
            "minimum": 1,
            "type": "integer",
            "description": "Upper bound of ASINs processed in this run — counted across ALL selected marketplaces combined (not per marketplace).",
            "default": 5
          },
          "language": {
            "title": "Language override",
            "type": "string",
            "description": "Optional Amazon language code (e.g. en_US, de_DE) appended as ?language= to every fetched page. By default the marketplace's verified language cookie is used — the summary renders in the marketplace's native language."
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Residential proxies are strongly recommended. Custom proxies can be added as proxyUrls (http://user:pass@host:port).",
            "default": {
              "useApifyProxy": true,
              "apifyProxyGroups": [
                "RESIDENTIAL"
              ]
            }
          },
          "proxiesByMarketplace": {
            "title": "Per-marketplace proxies",
            "type": "object",
            "description": "Optional: {\"de\": [\"http://user:pass@host:port\", …], \"co.uk\": […]}. Geo-pinned proxies per marketplace — exit-IP country should match the marketplace, otherwise Amazon serves bot-gates. Proxy tier chain per task: this explicit pool FIRST; otherwise the bundled shared pool (we cover it); on blocked/transport the run falls back to Apify datacenter, then Apify residential. With useApifyProxy off and no pool at all: single direct attempt."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}