{
  "openapi": "3.0.1",
  "info": {
    "title": "Sitemap URL Extractor",
    "description": "Find and read website sitemaps, then return one dataset row per page URL with lastmod, priority, changefreq, image, video, news, and hreflang data. The Actor discovers sitemap locations from robots.txt, common paths, and homepage links, and follows sitemap indexes recursively.",
    "version": "1.0",
    "x-build-id": "72v3z719NsMzb2Bmt"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/axiomworks~sitemap-url-extractor/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-axiomworks-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/axiomworks~sitemap-url-extractor/runs": {
      "post": {
        "operationId": "runs-sync-axiomworks-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/axiomworks~sitemap-url-extractor/run-sync": {
      "post": {
        "operationId": "run-sync-axiomworks-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",
        "properties": {
          "startUrls": {
            "title": "Websites or sitemap URLs",
            "type": "array",
            "description": "Full URLs to extract sitemap URLs from: a site root (https://www.gov.uk), any page URL on the site (https://nodejs.org/en/learn), a robots.txt URL, or a direct sitemap URL (.xml, .xml.gz, .txt, RSS/Atom, query strings allowed). Entries must start with http:// or https://; put bare domains like allbirds.com in urls or domains. Read by content: a sitemap is walked directly, a robots.txt gives its Sitemap lines, any other page starts site discovery. A dead site gives 0 records.",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "urls": {
            "title": "URLs (alias)",
            "type": "array",
            "description": "Same as startUrls, as plain strings, e.g. ['allbirds.com', 'https://www.shopify.com/sitemap.xml']. Merged with startUrls.",
            "items": {
              "type": "string"
            }
          },
          "sitemapUrls": {
            "title": "Sitemap URLs (alias)",
            "type": "array",
            "description": "Direct sitemap or sitemap index URLs as strings, e.g. ['https://www.lemonde.fr/sitemap_news.xml']. Gzip (.xml.gz) files are read too. Merged with startUrls.",
            "items": {
              "type": "string"
            }
          },
          "websites": {
            "title": "Websites (alias)",
            "type": "array",
            "description": "Website URLs as strings, e.g. ['https://yoast.com']. The Actor discovers their sitemaps. Merged with startUrls.",
            "items": {
              "type": "string"
            }
          },
          "domains": {
            "title": "Domains (alias)",
            "type": "array",
            "description": "Bare domains as strings, e.g. ['nodejs.org', 'www.gov.uk']; https:// is added. Merged with startUrls.",
            "items": {
              "type": "string"
            }
          },
          "maxItems": {
            "title": "Maximum results (all sites)",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum URL records across all sites together, 0 = unlimited, default 1000. Sites run in input order, so a big first site can use the whole budget; set maxUrlsPerSite to share it. You are charged only for records returned.",
            "default": 1000
          },
          "maxUrlsPerSite": {
            "title": "Maximum URLs per site",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum URL records from each input site, 0 = no per-site limit (still bounded by maxItems), default 0. E.g. 150 with 3 sites and maxItems 450 gives each site up to 150.",
            "default": 0
          },
          "maxSitemapsPerSite": {
            "title": "Maximum sitemap files per site",
            "minimum": 1,
            "type": "integer",
            "description": "Maximum sitemap files (indexes and leaf sitemaps) fetched for each input site, 1 or more, default 500. Large news sites list thousands; lower it for a quick sample.",
            "default": 500
          },
          "maxDepth": {
            "title": "Maximum index depth",
            "minimum": 0,
            "maximum": 20,
            "type": "integer",
            "description": "How many levels of nested sitemap indexes to follow, 0-20, default 5. 0 reads only the root sitemaps; an index inside an index is depth 2.",
            "default": 5
          },
          "maxSitemapBytes": {
            "title": "Maximum sitemap size (bytes)",
            "minimum": 1024,
            "type": "integer",
            "description": "Largest uncompressed sitemap file to read, in bytes, default 62914560 (60 MB). Larger files are skipped and listed as 'too large' in the OUTPUT summary.",
            "default": 62914560
          },
          "includeUrlPattern": {
            "title": "Include URLs matching",
            "type": "string",
            "description": "Keep only page URLs matching this regex, e.g. '/products/|/blog/'. Empty = keep all."
          },
          "excludeUrlPattern": {
            "title": "Exclude URLs matching",
            "type": "string",
            "description": "Drop page URLs matching this regex, e.g. '/tag/|/author/'. Applied after includeUrlPattern."
          },
          "sitemapUrlPattern": {
            "title": "Only child sitemaps matching",
            "type": "string",
            "description": "Follow only child sitemaps (listed in an index) whose URL matches this regex, e.g. 'products' for Shopify stores or '/es/' for one locale. Root sitemaps are always read."
          },
          "modifiedAfter": {
            "title": "Modified on or after",
            "type": "string",
            "description": "Keep only URLs whose lastmod is on or after this date, e.g. 2026-01-01 or 2026-01-01T00:00:00Z. URLs without a lastmod are dropped when this is set."
          },
          "deduplicate": {
            "title": "Deduplicate URLs",
            "type": "boolean",
            "description": "Return each page URL once per site even if several sitemaps list it, default true. Off: one record per listing.",
            "default": true
          },
          "checkPageStatus": {
            "title": "Check page HTTP status",
            "type": "boolean",
            "description": "Send a HEAD request (GET when HEAD is refused) to every returned URL and store the final HTTP status in pageStatus, default false. Adds one request per URL; pageStatus is null when off or on a network error.",
            "default": false
          },
          "requestTimeoutSecs": {
            "title": "Request timeout (seconds)",
            "minimum": 5,
            "maximum": 600,
            "type": "integer",
            "description": "Timeout for each sitemap download in seconds, 5-600, default 60. Raise it for very large sitemaps on slow servers.",
            "default": 60
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Proxy for all requests, default Apify Proxy (datacenter). 403, 429 and 5xx answers are retried twice on a new IP. Use residential proxies only for sites that block datacenter IPs; sitemap files can be tens of MB, so residential traffic adds up.",
            "default": {
              "useApifyProxy": true
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}