{
  "openapi": "3.0.1",
  "info": {
    "title": "Sitemap Change Monitor: Added & Removed URLs",
    "description": "Sitemap change monitor for public sitemap.xml files. Compares each run with the last one and returns URLs that were added, removed or whose lastmod changed, including nested sitemap indexes. Obeys robots.txt and does not fetch the pages. Not a one-time sitemap extractor.",
    "version": "1.0",
    "x-build-id": "23is87JLInPRMEeNk"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/mmdincer~sitemap-change-monitor/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-mmdincer-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/mmdincer~sitemap-change-monitor/runs": {
      "post": {
        "operationId": "runs-sync-mmdincer-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/mmdincer~sitemap-change-monitor/run-sync": {
      "post": {
        "operationId": "run-sync-mmdincer-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": [
          "sitemaps"
        ],
        "properties": {
          "sitemaps": {
            "title": "Sitemaps",
            "minItems": 1,
            "maxItems": 50,
            "type": "array",
            "description": "Sitemap files or websites to watch, one per line. A file address such as <code>https://example.com/sitemap.xml</code> is read directly. A domain or home page such as <code>example.com</code> uses the Sitemap lines in <code>robots.txt</code>, then <code>/sitemap.xml</code>. Nested sitemap indexes are followed on the same site. Up to 50 per run.",
            "items": {
              "type": "string"
            }
          },
          "changeTypes": {
            "title": "Change types to report",
            "type": "array",
            "description": "Which changes become rows. Leave all selected to get everything. A type you leave out is not reported and is not charged, and it is not reported on a later run either, because the baseline moves forward.",
            "items": {
              "type": "string",
              "enum": [
                "added",
                "removed",
                "lastmod_changed"
              ],
              "enumTitles": [
                "Added URL",
                "Removed URL",
                "lastmod changed"
              ]
            },
            "default": [
              "added",
              "removed",
              "lastmod_changed"
            ]
          },
          "monitorName": {
            "title": "Watchlist name",
            "type": "string",
            "description": "Name of the saved baseline. Runs that use the same name compare against each other. Use different names to keep separate watchlists, for example <code>blog</code> and <code>docs</code>.",
            "default": "default"
          },
          "includePaths": {
            "title": "Only watch paths containing",
            "type": "array",
            "description": "Optional. Keep URLs whose path contains one of these segments, for example <code>/blog</code>, <code>/pricing</code> or <code>/products</code>. <code>/blog</code> matches <code>/blog</code>, <code>/blog/post</code> and <code>/en/blog</code>, and does not match <code>/blogger</code>. Leave empty to watch the whole sitemap. Changing this list saves a new baseline on the next run.",
            "items": {
              "type": "string"
            }
          },
          "excludePaths": {
            "title": "Ignore paths containing",
            "type": "array",
            "description": "Optional. Drop URLs whose path contains any of these segments, for example <code>/tag</code>. <code>/tag</code> does not match <code>/tags</code>. Changing this list saves a new baseline on the next run.",
            "items": {
              "type": "string"
            }
          },
          "fetchPageTitles": {
            "title": "Page title for new URLs",
            "type": "boolean",
            "description": "Read the HTML title of URLs that were <b>added</b> since the previous run. Removed URLs and lastmod-only changes are not opened. The Actor stays on the same site, obeys <code>robots.txt</code>, and waits at least one second between requests. A title is not a separate charge. Turn this off to read sitemap files only.",
            "default": true
          },
          "maxPageTitles": {
            "title": "Max page titles",
            "minimum": 0,
            "maximum": 200,
            "type": "integer",
            "description": "How many new URLs may be opened for a title on one sitemap, in URL order. Further new URLs are still reported, with an empty title. <code>0</code> reports the URLs and reads no pages.",
            "default": 50
          },
          "maxUrls": {
            "title": "Max URLs",
            "minimum": 1,
            "maximum": 50000,
            "type": "integer",
            "description": "Upper limit of page URLs read from one sitemap. Above this, the run is marked capped and removed-URL detection is turned off, because URLs past the limit would look deleted.",
            "default": 20000
          },
          "maxSitemapFiles": {
            "title": "Max sitemap files",
            "minimum": 1,
            "maximum": 30,
            "type": "integer",
            "description": "How many sitemap files to open for one input, including the index and its children. Further files are left unread and removed-URL detection is turned off for that run.",
            "default": 10
          },
          "maxChanges": {
            "title": "Max changes",
            "minimum": 0,
            "maximum": 20000,
            "type": "integer",
            "description": "Upper limit of URL-change rows written for one sitemap. <code>0</code> writes the summary only. Changes past this limit are not charged and are not reported on a later run.",
            "default": 2000
          },
          "requestDelayMs": {
            "title": "Delay between requests (ms)",
            "minimum": 1000,
            "maximum": 10000,
            "type": "integer",
            "description": "Minimum pause between requests to the same host. The floor is 1000 ms and cannot be lowered. A <code>Crawl-delay</code> in robots.txt is honored up to 10 seconds; a longer delay skips that sitemap.",
            "default": 1000
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}