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 | Mandatory | Description |
|---|---|---|---|
| mode | ENUM | No | Allowed value: async |
| maxUrls | Integer | No | Maximum number of URLs to return. Minimum 1, maximum 250000. |
| includeMetadata | ENUM | No | Allowed values: true, 1 |
Request Body
| Parameter | Type | Mandatory | Description |
|---|---|---|---|
| url | String | Yes | 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 | Mandatory | Description |
|---|---|---|---|
| success | Boolean | Yes | Indicates whether the request succeeded. |
| data | Object | Yes | 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 | No | Metadata about sitemap discovery and processing. |
| data.meta.inputUrl | String | No | Input URL used for the extraction. |
| data.meta.sourceType | ENUM | No | Source type. Allowed values: website, sitemap. |
| data.meta.discoveryMethod | ENUM | No | Discovery method. Allowed values: direct, robots_txt, sitemap_xml. |
| data.meta.discoveredSitemaps | String Array | No | Discovered sitemap URLs. |
| data.meta.allProcessedSitemaps | String Array | No | All sitemap URLs processed. |
| data.urls | Object Array | No | Array of URL entries. Returns URL strings when includeMetadata=false, or objects when includeMetadata=true. |
| data.urls[].url | String | No | URL value for a sitemap entry object. |
| data.urls[].lastmod | String | No | Last modification date or null. |
| data.urls[].priority | Number | No | Priority value or null. |
| data.urls[].changefreq | String | No | Change frequency or null. |
| data.partial | Boolean | No | Indicates whether the URL set is partial. |
| data.summary | Object | No | Aggregated counts and processing metrics. |
| data.summary.uniqueUrls | Integer | No | Count of unique URLs. |
| data.summary.limitReached | Boolean | No | Indicates whether the URL limit was reached. |
| data.summary.totalUrlsFound | Integer | No | Total URLs found before deduplication or limiting. |
| data.summary.processingTimeMs | Integer | No | Processing time in milliseconds. |
| data.summary.duplicatesRemoved | Integer | No | Number of duplicate URLs removed. |
| data.summary.sitemapsProcessed | Integer | No | Number of sitemaps processed. |
| data.summary.invalidUrlsSkipped | Integer | No | Number of invalid URLs skipped. |
| data.summary.sitemapsDiscovered | Integer | No | Number of sitemaps discovered. |
| data.summary.urlSitemapsProcessed | Integer | No | Number of URL sitemaps processed. |
| data.summary.sitemapIndexesProcessed | Integer | No | Number of sitemap indexes processed. |
| data.warnings | String Array | No | Warning messages. |
| data.limitReason | ENUM | No | Limit reason. Allowed values: MAX_URLS_REACHED, null. |
| data.jobId | String | No | Async job identifier. |
| data.status | ENUM | No | Job status. Allowed values: pending, running. |
| data.message | String | No | 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.