{
  "openapi": "3.0.1",
  "info": {
    "title": "Sitemap Change Monitor: New & Removed URLs",
    "description": "Track a website's URL inventory from its sitemaps: new, removed and changed pages since the last run, URLs by section and publishing-speed stats (new URLs per day, median lag, stale share). Reads robots.txt, indexes and gzip; fetches only sitemaps, never pages.",
    "version": "1.0",
    "x-build-id": "fwQWIsvzf1su5I6Ov"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/offerastudio~sitemap-change-monitor/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-offerastudio-sitemap-change-monitor",
        "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/offerastudio~sitemap-change-monitor/runs": {
      "post": {
        "operationId": "runs-sync-offerastudio-sitemap-change-monitor",
        "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/offerastudio~sitemap-change-monitor/run-sync": {
      "post": {
        "operationId": "run-sync-offerastudio-sitemap-change-monitor",
        "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": [
          "sites"
        ],
        "properties": {
          "sites": {
            "title": "Sites or sitemap URLs",
            "maxItems": 200,
            "type": "array",
            "description": "Up to 200 entries. A domain or site URL (example.com, https://www.example.com): the Actor reads robots.txt and /sitemap.xml, follows sitemap indexes and reads gzip files. A URL of a sitemap file (https://example.com/sitemap-news.xml) is read directly.",
            "items": {
              "type": "string"
            }
          },
          "maxUrlsPerSite": {
            "title": "Maximum URLs per site",
            "minimum": 1,
            "maximum": 250000,
            "type": "integer",
            "description": "The inventory of a site stops at this many URLs (after the path filters). A site cut short this way is marked truncated and its removed URLs are not reported. The baseline of one site must fit in 9 MB compressed, which 250,000 URLs usually do.",
            "default": 50000
          },
          "includePaths": {
            "title": "Include only these paths",
            "type": "array",
            "description": "Keep only URLs whose path matches one of these patterns, for example /blog/* or /products/*. * matches any characters; the pattern starts at the beginning of the path unless it starts with *. Leave empty for all URLs.",
            "items": {
              "type": "string"
            }
          },
          "excludePaths": {
            "title": "Exclude these paths",
            "type": "array",
            "description": "Drop URLs whose path matches one of these patterns, for example /tag/* or *.pdf. Applied after the include list.",
            "items": {
              "type": "string"
            }
          },
          "maxListedUrls": {
            "title": "URLs listed per category",
            "minimum": 0,
            "maximum": 10000,
            "type": "integer",
            "description": "At most this many new, removed and changed URLs are listed in each site's row (newest lastmod first). The counts are always complete, and the full lists are kept in a record of the monitor's key-value store (diffUrl).",
            "default": 1000
          },
          "includeUnchanged": {
            "title": "Include unchanged sites",
            "type": "boolean",
            "description": "Also add a row for sites whose inventory did not change. Off by default, so the dataset (and your alerts) only get rows when something changed. It is switched on in the example input only so a first try, and Apify's daily test, always show a row for every site; turn it off for monitoring.",
            "default": false
          },
          "maxSitemapsPerSite": {
            "title": "Maximum sitemap files per site",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "Large sites split their sitemap into many files. The Actor reads at most this many per site, one request at a time, so a run stays polite and short. A site cut short this way is marked truncated.",
            "default": 100
          },
          "monitorName": {
            "title": "Monitor name",
            "pattern": "^[A-Za-z0-9 _-]{0,48}$",
            "type": "string",
            "description": "Name of this monitor's baseline store (letters, digits, spaces, - and _). Runs with the same name share baselines. Leave empty to derive it from the site list; then adding or removing a site starts a new monitor with new baselines. Set a name to keep history when you edit the list."
          }
        }
      },
      "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
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "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
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}