A sitemap is a promise that a set of URLs exists and is worth crawling. The promise breaks quietly. A child map starts returning a 500, an index keeps pointing at a file that was deleted, a plugin switches to compressed output, and the search console shows a number that nobody can explain. The sitemap endpoint reads the sitemap index, follows the child maps and reports what it found.
curl "https://api2.globus.studio/v2/sitemap?url=https%3A%2F%2Fglobus.studio%2F"
What the response counts
The top level returns the map type, the list of maps, the total URL count, how many URLs carry lastmod, and the oldest and newest date in the set. The date range is the fastest way to see a map that stopped updating. A blog map with a lastmod from last year is either a stale cache or a publishing pipeline that broke months ago.
Each map in the list has its own status, type and URL count. The type is index for a map of maps, urlset for a page list, compressed for a gzip file and unknown for anything that does not parse.
Errors stay in the answer
One dead child map should not hide the other nine. A map that answers 500, returns HTML instead of XML or uses an unknown root element is listed in errors with the reason, and the rest of the index is still counted.
That design matters for a monitor. A request that fails as a whole tells an operator that something is wrong; a request that lists ten maps and one error tells them what to fix.
Compressed maps
Gzip is the usual output for a large sitemap and the usual reason a naive parser gives up. The server does not promise the zlib extension, so the endpoint does not unpack compressed files. It reports compressed: true and marks the map, which is enough to know that the count is incomplete rather than zero.
How the start URL is chosen
For a site root the endpoint tries /sitemap.xml, then /sitemap_index.xml, then /wp-sitemap.xml, and stops at the first map that answers 200. The order covers the common WordPress and static setups without asking the user to know which one is in use.
A full path to a map skips the search and reads that address directly.
Limits
Ten maps and three levels of nesting. A site with more maps gets truncated: true, and the count covers the part that was read. The limit keeps one request from turning into a crawl of someone else’s server.
The size limit is 8 MB per map. That is enough for a normal site and well below the size the protocol allows for one uncompressed file, so a site that ships huge maps gets a truncated answer instead of a timeout.
Answers are cached for an hour. That matches how often a sitemap changes on a normal site and keeps a monitor from hitting the origin on every run.
A short checklist
Compare the URL count with the number of published pages. Look at the lastmod range. Open every map in errors. A sitemap that is smaller than the site is a real problem, and a sitemap that is much larger usually includes pagination, tags or filtered URLs that dilute the crawl budget.
Treat lastmod as a signal rather than proof. Some plugins stamp every URL with the build time, which makes the range look fresh while the pages have not changed. A date that moves every day for every URL is a bug in the generator, and it trains crawlers to ignore the field.
The catalogue page has the parameter table and a live example: sitemap API.