{
  "title": "Watch public UCP commerce profiles",
  "description": "Start with merchant domains. Each saved row is one public discovery observation. Profiles declare capabilities; this Actor does not certify compatibility or test checkout. Leave merchant URLs empty for three working examples.",
  "type": "object",
  "schemaVersion": 1,
  "properties": {
    "merchantUrls": {
      "title": "Merchant websites",
      "type": "array",
      "description": "Up to 100 public HTTPS merchant roots or exact /.well-known/ucp URLs. Paths to products, checkout URLs and query parameters are not accepted. Empty input uses Pier 1, Allbirds and Brooklinen.",
      "editor": "stringList",
      "prefill": [
        "https://www.pier1.com",
        "https://www.allbirds.com",
        "https://www.brooklinen.com"
      ],
      "sectionCaption": "1. Choose your watchlist",
      "sectionDescription": "Only the public discovery profile and robots.txt are requested."
    },
    "maxResults": {
      "title": "Maximum saved observations",
      "type": "integer",
      "description": "Caps saved domain observations. With changes-only enabled, unchanged domains do not use the saved-row limit.",
      "default": 25,
      "minimum": 1,
      "maximum": 100
    },
    "comparePrevious": {
      "title": "Compare with a saved snapshot",
      "type": "boolean",
      "description": "Compare each merchant with its previous successfully saved observation. The first observation is marked new. Use one snapshot name sequentially.",
      "default": false,
      "sectionCaption": "2. Track changes",
      "sectionDescription": "History is optional and advances only after a row is saved."
    },
    "onlyChanges": {
      "title": "Save only new or changed observations",
      "type": "boolean",
      "description": "Automatically enables comparison. An unchanged repeat can save zero rows successfully.",
      "default": false
    },
    "snapshotName": {
      "title": "Snapshot name",
      "type": "string",
      "description": "1–40 letters, digits, underscores or hyphens. Use a different name for independent watchlists. Do not run the same name concurrently.",
      "default": "default",
      "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]{0,39}$",
      "editor": "textfield"
    },
    "maxRunSeconds": {
      "title": "Maximum run time (seconds)",
      "type": "integer",
      "description": "Own time budget. The Actor also reserves 25 seconds before the platform deadline for cleanup and reporting.",
      "default": 240,
      "minimum": 30,
      "maximum": 3600,
      "sectionCaption": "3. Bound the run"
    }
  }
}
