{
  "openapi": "3.0.1",
  "info": {
    "title": "Sitemap URL Extractor - All Website URLs, New & Removed Pages",
    "description": "Get every URL of any website from its sitemap.xml: nested sitemap indexes, .xml.gz, text sitemaps, robots.txt discovery. Export to CSV, JSON or Excel. Track new and removed pages between runs. Optional 404 status check. Streams millions of URLs. Pay per URL, no proxy needed.",
    "version": "0.1",
    "x-build-id": "fIMMzbEIkY8spBdLn"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/bruco3~sitemap-url-extractor/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-bruco3-sitemap-url-extractor",
        "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/bruco3~sitemap-url-extractor/runs": {
      "post": {
        "operationId": "runs-sync-bruco3-sitemap-url-extractor",
        "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/bruco3~sitemap-url-extractor/run-sync": {
      "post": {
        "operationId": "run-sync-bruco3-sitemap-url-extractor",
        "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": [
          "startUrls"
        ],
        "properties": {
          "startUrls": {
            "title": "Websites or sitemap URLs",
            "type": "array",
            "description": "Paste a website (<code>https://example.com</code>) and the sitemap is found for you via <code>robots.txt</code> and common locations. Or paste a sitemap, sitemap index, <code>.xml.gz</code> or plain-text sitemap URL directly.",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "maxUrls": {
            "title": "Maximum URLs",
            "minimum": 0,
            "type": "integer",
            "description": "Stop after this many URLs across all sites. <code>0</code> means no limit. Use it to cap cost on very large sites.",
            "default": 0
          },
          "includeRegex": {
            "title": "Include only URLs matching",
            "type": "string",
            "description": "Case-insensitive regular expression. Only URLs that match are returned, e.g. <code>/blog/</code> or <code>\\.pdf$</code>."
          },
          "excludeRegex": {
            "title": "Exclude URLs matching",
            "type": "string",
            "description": "Case-insensitive regular expression applied after the include filter, e.g. <code>\\?page=|/tag/</code>."
          },
          "modifiedSince": {
            "title": "Modified since",
            "type": "string",
            "description": "Keep only URLs whose <code>&lt;lastmod&gt;</code> is on or after this date. Accepts an ISO date (<code>2026-01-31</code>) or a relative window like <code>7d</code>, <code>48h</code>, <code>2w</code>. URLs without <code>lastmod</code> are dropped when this is set."
          },
          "deltaMode": {
            "title": "Delta mode — report what changed since the last run",
            "type": "boolean",
            "description": "Remembers the URLs of each site in a named key-value store and marks every URL as <code>added</code>, <code>removed</code> or <code>unchanged</code> compared with the previous run. The first run for a site returns everything as <code>added</code>.",
            "default": false
          },
          "deltaOutput": {
            "title": "Delta output",
            "enum": [
              "changes-only",
              "all"
            ],
            "type": "string",
            "description": "In delta mode, return only the changes (added and removed URLs) or every URL with its change flag.",
            "default": "changes-only"
          },
          "deltaStoreName": {
            "title": "Snapshot store name",
            "type": "string",
            "description": "Name of the key-value store that keeps per-site snapshots between runs. Use different names to track the same site under different filters.",
            "default": "sitemap-url-extractor-snapshots"
          },
          "checkStatus": {
            "title": "Check HTTP status of every URL",
            "type": "boolean",
            "description": "Sends a lightweight HEAD request to each URL and adds <code>statusCode</code> and <code>finalUrl</code>. Slower and billed per checked URL — leave off if you only need the list.",
            "default": false
          },
          "statusConcurrency": {
            "title": "Status check concurrency",
            "minimum": 1,
            "maximum": 100,
            "type": "integer",
            "description": "Parallel HEAD requests when status checking is on. Lower it for fragile servers.",
            "default": 20
          },
          "includeExtensions": {
            "title": "Include image, video, news and hreflang data",
            "type": "boolean",
            "description": "Adds <code>images</code>, <code>videos</code>, <code>newsTitle</code> and <code>alternates</code> from sitemap extensions to each record.",
            "default": true
          },
          "maxSitemaps": {
            "title": "Maximum sitemap files per site",
            "minimum": 1,
            "type": "integer",
            "description": "Safeguard against runaway sitemap indexes.",
            "default": 2000
          },
          "maxDepth": {
            "title": "Maximum index nesting depth",
            "minimum": 0,
            "maximum": 10,
            "type": "integer",
            "description": "How many levels of nested sitemap indexes to follow.",
            "default": 5
          },
          "sitemapConcurrency": {
            "title": "Parallel sitemap downloads",
            "minimum": 1,
            "maximum": 20,
            "type": "integer",
            "description": "How many sitemap files to download at once per site.",
            "default": 6
          },
          "userAgent": {
            "title": "User-Agent",
            "type": "string",
            "description": "Sent with every request. Change it only if a site requires a specific value.",
            "default": "SitemapURLExtractor/1.0 (+https://apify.com/bruco3/sitemap-url-extractor)"
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Not needed for normal use — sitemaps are public files meant for crawlers. Enable only if a site blocks datacenter traffic.",
            "default": {
              "useApifyProxy": false
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}