{
  "openapi": "3.0.1",
  "info": {
    "title": "Ecommerce Store Intelligence",
    "description": "Extract comprehensive store and product intelligence from Shopify and WooCommerce stores with automated change tracking and monitoring",
    "version": "0.0",
    "x-build-id": "OeXinZWlHith8Nzq3"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/happitap~ecommerce-store-intelligence/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-happitap-ecommerce-store-intelligence",
        "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/happitap~ecommerce-store-intelligence/runs": {
      "post": {
        "operationId": "runs-sync-happitap-ecommerce-store-intelligence",
        "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/happitap~ecommerce-store-intelligence/run-sync": {
      "post": {
        "operationId": "run-sync-happitap-ecommerce-store-intelligence",
        "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": [
          "stores"
        ],
        "properties": {
          "stores": {
            "title": "Stores to Analyze",
            "minItems": 1,
            "maxItems": 50,
            "type": "array",
            "description": "List of e-commerce stores to analyze",
            "items": {
              "type": "object",
              "properties": {
                "storeUrl": {
                  "type": "string",
                  "title": "Store URL",
                  "description": "Base URL of the e-commerce store",
                  "editor": "textfield",
                  "pattern": "^https?://.+"
                },
                "label": {
                  "type": "string",
                  "title": "Label",
                  "description": "Friendly name for the store",
                  "editor": "textfield"
                },
                "country": {
                  "type": "string",
                  "title": "Country",
                  "description": "Store's primary country (ISO code)",
                  "editor": "textfield"
                },
                "currency": {
                  "type": "string",
                  "title": "Currency",
                  "description": "Store's primary currency (ISO code)",
                  "editor": "textfield"
                }
              },
              "required": [
                "storeUrl"
              ]
            }
          },
          "crawl": {
            "title": "Crawl Settings",
            "type": "object",
            "description": "Configure how stores are crawled",
            "properties": {
              "render": {
                "type": "string",
                "title": "Render Method",
                "description": "How to render pages",
                "editor": "select",
                "enum": [
                  "playwright",
                  "cheerio"
                ],
                "enumTitles": [
                  "Playwright (Full JS)",
                  "Cheerio (Fast HTML)"
                ],
                "default": "playwright"
              },
              "maxProducts": {
                "type": "integer",
                "title": "Max Products",
                "description": "Maximum products to extract per store",
                "editor": "number",
                "default": 200,
                "minimum": 1,
                "maximum": 10000
              },
              "maxCollections": {
                "type": "integer",
                "title": "Max Collections",
                "description": "Maximum collections to crawl per store",
                "editor": "number",
                "default": 50,
                "minimum": 1,
                "maximum": 500
              },
              "productDiscovery": {
                "type": "array",
                "title": "Product Discovery Methods",
                "description": "Methods to discover products (in order of priority)",
                "editor": "select",
                "items": {
                  "type": "string",
                  "enum": [
                    "sitemap",
                    "platform_api",
                    "category_crawl",
                    "search"
                  ],
                  "enumTitles": [
                    "Sitemap",
                    "Platform API",
                    "Category Crawl",
                    "Search"
                  ]
                },
                "default": [
                  "sitemap",
                  "platform_api",
                  "category_crawl"
                ]
              },
              "includeOutOfStock": {
                "type": "boolean",
                "title": "Include Out of Stock",
                "description": "Include out-of-stock products",
                "editor": "checkbox",
                "default": true
              },
              "respectRobots": {
                "type": "boolean",
                "title": "Respect robots.txt",
                "description": "Follow robots.txt rules",
                "editor": "checkbox",
                "default": true
              },
              "timeoutMs": {
                "type": "integer",
                "title": "Timeout (ms)",
                "description": "Page load timeout in milliseconds",
                "editor": "number",
                "default": 45000,
                "minimum": 5000,
                "maximum": 120000
              }
            },
            "default": {
              "render": "playwright",
              "maxProducts": 200,
              "maxCollections": 50,
              "productDiscovery": [
                "sitemap",
                "platform_api",
                "category_crawl"
              ],
              "includeOutOfStock": true,
              "respectRobots": true,
              "timeoutMs": 45000
            }
          },
          "extract": {
            "title": "Extraction Settings",
            "type": "object",
            "description": "What data to extract from stores",
            "properties": {
              "storeMeta": {
                "type": "boolean",
                "title": "Store Metadata",
                "description": "Extract store name, description, logo",
                "editor": "checkbox",
                "default": true
              },
              "collections": {
                "type": "boolean",
                "title": "Collections",
                "description": "Extract product collections/categories",
                "editor": "checkbox",
                "default": true
              },
              "products": {
                "type": "boolean",
                "title": "Products",
                "description": "Extract product details",
                "editor": "checkbox",
                "default": true
              },
              "reviewsSummary": {
                "type": "boolean",
                "title": "Reviews Summary",
                "description": "Extract review ratings (if available)",
                "editor": "checkbox",
                "default": false
              },
              "contactSignals": {
                "type": "boolean",
                "title": "Contact Signals",
                "description": "Extract email, phone, WhatsApp, chat widgets",
                "editor": "checkbox",
                "default": true
              },
              "policies": {
                "type": "boolean",
                "title": "Policies",
                "description": "Extract shipping and return policy URLs",
                "editor": "checkbox",
                "default": true
              },
              "promotions": {
                "type": "boolean",
                "title": "Promotions",
                "description": "Extract promo banners, coupons, free shipping",
                "editor": "checkbox",
                "default": true
              }
            },
            "default": {
              "storeMeta": true,
              "collections": true,
              "products": true,
              "reviewsSummary": false,
              "contactSignals": true,
              "policies": true,
              "promotions": true
            }
          },
          "filters": {
            "title": "Filters",
            "type": "object",
            "description": "Filter which products to extract",
            "properties": {
              "onlyCollections": {
                "type": "array",
                "title": "Only Collections",
                "description": "Only extract products from these collections (empty = all)",
                "editor": "json",
                "items": {
                  "type": "string"
                },
                "default": []
              },
              "onlyKeywords": {
                "type": "array",
                "title": "Only Keywords",
                "description": "Only extract products matching these keywords (empty = all)",
                "editor": "json",
                "items": {
                  "type": "string"
                },
                "default": []
              },
              "minPrice": {
                "type": "number",
                "title": "Min Price",
                "description": "Minimum product price filter",
                "editor": "number",
                "nullable": true
              },
              "maxPrice": {
                "type": "number",
                "title": "Max Price",
                "description": "Maximum product price filter",
                "editor": "number",
                "nullable": true
              }
            },
            "default": {
              "onlyCollections": [],
              "onlyKeywords": [],
              "minPrice": null,
              "maxPrice": null
            }
          },
          "changeTracking": {
            "title": "Change Tracking",
            "type": "object",
            "description": "Track changes between runs",
            "properties": {
              "enabled": {
                "type": "boolean",
                "title": "Enable Change Tracking",
                "description": "Track changes between runs",
                "editor": "checkbox",
                "default": true
              },
              "compareWith": {
                "type": "string",
                "title": "Compare With",
                "description": "What to compare against",
                "editor": "select",
                "enum": [
                  "previousRun",
                  "snapshotId"
                ],
                "enumTitles": [
                  "Previous Run",
                  "Specific Snapshot"
                ],
                "default": "previousRun"
              },
              "track": {
                "type": "array",
                "title": "Track Changes",
                "description": "What changes to track",
                "editor": "select",
                "items": {
                  "type": "string",
                  "enum": [
                    "price",
                    "availability",
                    "new_products",
                    "removed_products",
                    "title",
                    "images"
                  ],
                  "enumTitles": [
                    "Price",
                    "Availability",
                    "New Products",
                    "Removed Products",
                    "Title",
                    "Images"
                  ]
                },
                "default": [
                  "price",
                  "availability",
                  "new_products",
                  "removed_products"
                ]
              },
              "baselineSnapshotId": {
                "type": "string",
                "title": "Baseline Snapshot ID",
                "description": "Specific snapshot ID to compare against (if compareWith=snapshotId)",
                "editor": "textfield",
                "nullable": true
              }
            },
            "default": {
              "enabled": true,
              "compareWith": "previousRun",
              "track": [
                "price",
                "availability",
                "new_products",
                "removed_products"
              ]
            }
          },
          "delivery": {
            "title": "Delivery Settings",
            "type": "object",
            "description": "How to deliver results",
            "properties": {
              "webhookUrl": {
                "type": "string",
                "title": "Webhook URL",
                "description": "POST results to this webhook URL",
                "editor": "textfield",
                "pattern": "^(https?://.*)?$"
              },
              "onlyWhenChanged": {
                "type": "boolean",
                "title": "Only When Changed",
                "description": "Only send webhook when changes detected",
                "editor": "checkbox",
                "default": true
              }
            },
            "default": {
              "webhookUrl": "",
              "onlyWhenChanged": 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
                  }
                }
              },
              "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}