{
  "openapi": "3.0.1",
  "info": {
    "title": "Amazon Product Scraper — GPSR, Variants, Offers & A+ Content",
    "description": "Typed Amazon product data with GPSR/EU compliance, full variant data, offers/buybox, A+ content and provenance — 18 marketplaces, pay per result, errors never charged.",
    "version": "0.0",
    "x-build-id": "tLRDIENu44bffm83V"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/cyprusapi~amazon-product/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-cyprusapi-amazon-product",
        "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-product/runs": {
      "post": {
        "operationId": "runs-sync-cyprusapi-amazon-product",
        "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-product/run-sync": {
      "post": {
        "operationId": "run-sync-cyprusapi-amazon-product",
        "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 scrape, e.g. B079VP6DH5. One dataset item per ASIN. Provide asins, startUrls and/or keywords.",
            "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, startUrls and/or keywords.",
            "items": {
              "type": "string"
            }
          },
          "keywords": {
            "title": "Search keywords",
            "type": "array",
            "description": "Optional: search the marketplace for these keywords and scrape the found products as full product items (charged as the normal 'product' event). Result pages are paginated until maxResultsPerKeyword unique ASINs per keyword are collected or results run out; each item carries search_keyword, search_position and sponsored. Provide asins, startUrls and/or keywords.",
            "items": {
              "type": "string"
            }
          },
          "maxResultsPerKeyword": {
            "title": "Max results per keyword",
            "minimum": 1,
            "maximum": 500,
            "type": "integer",
            "description": "Upper bound of unique ASINs collected per keyword. maxItems remains the global cap across all keywords and inputs.",
            "default": 50
          },
          "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, currency, and price-parsing logic follow this setting).",
            "default": "com"
          },
          "includeOffers": {
            "title": "Include offers",
            "type": "boolean",
            "description": "Also fetch the full offer list per ASIN (All Offers Display, falling back to /gp/offer-listing): seller name/id, price, condition, shipping, delivery, ships_from. The list is stored inside the product item as offers: [...] and charged as a separate 'offers' event per ASIN; failures are noted as offers_error and are free.",
            "default": false
          },
          "includeVariantPrices": {
            "title": "Include variant prices",
            "type": "boolean",
            "description": "Also resolve the full variant price matrix per ASIN (every child of a variation parent with its typed price, via Amazon's twister endpoint): stored as variant_prices: [...] and charged as a separate 'variant-prices' event per ASIN — only when the COMPLETE matrix was delivered. Partial matrices (variant_prices_incomplete) and ASINs without variations are free.",
            "default": false
          },
          "includeSellerDetails": {
            "title": "Include seller details",
            "type": "boolean",
            "description": "Also fetch the seller profile (/sp page) of every offer seller per ASIN: ratings per period (30d/90d/365d/lifetime), positive feedback percent and the legal imprint (business name, address, VAT id) — stored as seller_details: [...] and charged as a separate 'seller-details' event per ASIN with at least one delivered profile. Requires the offer list; it is fetched automatically (charged as 'offers' only when Include offers is also on).",
            "default": false
          },
          "expandVariants": {
            "title": "Expand variants",
            "type": "boolean",
            "description": "When a parsed product is a variation parent, enqueue every child ASIN as its own full product task (deduplicated, capped by maxItems). Each child becomes its own charged product item.",
            "default": false
          },
          "maxItems": {
            "title": "Max items",
            "minimum": 1,
            "type": "integer",
            "description": "Upper bound of product items pushed in this run (including expanded variant children).",
            "default": 10
          },
          "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."
          },
          "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 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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}