{
  "openapi": "3.0.1",
  "info": {
    "title": "Sitemap Extractor & New Page Monitor",
    "description": "Extract every URL from any website's sitemaps (index, gzip, news, image, hreflang, RSS and text) and get new, updated and removed pages since the last run. Optional HTTP status check and a sitemap health report with SEO issues.",
    "version": "1.0",
    "x-build-id": "DI2fyow8cxlOuK40a"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/metallic_pastry~sitemap-page-monitor/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-metallic_pastry-sitemap-page-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/metallic_pastry~sitemap-page-monitor/runs": {
      "post": {
        "operationId": "runs-sync-metallic_pastry-sitemap-page-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/metallic_pastry~sitemap-page-monitor/run-sync": {
      "post": {
        "operationId": "run-sync-metallic_pastry-sitemap-page-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": [
          "websites"
        ],
        "properties": {
          "websites": {
            "title": "Websites or sitemap URLs",
            "type": "array",
            "description": "One per line. A domain or homepage (\"allbirds.com\") finds the sitemaps through robots.txt and the usual locations. A section URL (\"wordpress.org/news\") does the same but keeps only URLs under that path. A sitemap URL (\"https://techcrunch.com/news-sitemap.xml\") reads only that sitemap and its children. Duplicates are removed.",
            "items": {
              "type": "string"
            }
          },
          "outputMode": {
            "title": "Output",
            "enum": [
              "urls",
              "changes",
              "summary"
            ],
            "type": "string",
            "description": "\"urls\" outputs one row per page URL. \"changes\" outputs only pages that were added, updated or removed since the previous run (the first run saves a free baseline). \"summary\" outputs one report per website with counts, freshness, sections and SEO issues.",
            "default": "urls"
          },
          "includePatterns": {
            "title": "Only URLs matching",
            "type": "array",
            "description": "Optional. Keep only URLs containing one of these texts, e.g. \"/blog/\" or \"/products/\". Use * for a wildcard pattern matched against the whole URL, e.g. \"https://*.example.com/*/pricing\". Case-insensitive.",
            "items": {
              "type": "string"
            }
          },
          "excludePatterns": {
            "title": "Skip URLs matching",
            "type": "array",
            "description": "Optional. Drop URLs containing one of these texts or matching a * pattern, e.g. \"/tag/\" or \"?page=\".",
            "items": {
              "type": "string"
            }
          },
          "lastmodWithinDays": {
            "title": "Only pages modified in the last N days",
            "minimum": 0,
            "maximum": 3650,
            "type": "integer",
            "description": "0 keeps everything. Otherwise keep only URLs whose sitemap lastmod (or news publication date) is within this many days. URLs without a date are dropped when this is set. Removed pages in changes mode are always reported.",
            "default": 0
          },
          "trackChanges": {
            "title": "Track changes between runs",
            "type": "boolean",
            "description": "Remember each website's URLs and lastmod dates so the next run can mark pages as new, updated or removed. Always on in changes mode. Schedule the Actor daily or weekly to monitor a site.",
            "default": true
          },
          "stateKey": {
            "title": "Tracking key",
            "type": "string",
            "description": "Optional. Separate change histories for the same website, for example one per client or per schedule. Letters, digits, - and _ only."
          },
          "checkStatus": {
            "title": "Check HTTP status of URLs",
            "type": "boolean",
            "description": "Request each output URL (HEAD, GET fallback) and add the status code, redirect chain, final URL, X-Robots-Tag and response time. Charged per checked URL. In summary mode a sample is checked for the health report. URLs blocked by robots.txt are skipped and free.",
            "default": false
          },
          "maxStatusChecksPerSite": {
            "title": "Max status checks per website",
            "minimum": 1,
            "maximum": 50000,
            "type": "integer",
            "description": "Upper limit on checked URLs per website, to keep cost and load on the site predictable.",
            "default": 1000
          },
          "maxUrlsPerSite": {
            "title": "Max URLs read per website",
            "minimum": 1,
            "maximum": 500000,
            "type": "integer",
            "description": "Stop reading sitemaps after this many unique URLs. Removed pages are only reported when the full sitemap was read, so raise this for large sites you monitor.",
            "default": 20000
          },
          "maxSitemapsPerSite": {
            "title": "Max sitemap files per website",
            "minimum": 1,
            "maximum": 5000,
            "type": "integer",
            "description": "Upper limit on sitemap files (including nested index files) fetched per website.",
            "default": 500
          },
          "concurrency": {
            "title": "Websites in parallel",
            "minimum": 1,
            "maximum": 10,
            "type": "integer",
            "description": "How many websites are read at the same time. Requests to the same host are always paced.",
            "default": 3
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}