{
  "openapi": "3.0.1",
  "info": {
    "title": "Amazon Search & Products Detailed Scraper",
    "description": "Scrape Amazon product listings with the Amazon Search Products Scraper. Extract titles, prices, ratings, reviews, ASINs, images, and availability from search results. Ideal for market research, price monitoring, and product analysis. Fast, accurate, and scalable for bulk searches.",
    "version": "0.1",
    "x-build-id": "d44RLa0wbbgJo7bd2"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/scrapier~amazon-search-products-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-scrapier-amazon-search-products-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/scrapier~amazon-search-products-scraper/runs": {
      "post": {
        "operationId": "runs-sync-scrapier-amazon-search-products-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/scrapier~amazon-search-products-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-scrapier-amazon-search-products-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",
        "required": [
          "startUrls"
        ],
        "properties": {
          "startUrls": {
            "title": "🔍 Keywords or Amazon URLs",
            "type": "array",
            "description": "📝 Add plain keywords (e.g. 'Playstation') or Amazon URLs. Supported URL shapes, routed automatically: search URLs (/s?k=... — rh filters, i= category, price params, sort and the URL's own domain are ALL preserved), category / browse-node URLs (/s?rh=n:172282 or /b?node=172282), Best Sellers / New Releases pages (/gp/bestsellers/..., /gp/new-releases/...), and seller storefront URLs (/s?me=SELLERID). Each item runs as a separate search.",
            "items": {
              "type": "string"
            }
          },
          "amazonDomain": {
            "title": "🌐 Amazon domain (for plain keywords)",
            "enum": [
              "amazon.com",
              "amazon.co.uk",
              "amazon.de",
              "amazon.fr",
              "amazon.it",
              "amazon.es",
              "amazon.ca"
            ],
            "type": "string",
            "description": "🌍 Marketplace used for plain keyword searches. Pasted URLs always keep their own domain (any amazon.* domain works via URL). Default: amazon.com.",
            "default": "amazon.com"
          },
          "sortOrder": {
            "title": "↕️ Sort order",
            "enum": [
              "relevanceblender",
              "price-asc-rank",
              "price-desc-rank",
              "review-rank",
              "date-desc-rank"
            ],
            "type": "string",
            "description": "📊 Applied to keyword searches and to pasted URLs that have no s= sort of their own (a URL's own sort always wins). Default: relevance.",
            "default": "relevanceblender"
          },
          "maxPages": {
            "title": "📄 Maximum pages per search",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "🔢 Max result pages per search input. Keep 1 for auto-continue mode (keeps paging until 2 consecutive empty pages), or set higher for a strict limit. Best Sellers / New Releases pages have at most 2 pages (50 items). Example: maxPages=3 → up to 3 pages ≈ 60–140 products per search. Default: 1 (auto).",
            "default": 1
          },
          "language": {
            "title": "🗣️ Language (optional)",
            "enum": [
              "",
              "en-US",
              "en-GB",
              "de-DE",
              "fr-FR",
              "es-ES",
              "it-IT",
              "ja-JP",
              "zh-CN"
            ],
            "type": "string",
            "description": "🧭 Sets the Accept-Language request header for better localization. Leave empty to auto-detect from the domain.",
            "default": ""
          },
          "scrapeProductDetails": {
            "title": "🔬 Scrape product detail pages",
            "type": "boolean",
            "description": "🧪 Opt-in enrichment: fetches each product's /dp/<ASIN> page and adds brand, features, description, Best Sellers Rank, specifications, date first available and an image gallery to the row. One extra rate-limited request per product, charged as a separate 'detail_result' event. Values are real or null — never fabricated. Default: off.",
            "default": false
          },
          "maxDetailPages": {
            "title": "🎯 Max detail pages per run",
            "minimum": 0,
            "maximum": 100000,
            "type": "integer",
            "description": "🔒 Hard cap on how many /dp/<ASIN> detail pages are fetched in the whole run (cost control). 0 = unlimited. Example: 200 products found + maxDetailPages=20 → only the first 20 rows get detail fields, the rest keep them null with detailFetched=false. Default: 20.",
            "default": 20
          },
          "proxyConfiguration": {
            "title": "⚙️ Proxy configuration",
            "type": "object",
            "description": "🧱 Default: no proxy. When blocked, the actor automatically climbs the ladder: direct → datacenter → residential (requires Apify Proxy enabled here). Blocked pages are surfaced as uncharged error rows."
          },
          "proxyCountry": {
            "title": "🛡️ Proxy country",
            "enum": [
              "AUTO",
              "US",
              "GB",
              "DE",
              "FR",
              "ES",
              "IT",
              "CA",
              "AU",
              "JP"
            ],
            "type": "string",
            "description": "📍 Pin the proxy exit country, or keep AUTO for automatic selection.",
            "default": "AUTO"
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}