# Sitemap URL Extractor (`fetch_cat/sitemap-url-extractor`) Actor

Extract clean URL inventories from XML sitemaps and sitemap indexes with filters, deduplication, and metadata.

- **URL**: https://apify.com/fetch\_cat/sitemap-url-extractor.md
- **Developed by:** [Hanna Nosova](https://apify.com/fetch_cat) (community)
- **Categories:** SEO tools, Developer tools, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.02 / 1,000 result extracteds

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## Sitemap URL Extractor

Extract clean URL inventories from XML sitemaps and sitemap indexes.

Use this actor to turn public sitemap files into a structured dataset of URLs with source sitemap metadata, crawl depth, last modified dates, change frequency, priority, HTTP status, and discovery timestamps.

### Ready-to-run examples

- [Compare Multiple Sitemap Url Inventories](https://apify.com/fetch_cat/sitemap-url-extractor/examples/compare-multiple-sitemap-url-inventories)
- [Extract Product Urls From Sitemap](https://apify.com/fetch_cat/sitemap-url-extractor/examples/extract-product-urls-from-sitemap)
- [Build Docs Crawler Seed List](https://apify.com/fetch_cat/sitemap-url-extractor/examples/build-docs-crawler-seed-list)
- [Extract Blog Urls From Sitemap](https://apify.com/fetch_cat/sitemap-url-extractor/examples/extract-blog-urls-from-sitemap)
- [Extract Apify Sitemap Urls](https://apify.com/fetch_cat/sitemap-url-extractor/examples/extract-apify-sitemap-urls)

[View all ready-to-run examples](https://apify.com/fetch_cat/sitemap-url-extractor/examples)

### What does Sitemap URL Extractor do?

Sitemap URL Extractor reads website sitemap files and saves every discovered URL as a dataset item.

It supports both direct sitemap URLs and website root URLs.

If you enter a root such as `https://apify.com`, the actor tries common sitemap locations automatically.

If the sitemap is a sitemap index, the actor follows child sitemaps recursively until it reaches your limits.

You can filter URLs with include and exclude patterns.

You can deduplicate URLs across many sitemap files.

You can keep extraction limited to the same hostname as your original input.

### Who is it for?

- 🔎 **SEO teams** auditing indexable URL inventories.
- 🧪 **Technical SEO consultants** checking sitemap coverage before crawls.
- 🕷️ **Crawler operators** seeding downstream crawling jobs with verified URLs.
- 📈 **Growth engineers** monitoring new pages by section.
- 🧰 **Data teams** collecting public URL lists for enrichment pipelines.
- 🧾 **Content teams** exporting article or documentation URLs.
- 🛠️ **QA teams** building URL regression test sets.

### Why use this actor?

Sitemaps are one of the fastest ways to understand a public website structure.

Manual sitemap inspection gets slow when a site has dozens or hundreds of sitemap files.

This actor automates the repetitive parts:

- 🧭 Discover sitemap indexes.
- 🔁 Follow recursive sitemap files.
- 🧹 Normalize and deduplicate URLs.
- 🎯 Keep only sections you care about.
- 📦 Export results in JSON, CSV, Excel, XML, RSS, or HTML from Apify datasets.

### Typical use cases

- Build a seed list for a crawler.
- Export all blog post URLs from a site.
- Compare sitemap URL counts over time.
- Find URLs that changed recently by using `lastmod`.
- Audit whether product, category, help, or documentation pages are present.
- Feed URLs into rank tracking, monitoring, or enrichment workflows.
- Create a clean URL list for link checking.

### Input overview

The main input is `startUrls`.

You can provide one or more sitemap URLs.

You can also provide website roots.

Example sitemap input:

```json
{
  "startUrls": [
    { "url": "https://apify.com/sitemap.xml" }
  ],
  "maxUrls": 100,
  "maxSitemaps": 25
}
````

Example root input:

```json
{
  "startUrls": [
    { "url": "https://apify.com" }
  ],
  "maxUrls": 100,
  "maxSitemaps": 25
}
```

### Input settings

| Setting | JSON key | Type / default | Description |
| --- | --- | --- | --- |
| Sitemap or website URLs | `startUrls` | array, default `[{"url":"https://apify.com/sitemap.xml"}]` | Enter XML sitemap URLs such as https://example.com/sitemap.xml or website roots such as https://example.com. Root URLs try common sitemap paths automatically. |
| Maximum URLs | `maxUrls` | integer, default `20` | Stop after saving this many URL records. |
| Maximum sitemap files | `maxSitemaps` | integer, default `10` | Maximum number of sitemap files to fetch, including recursively discovered child sitemaps. |
| Include URL patterns | `includePatterns` | array, default `[]` | Optional regular expressions. If provided, only URLs matching at least one include pattern are saved. Example: /blog/|/docs/ |
| Exclude URL patterns | `excludePatterns` | array, default `[]` | Optional regular expressions for URLs to skip. Example: /tag/|/author/ |
| Same domain only | `sameDomainOnly` | boolean, default `true` | Keep only sitemap files and URLs on the same hostname as the original input URL. |
| Deduplicate URLs | `dedupe` | boolean, default `true` | Save each normalized URL only once across all processed sitemaps. |
| Proxy configuration | `proxyConfiguration` | object, default `{"useApifyProxy":false}` | Optional proxy settings. Most public sitemaps work without proxies; enable Apify Proxy only for sites that block direct requests. |

### Output data

Each dataset item is an extracted sitemap URL.

| Field | Description |
| --- | --- |
| `url` | Normalized extracted URL. |
| `sourceSitemapUrl` | Sitemap file where the URL was found. |
| `sitemapDepth` | Recursive sitemap depth. Root sitemap is depth `0`. |
| `loc` | URL from the sitemap `<loc>` value. |
| `lastmod` | Optional sitemap last modified value. |
| `changefreq` | Optional sitemap change frequency. |
| `priority` | Optional sitemap priority as a number. |
| `contentType` | HTTP content type returned for the sitemap file. |
| `statusCode` | HTTP status code returned for the sitemap file. |
| `discoveredAt` | ISO timestamp when the URL was saved. |

### Example input

```json
{
  "startUrls": [
    {
      "url": "https://apify.com/sitemap.xml"
    }
  ],
  "maxUrls": 20,
  "maxSitemaps": 10,
  "includePatterns": [],
  "excludePatterns": [],
  "sameDomainOnly": true,
  "dedupe": true,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

### Example output

```json
{
  "url": "https://apify.com/store",
  "sourceSitemapUrl": "https://apify.com/sitemap.xml",
  "sitemapDepth": 0,
  "loc": "https://apify.com/store",
  "lastmod": "2026-07-01",
  "changefreq": null,
  "priority": null,
  "contentType": "application/xml",
  "statusCode": 200,
  "discoveredAt": "2026-07-03T20:30:00.000Z"
}
```

### Output fields

| JSON key | Label | Type | Description |
| --- | --- | --- | --- |
| `url` | URL | string | Normalized extracted URL. |
| `loc` | Sitemap loc | string | URL from the sitemap <loc> value. |
| `sourceSitemapUrl` | Source sitemap URL | string | Sitemap file where the URL was found. |
| `sitemapDepth` | Sitemap depth | integer | Recursive sitemap depth from the original input. |
| `lastmod` | Last modified | string / null | Optional sitemap last modified value. |
| `changefreq` | Change frequency | string / null | Optional sitemap change frequency value. |
| `priority` | Priority | number / null | Optional sitemap priority value. |
| `contentType` | Content type | string / null | HTTP content type of the source sitemap. |
| `statusCode` | HTTP status | integer / null | HTTP status code of the source sitemap. |
| `discoveredAt` | Discovered at | string | ISO timestamp when the URL was saved. |

### Pricing

This Actor uses Apify pay-per-event pricing. The prices below come from the current Actor pricing configuration. Apify public plans map to Store discount tiers, so the table shows both the user-facing plan context and the pricing tier name. The final price shown in Apify depends on the user account plan and any custom agreement.

| Event | What is charged | Price |
| --- | --- | ---: |
| `start` | One-time fee charged when a run starts. Covers fixed startup cost (init, first HTTP setup). | $0.005 |

| Event | What is charged | Free / no discount | Starter / Bronze | Scale / Silver | Business / Gold | Custom / Platinum | Custom / Diamond |
| --- | --- | ---: | ---: | ---: | ---: | ---: | ---: |
| `result` | Charged per sitemap URL extracted. | $0.028 / 1,000 | $0.024 / 1,000 | $0.019 / 1,000 | $0.015 / 1,000 | $0.012 / 1,000 | $0.01 / 1,000 |

Apify may also charge platform usage for compute, storage, proxies, or data transfer outside this Actor pricing. Check the Actor run and the Apify Pricing tab for the exact cost shown to your account.

### How to run

1. Open the actor on Apify.
2. Add one or more sitemap URLs or website root URLs.
3. Keep the default `maxUrls` for a quick test.
4. Add include or exclude patterns if you only need part of a site.
5. Run the actor.
6. Export the dataset in your preferred format.

### Filtering examples

Save only blog and docs URLs:

```json
{
  "includePatterns": ["/blog/", "/docs/"]
}
```

Skip tag, author, and category pages:

```json
{
  "excludePatterns": ["/tag/", "/author/", "/category/"]
}
```

Keep only product URLs:

```json
{
  "includePatterns": ["/products/"]
}
```

### Tips for best results

- Start with a small `maxUrls` value.
- Use direct sitemap URLs when you know them.
- Use root URLs when you want the actor to try common sitemap paths.
- Keep `sameDomainOnly` enabled unless you expect cross-domain sitemap entries.
- Use include patterns to reduce noise before exporting data.
- Use exclude patterns to remove archive, tag, or parameterized pages.
- Disable dedupe only when you need to see duplicate sitemap coverage.

### Limits and safeguards

`maxUrls` stops the run after enough URL records are saved.

`maxSitemaps` stops recursive sitemap discovery after enough sitemap files are fetched.

These limits protect your budget and make large websites easier to test.

Some websites expose millions of URLs across many sitemap files.

For those sites, run section-specific sitemaps or use include patterns.

### Handling sitemap indexes

Many websites use a sitemap index.

A sitemap index is a sitemap file that points to other sitemap files.

This actor follows those child sitemap files automatically.

The `sitemapDepth` field shows how far a URL was from the original sitemap.

### Handling website root URLs

When you enter a root URL, the actor tries common sitemap locations.

For example, `https://example.com` may expand to common sitemap paths such as `/sitemap.xml`.

If you already know the exact sitemap file, enter it directly for faster runs.

### Integrations

Use the extracted URL dataset with:

- Apify crawlers.
- SEO audit tools.
- Link checkers.
- Content inventory spreadsheets.
- Data enrichment workflows.
- Monitoring jobs that compare datasets over time.
- Webhook automations that trigger when a new run finishes.

### API usage

Run Sitemap URL Extractor from your own code with the Apify API.

**Node.js**

```js
import { ApifyClient } from 'apify-client';

const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const input = {
  "startUrls": [
    {
      "url": "https://apify.com/sitemap.xml"
    }
  ],
  "maxUrls": 20,
  "maxSitemaps": 10,
  "includePatterns": [],
  "excludePatterns": []
};

const run = await client.actor('fetch_cat/sitemap-url-extractor').call(input);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);
```

**Python**

```python
from apify_client import ApifyClient
import os

client = ApifyClient(os.environ["APIFY_TOKEN"])
run = client.actor("fetch_cat/sitemap-url-extractor").call(run_input={
  "startUrls": [
    {
      "url": "https://apify.com/sitemap.xml"
    }
  ],
  "maxUrls": 20,
  "maxSitemaps": 10,
  "includePatterns": [],
  "excludePatterns": []
})
items = client.dataset(run["defaultDatasetId"]).list_items().items
print(items)
```

**cURL**

```bash
curl -X POST "https://api.apify.com/v2/acts/fetch_cat~sitemap-url-extractor/runs?token=$APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"startUrls":[{"url":"https://apify.com/sitemap.xml"}],"maxUrls":20,"maxSitemaps":10,"includePatterns":[],"excludePatterns":[]}'
```

### Use with AI agents via MCP

Sitemap URL Extractor can be used by AI assistants through the hosted Apify MCP server.

**Claude Code setup**

```bash
claude mcp add --transport http apify "https://mcp.apify.com?tools=fetch_cat/sitemap-url-extractor"
```

**Claude Desktop, Cursor, or VS Code JSON config**

```json
{
  "mcpServers": {
    "apify": {
      "url": "https://mcp.apify.com?tools=fetch_cat/sitemap-url-extractor"
    }
  }
}
```

**Example prompts**

- "Run Sitemap URL Extractor with this input JSON and summarize the dataset."
- "Export the latest Sitemap URL Extractor results to a table I can review."
- "Schedule this Actor for monitoring and tell me what changed between runs."

### Legality and ethics

This actor reads public sitemap files that websites publish for crawlers.

Only extract data you are allowed to use.

Respect website terms, robots policies, and applicable laws.

Do not use extracted URLs for spam, abuse, or unauthorized access.

### FAQ

#### Can I enter a website URL instead of a sitemap URL?

Yes. You can enter a website root URL and the actor will try common sitemap locations.

#### Can I extract only one section of a website?

Yes. Use `includePatterns` and `excludePatterns` to keep or skip URL paths.

### Troubleshooting

#### Why did I get fewer URLs than expected?

Check `maxUrls`, `maxSitemaps`, include patterns, exclude patterns, and `sameDomainOnly`.

The website may also have multiple sitemap indexes not linked from the first file.

#### Why did a root URL return no results?

The site may not use a common sitemap path.

Try entering the exact sitemap URL from the site's robots.txt file or documentation.

#### Why are some metadata fields empty?

`lastmod`, `changefreq`, and `priority` are optional sitemap fields.

Many websites omit them.

### Related actors

- [Apple App Store Apps Scraper](https://apify.com/fetch_cat/apple-app-store-apps-scraper)
- [Apple App Store Reviews Scraper](https://apify.com/fetch_cat/apple-app-store-reviews-scraper)
- [Bing SERP & Search Results Scraper](https://apify.com/fetch_cat/bing-search-results-scraper)
- [DuckDuckGo Search Results Scraper](https://apify.com/fetch_cat/duckduckgo-search-results-scraper)
- [Google Ads Transparency Scraper](https://apify.com/fetch_cat/google-ads-transparency-scraper)

### Support

Report bugs, wrong output, blocked runs, or missing fields from the Actor page. Include the Apify run ID or run URL, your input JSON, what you expected, what the Actor returned, and one reproducible public URL so the issue can be tested quickly.

# Actor input Schema

## `startUrls` (type: `array`):

Enter XML sitemap URLs such as https://example.com/sitemap.xml or website roots such as https://example.com. Root URLs try common sitemap paths automatically.

## `maxUrls` (type: `integer`):

Stop after saving this many URL records.

## `maxSitemaps` (type: `integer`):

Maximum number of sitemap files to fetch, including recursively discovered child sitemaps.

## `includePatterns` (type: `array`):

Optional regular expressions. If provided, only URLs matching at least one include pattern are saved. Example: /blog/|/docs/

## `excludePatterns` (type: `array`):

Optional regular expressions for URLs to skip. Example: /tag/|/author/

## `sameDomainOnly` (type: `boolean`):

Keep only sitemap files and URLs on the same hostname as the original input URL.

## `dedupe` (type: `boolean`):

Save each normalized URL only once across all processed sitemaps.

## `proxyConfiguration` (type: `object`):

Optional proxy settings. Most public sitemaps work without proxies; enable Apify Proxy only for sites that block direct requests.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://apify.com/sitemap.xml"
    }
  ],
  "maxUrls": 20,
  "maxSitemaps": 10,
  "includePatterns": [],
  "excludePatterns": [],
  "sameDomainOnly": true,
  "dedupe": true,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

## `overview` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "startUrls": [
        {
            "url": "https://apify.com/sitemap.xml"
        }
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("fetch_cat/sitemap-url-extractor").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "startUrls": [{ "url": "https://apify.com/sitemap.xml" }] }

# Run the Actor and wait for it to finish
run = client.actor("fetch_cat/sitemap-url-extractor").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "startUrls": [
    {
      "url": "https://apify.com/sitemap.xml"
    }
  ]
}' |
apify call fetch_cat/sitemap-url-extractor --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=fetch_cat/sitemap-url-extractor",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Sitemap URL Extractor",
        "description": "Extract clean URL inventories from XML sitemaps and sitemap indexes with filters, deduplication, and metadata.",
        "version": "0.1",
        "x-build-id": "cQVELDUSZciSjTh0q"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/fetch_cat~sitemap-url-extractor/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-fetch_cat-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/fetch_cat~sitemap-url-extractor/runs": {
            "post": {
                "operationId": "runs-sync-fetch_cat-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/fetch_cat~sitemap-url-extractor/run-sync": {
            "post": {
                "operationId": "run-sync-fetch_cat-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": "Sitemap or website URLs",
                        "type": "array",
                        "description": "Enter XML sitemap URLs such as https://example.com/sitemap.xml or website roots such as https://example.com. Root URLs try common sitemap paths automatically.",
                        "items": {
                            "type": "object",
                            "required": [
                                "url"
                            ],
                            "properties": {
                                "url": {
                                    "type": "string",
                                    "title": "URL of a web page",
                                    "format": "uri"
                                }
                            }
                        }
                    },
                    "maxUrls": {
                        "title": "Maximum URLs",
                        "minimum": 1,
                        "maximum": 100000,
                        "type": "integer",
                        "description": "Stop after saving this many URL records.",
                        "default": 20
                    },
                    "maxSitemaps": {
                        "title": "Maximum sitemap files",
                        "minimum": 1,
                        "maximum": 10000,
                        "type": "integer",
                        "description": "Maximum number of sitemap files to fetch, including recursively discovered child sitemaps.",
                        "default": 10
                    },
                    "includePatterns": {
                        "title": "Include URL patterns",
                        "type": "array",
                        "description": "Optional regular expressions. If provided, only URLs matching at least one include pattern are saved. Example: /blog/|/docs/",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "excludePatterns": {
                        "title": "Exclude URL patterns",
                        "type": "array",
                        "description": "Optional regular expressions for URLs to skip. Example: /tag/|/author/",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "sameDomainOnly": {
                        "title": "Same domain only",
                        "type": "boolean",
                        "description": "Keep only sitemap files and URLs on the same hostname as the original input URL.",
                        "default": true
                    },
                    "dedupe": {
                        "title": "Deduplicate URLs",
                        "type": "boolean",
                        "description": "Save each normalized URL only once across all processed sitemaps.",
                        "default": true
                    },
                    "proxyConfiguration": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Optional proxy settings. Most public sitemaps work without proxies; enable Apify Proxy only for sites that block direct requests.",
                        "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
