{
  "openapi": "3.0.1",
  "info": {
    "title": "Sitemap URL Extractor — All Page URLs, Lastmod & Hreflang",
    "description": "Get every page URL of a website from its XML sitemaps: robots.txt discovery, sitemap indexes, .gz, text and RSS sitemaps. Each URL comes with lastmod, changefreq, priority, images, videos, news and hreflang alternates. Filters, dedupe, change detection. $0.40 per 1,000 URLs.",
    "version": "0.1",
    "x-build-id": "RNw4euMYapoiHfMEr"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/actor-forge~sitemap-extractor/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-actor-forge-sitemap-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/actor-forge~sitemap-extractor/runs": {
      "post": {
        "operationId": "runs-sync-actor-forge-sitemap-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/actor-forge~sitemap-extractor/run-sync": {
      "post": {
        "operationId": "run-sync-actor-forge-sitemap-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": [
          "urls"
        ],
        "properties": {
          "urls": {
            "title": "Websites, domains or sitemap URLs",
            "type": "array",
            "description": "Domains (example.com), home pages, or direct sitemap URLs (sitemap.xml, sitemap_index.xml, .xml.gz, sitemap.txt, RSS/Atom feeds). For a domain or page, the site's sitemaps are found automatically from robots.txt and the usual paths. A page URL stands for its whole site: use the URL filters to narrow it down.",
            "items": {
              "type": "string"
            }
          },
          "discover": {
            "title": "Find sitemaps automatically",
            "type": "boolean",
            "description": "For domains and page URLs, read the Sitemap: lines in robots.txt, and when there are none try /sitemap.xml, /sitemap_index.xml, /sitemap-index.xml, /wp-sitemap.xml, /sitemap.xml.gz, /sitemap.txt and other common paths. Turn off to read only the exact URLs you give.",
            "default": true
          },
          "includeGlobs": {
            "title": "Only URLs matching",
            "type": "array",
            "description": "Keep only page URLs matching at least one of these patterns. `*` matches anything except `/`, `**` matches anything, e.g. `https://example.com/blog/**` or `**/products/*`. Leave empty to keep all.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "excludeGlobs": {
            "title": "Skip URLs matching",
            "type": "array",
            "description": "Drop page URLs matching any of these patterns, e.g. `**/tag/**` or `**?page=*`. Filtered URLs are free.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "lastmodAfter": {
            "title": "Modified after",
            "type": "string",
            "description": "Only URLs whose <lastmod> is after this point: a date like 2026-10-01, or a window like \"7 days\", \"24 hours\" or \"3 months\". URLs without a lastmod are left out when this is set. Child sitemaps an index marks as older are not even downloaded."
          },
          "lastmodBefore": {
            "title": "Modified before",
            "type": "string",
            "description": "Only URLs whose <lastmod> is before this point (same formats as above). URLs without a lastmod are left out when this is set."
          },
          "maxUrls": {
            "title": "Max URLs",
            "minimum": 1,
            "maximum": 1000000,
            "type": "integer",
            "description": "Stop after delivering this many URLs in total.",
            "default": 100000
          },
          "maxSitemaps": {
            "title": "Max sitemap files",
            "minimum": 1,
            "maximum": 10000,
            "type": "integer",
            "description": "Read at most this many sitemap files (indexes included). Big sites split their URLs over hundreds of files.",
            "default": 500
          },
          "includeImages": {
            "title": "Include image, video and news details",
            "type": "boolean",
            "description": "Return each URL's image:image (loc, title, caption), video:video (title, thumbnail, content and player URLs, duration, date) and news:news (title, publication, date) entries. Same price either way.",
            "default": true
          },
          "includeAlternates": {
            "title": "Include hreflang alternates",
            "type": "boolean",
            "description": "Return each URL's xhtml:link hreflang alternates (language versions). Same price either way.",
            "default": true
          },
          "dedupe": {
            "title": "Remove duplicate URLs",
            "type": "boolean",
            "description": "Deliver each URL once, even when it is listed in several sitemaps. Duplicates are free.",
            "default": true
          },
          "checkStatus": {
            "title": "Check each URL's HTTP status",
            "type": "boolean",
            "description": "Also request every delivered URL (HEAD, or GET when HEAD is refused) and return its status code: 200, 301, 404… Redirects are reported, not followed. Charged separately per URL checked, and slower: about 2 requests at a time per site.",
            "default": false
          },
          "detectChanges": {
            "title": "Compare with the previous run",
            "type": "boolean",
            "description": "Save this run's URL list and, next time, mark each URL new, updated (lastmod changed) or unchanged, and list URLs that disappeared in the run summary. Runs with the same URLs and filters (or the same state key) are compared.",
            "default": false
          },
          "onlyChanges": {
            "title": "Only new and updated URLs",
            "type": "boolean",
            "description": "With change detection on: deliver only new and updated URLs. Unchanged URLs are skipped and free, so a scheduled run only pays for what changed.",
            "default": false
          },
          "stateKey": {
            "title": "State key",
            "type": "string",
            "description": "Optional name for the saved URL list (letters, digits, - and _), e.g. \"my-shop-weekly\". Leave empty to derive it from the URLs and filters."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}