About this endpoint
What it does
Extracts all URLs discovered from a website’s sitemaps. It accepts either a website URL or a direct sitemap URL, and can return the URLs immediately or start an async job depending on the selected query mode.
Query Parameter(s)
| Attribute | Type | Description |
|---|---|---|
| mode | ENUM | Allowed value: async |
| maxUrls | Integer | Maximum number of URLs to return. Minimum 1, maximum 250000. |
| includeMetadata | ENUM | Allowed values: true, 1 |
Request Body
| Parameter | Type | Description |
|---|---|---|
| url | String | Website URL or direct sitemap URL. Must be a valid URI. If the path ends in .xml, .xml.gz, or contains sitemap, it is used directly; otherwise robots.txt is consulted and /sitemap.xml is tried as a fallback. |
Response
Returns a JSON object with a success boolean field and a data object field. The success response is either the synchronous result payload or an async job payload, depending on the request mode.
| Parameter | Type | Description |
|---|---|---|
| success | Boolean | Indicates whether the request succeeded. |
| data | Object | Success payload. In the synchronous shape, this object includes meta, urls, partial, summary, warnings, and limitReason. In the async shape, this object includes jobId, status, and message. |
| data.meta | Object | Metadata about sitemap discovery and processing. |
| data.meta.inputUrl | String | Input URL used for the extraction. |
| data.meta.sourceType | ENUM | Source type. Allowed values: website, sitemap. |
| data.meta.discoveryMethod | ENUM | Discovery method. Allowed values: direct, robots_txt, sitemap_xml. |
| data.meta.discoveredSitemaps | String Array | Discovered sitemap URLs. |
| data.meta.allProcessedSitemaps | String Array | All sitemap URLs processed. |
| data.urls | Object Array | Array of URL entries. Returns URL strings when includeMetadata=false, or objects when includeMetadata=true. |
| data.urls[].url | String | URL value for a sitemap entry object. |
| data.urls[].lastmod | String | Last modification date or null. |
| data.urls[].priority | Number | Priority value or null. |
| data.urls[].changefreq | String | Change frequency or null. |
| data.partial | Boolean | Indicates whether the URL set is partial. |
| data.summary | Object | Aggregated counts and processing metrics. |
| data.summary.uniqueUrls | Integer | Count of unique URLs. |
| data.summary.limitReached | Boolean | Indicates whether the URL limit was reached. |
| data.summary.totalUrlsFound | Integer | Total URLs found before deduplication or limiting. |
| data.summary.processingTimeMs | Integer | Processing time in milliseconds. |
| data.summary.duplicatesRemoved | Integer | Number of duplicate URLs removed. |
| data.summary.sitemapsProcessed | Integer | Number of sitemaps processed. |
| data.summary.invalidUrlsSkipped | Integer | Number of invalid URLs skipped. |
| data.summary.sitemapsDiscovered | Integer | Number of sitemaps discovered. |
| data.summary.urlSitemapsProcessed | Integer | Number of URL sitemaps processed. |
| data.summary.sitemapIndexesProcessed | Integer | Number of sitemap indexes processed. |
| data.warnings | String Array | Warning messages. |
| data.limitReason | ENUM | Limit reason. Allowed values: MAX_URLS_REACHED, null. |
| data.jobId | String | Async job identifier. |
| data.status | ENUM | Job status. Allowed values: pending, running. |
| data.message | String | Status message for the async job. |
Notes
This endpoint supports an async mode when mode=async. In that case it returns immediately with data.jobId, data.status, and data.message; poll the corresponding job-check flow using the returned jobId until the status reaches a terminal state.



