{
  "openapi": "3.0.1",
  "info": {
    "title": "Amazon Deals Scraper",
    "description": "Scrapes Amazon Today's Deals / Coupons grids per marketplace — deal price, list price, discount %, badge (lightning/coupon/best-deal), deal end. Errors never charged.",
    "version": "0.0",
    "x-build-id": "L8L5jhEhXTkyAWJLn"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/cyprusapi~amazon-deals/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-cyprusapi-amazon-deals",
        "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-deals/runs": {
      "post": {
        "operationId": "runs-sync-cyprusapi-amazon-deals",
        "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-deals/run-sync": {
      "post": {
        "operationId": "run-sync-cyprusapi-amazon-deals",
        "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": {
          "marketplaces": {
            "title": "Marketplaces",
            "type": "array",
            "description": "Amazon marketplaces to harvest the deals grid from. One run can cover several marketplaces.",
            "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": [
              "com"
            ]
          },
          "dealType": {
            "title": "Deal type",
            "enum": [
              "all",
              "lightning",
              "coupons"
            ],
            "type": "string",
            "description": "Filter the grid by deal kind: all deals, lightning deals only, or coupon deals only. Ignored when a category slug is set.",
            "default": "all"
          },
          "categorySlug": {
            "title": "Category slug",
            "type": "string",
            "description": "Optional deals-collection category filter (locale-independent slug from the deals page filter bubbles), e.g. 'beauty', 'toys', 'electronics', 'computers-and-software', 'kitchen-home-and-furniture', 'fashion-redirect'. Available slugs vary per marketplace — an unknown slug yields a no_results_found error item (not charged). Wins over 'Deal type' when both are set."
          },
          "maxItemsPerMarketplace": {
            "title": "Max deals per marketplace",
            "minimum": 1,
            "maximum": 500,
            "type": "integer",
            "description": "Upper bound of unique deals collected per marketplace (the grid lazy-loads while scrolling).",
            "default": 10
          },
          "minDiscountPercent": {
            "title": "Minimum discount %",
            "minimum": 0,
            "maximum": 95,
            "type": "integer",
            "description": "Keep only deals discounted by at least this many percent (parsed from the deal badge). Applied after parsing but BEFORE charging — filtered-out deals never appear in the dataset and are never charged. Fail-closed: a deal whose badge carries no discount value does NOT match this filter."
          },
          "priceRange": {
            "title": "Deal price range",
            "type": "object",
            "description": "Keep only deals whose effective deal price falls inside this range, in the marketplace's own currency — e.g. {\"min\": 20, \"max\": 100}. Either side is optional ({\"min\": 50} or {\"max\": 25} alone are valid); bounds are inclusive. Applied after parsing but BEFORE charging — filtered-out deals never appear in the dataset and are never charged. Fail-closed: a deal with no parsed deal price does NOT match this filter.",
            "properties": {
              "min": {
                "type": "number",
                "title": "Minimum price",
                "description": "Lowest acceptable effective deal price (inclusive), in the marketplace's currency. Optional.",
                "minimum": 0
              },
              "max": {
                "type": "number",
                "title": "Maximum price",
                "description": "Highest acceptable effective deal price (inclusive), in the marketplace's currency. Optional.",
                "minimum": 0
              }
            }
          },
          "primeOnly": {
            "title": "Prime deals only",
            "type": "boolean",
            "description": "Keep only deals the card marks as Prime (Prime badge/icon or a Prime-exclusive deal badge). Applied after parsing but BEFORE charging — filtered-out deals never appear in the dataset and are never charged. Fail-closed: a deal without a Prime marker does NOT match this filter.",
            "default": false
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Optional — the actor ships with bundled geo proxies per marketplace (no setup needed, we cover the cost). Enable this only to force your own or Apify proxies instead.",
            "default": {
              "useApifyProxy": false
            }
          },
          "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 wrong currencies or 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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}