> For the complete documentation index see https://domscan.net/llms.txt. Markdown versions of every docs page are available by appending .md to the page URL.

Source: https://domscan.net/es/docs/products/sitemap-audit

# API de API de auditoría de sitemaps XML

Encuentra y audita sitemaps XML con número de URL, actualización de lastmod y problemas del protocolo. Usa esta referencia para elegir una operación e integrar su contrato de respuesta documentado.

[Ver página del producto](https://domscan.net/es/sitemap-audit-api)

## Operaciones

GET `/v1/sitemaps` [Ver referencia de API](https://domscan.net/es/docs/products/sitemap-audit#getSitemapAudit)

## GET `/v1/sitemaps`

Operación: `getSitemapAudit`
Créditos y autenticación: 2
Autenticación obligatoria

GET /v1/sitemaps Créditos: 2

#### Parámetros de consulta

| Parámetro | Tipo | obligatorio |
| --- | --- | --- |
| url | string | opcional |
| domain | string | opcional |
| sitemap | string | opcional |
| max_sitemaps | integer Predeterminado `5` | opcional |

#### Campos de respuesta

| Campo | Tipo |
| --- | --- |
| `classification` | object |
| `classification.status` | string |
| `classification.reason` | string |
| `classification.evidence` | object |
| `classification.evidence.source` | string |
| `classification.evidence.method` | string |
| `classification.evidence.observed_at` | string |
| `classification.evidence.detail` | string |
| `classification.checked_at` | string |
| `url` | string |
| `domain` | string |
| `origin` | string |
| `status` | string |
| `checked_at` | string |
| `fetch` | object |
| `fetch.checked_url` | string |
| `fetch.http_status` | integer \| null |
| `fetch.final_url` | string \| null |
| `fetch.via_proxy` | boolean \| null |
| `robots_txt` | object |
| `robots_txt.status` | string |
| `robots_txt.url` | string |
| `robots_txt.http_status` | integer \| null |
| `robots_txt.declared_sitemaps[]` | object[] |
| `robots_txt.declared_sitemaps[]` | object |
| `robots_txt.declared_sitemaps[].url` | string |
| `robots_txt.declared_sitemaps[].same_site` | boolean |
| `sitemaps[]` | object[] |
| `sitemaps[]` | object |
| `sitemaps[].url` | string |
| `sitemaps[].source` | string |
| `sitemaps[].parent` | string \| null |
| `sitemaps[].status` | string |
| `sitemaps[].http_status` | integer \| null |
| `sitemaps[].final_url` | string \| null |
| `sitemaps[].via_proxy` | boolean \| null |
| `sitemaps[].content_type` | string \| null |
| `sitemaps[].bytes` | integer \| null |
| `sitemaps[].type` | string \| null |
| `sitemaps[].url_count` | integer |
| `sitemaps[].child_sitemap_count` | integer |
| `sitemaps[].lastmod` | object |
| `sitemaps[].lastmod.newest` | string \| null |
| `sitemaps[].lastmod.oldest` | string \| null |
| `sitemaps[].lastmod.with_lastmod_ratio` | number \| null |
| `sitemaps[].extensions` | object |
| `sitemaps[].extensions.images` | boolean |
| `sitemaps[].extensions.videos` | boolean |
| `sitemaps[].extensions.news` | boolean |
| `sitemaps[].extensions.hreflang` | boolean |
| `sitemaps[].counts` | object |
| `sitemaps[].counts.invalid_loc` | integer |
| `sitemaps[].counts.missing_loc` | integer |
| `sitemaps[].counts.loc_too_long` | integer |
| `sitemaps[].counts.cross_host_urls` | integer |
| `sitemaps[].counts.protocol_mismatch_urls` | integer |
| `sitemaps[].counts.duplicate_urls` | integer |
| `sitemaps[].counts.invalid_lastmod` | integer |
| `sitemaps[].counts.future_lastmod` | integer |
| `sitemaps[].counts.cross_site_child_sitemaps` | integer |
| `sitemaps[].issues[]` | string[] |
| `sitemaps[].sample_urls[]` | string[] |
| `totals` | object |
| `totals.sitemaps_checked` | integer |
| `totals.sitemaps_discovered` | integer |
| `totals.urls_counted` | integer |
| `totals.budget_exhausted` | boolean |
| `freshness` | object |
| `freshness.newest_lastmod` | string \| null |
| `freshness.days_since_newest` | integer \| null |
| `issues[]` | string[] |
| `caveats[]` | string[] |

#### Solicitud de ejemplo

```bash
curl -H "X-API-Key: $DOMSCAN_API_KEY" "https://domscan.net/v1/sitemaps?url=https%3A%2F%2Fexample.com&domain=example.com&sitemap=https%3A%2F%2Fexample.com%2Fsitemap_index.xml&max_sitemaps=5"
```

```javascript
const response = await fetch("https://domscan.net/v1/sitemaps?url=https%3A%2F%2Fexample.com&domain=example.com&sitemap=https%3A%2F%2Fexample.com%2Fsitemap_index.xml&max_sitemaps=5", {
  headers: { "X-API-Key": process.env.DOMSCAN_API_KEY },
});
const data = await response.json();
console.log(data);
```

```python
import os
import requests

response = requests.get(
    "https://domscan.net/v1/sitemaps?url=https%3A%2F%2Fexample.com&domain=example.com&sitemap=https%3A%2F%2Fexample.com%2Fsitemap_index.xml&max_sitemaps=5",
    headers={"X-API-Key": os.environ["DOMSCAN_API_KEY"]},
)
print(response.json())
```

```go
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
)

func main() {
	req, err := http.NewRequest(http.MethodGet, "https://domscan.net/v1/sitemaps?url=https%3A%2F%2Fexample.com&domain=example.com&sitemap=https%3A%2F%2Fexample.com%2Fsitemap_index.xml&max_sitemaps=5", nil)
	if err != nil {
		panic(err)
	}
	req.Header.Set("X-API-Key", os.Getenv("DOMSCAN_API_KEY"))

	resp, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer resp.Body.Close()

	data, err := io.ReadAll(resp.Body)
	if err != nil {
		panic(err)
	}
	fmt.Println(resp.Status, string(data))
}
```

```ruby
require "json"
require "net/http"

uri = URI("https://domscan.net/v1/sitemaps?url=https%3A%2F%2Fexample.com&domain=example.com&sitemap=https%3A%2F%2Fexample.com%2Fsitemap_index.xml&max_sitemaps=5")
request = Net::HTTP::Get.new(uri)
request["X-API-Key"] = ENV.fetch("DOMSCAN_API_KEY")

response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) do |http|
  http.request(request)
end
puts JSON.pretty_generate(JSON.parse(response.body))
```

#### Respuesta de ejemplo

```json
{
  "url": "https://example.com/",
  "domain": "example.com",
  "origin": "https://example.com",
  "status": "found",
  "checked_at": "2026-10-09T12:00:00.000Z",
  "fetch": {
    "checked_url": "https://example.com/robots.txt",
    "http_status": 200,
    "final_url": "https://example.com/robots.txt",
    "via_proxy": true
  },
  "robots_txt": {
    "status": "found",
    "url": "https://example.com/robots.txt",
    "http_status": 200,
    "declared_sitemaps": [
      {
        "url": "https://example.com/sitemap_index.xml",
        "same_site": true
      },
      {
        "url": "https://sitemaps.example.net/example.xml",
        "same_site": false
      }
    ]
  },
  "sitemaps": [
    {
      "url": "https://example.com/sitemap_index.xml",
      "source": "robots",
      "parent": null,
      "status": "ok",
      "http_status": 200,
      "final_url": "https://example.com/sitemap_index.xml",
      "via_proxy": true,
      "content_type": "application/xml; charset=utf-8",
      "bytes": 412,
      "type": "sitemapindex",
      "url_count": 0,
      "child_sitemap_count": 2,
      "lastmod": {
        "newest": "2026-10-01T00:00:00.000Z",
        "oldest": "2026-10-01T00:00:00.000Z",
        "with_lastmod_ratio": 1
      },
      "extensions": {
        "images": false,
        "videos": false,
        "news": false,
        "hreflang": false
      },
      "counts": {
        "invalid_loc": 0,
        "missing_loc": 0,
        "loc_too_long": 0,
        "cross_host_urls": 0,
        "protocol_mismatch_urls": 0,
        "duplicate_urls": 0,
        "invalid_lastmod": 0,
        "future_lastmod": 0,
        "cross_site_child_sitemaps": 0
      },
      "issues": [],
      "sample_urls": [
        "https://example.com/posts.xml",
        "https://example.com/pages.xml"
      ]
    },
    {
      "url": "https://example.com/posts.xml",
      "source": "index_child",
      "parent": "https://example.com/sitemap_index.xml",
      "status": "ok",
      "http_status": 200,
      "final_url": "https://example.com/posts.xml",
      "via_proxy": true,
      "content_type": "application/xml",
      "bytes": 18234,
      "type": "urlset",
      "url_count": 120,
      "child_sitemap_count": 0,
      "lastmod": {
        "newest": "2026-10-05T00:00:00.000Z",
        "oldest": "2024-03-11T00:00:00.000Z",
        "with_lastmod_ratio": 0.975
      },
      "extensions": {
        "images": true,
        "videos": false,
        "news": false,
        "hreflang": true
      },
      "counts": {
        "invalid_loc": 0,
        "missing_loc": 0,
        "loc_too_long": 0,
        "cross_host_urls": 0,
        "protocol_mismatch_urls": 2,
        "duplicate_urls": 1,
        "invalid_lastmod": 3,
        "future_lastmod": 0,
        "cross_site_child_sitemaps": 0
      },
      "issues": [
        "protocol_mismatch",
        "duplicate_urls",
        "invalid_lastmod"
      ],
      "sample_urls": [
        "https://example.com/blog/a",
        "https://example.com/blog/b",
        "https://example.com/blog/c",
        "http://example.com/blog/d",
        "https://example.com/blog/e"
      ]
    },
    {
      "url": "https://example.com/pages.xml",
      "source": "index_child",
      "parent": "https://example.com/sitemap_index.xml",
      "status": "unknown",
      "http_status": 429,
      "final_url": "https://example.com/pages.xml",
      "via_proxy": true,
      "content_type": "text/html",
      "bytes": 162,
      "type": null,
      "url_count": 0,
      "child_sitemap_count": 0,
      "lastmod": {
        "newest": null,
        "oldest": null,
        "with_lastmod_ratio": null
      },
      "extensions": {
        "images": false,
        "videos": false,
        "news": false,
        "hreflang": false
      },
      "counts": {
        "invalid_loc": 0,
        "missing_loc": 0,
        "loc_too_long": 0,
        "cross_host_urls": 0,
        "protocol_mismatch_urls": 0,
        "duplicate_urls": 0,
        "invalid_lastmod": 0,
        "future_lastmod": 0,
        "cross_site_child_sitemaps": 0
      },
      "issues": [
        "rate_limited"
      ],
      "sample_urls": []
    }
  ],
  "totals": {
    "sitemaps_checked": 3,
    "sitemaps_discovered": 4,
    "urls_counted": 120,
    "budget_exhausted": false
  },
  "freshness": {
    "newest_lastmod": "2026-10-05T00:00:00.000Z",
    "days_since_newest": 4
  },
  "issues": [
    "cross_site_sitemap_declared",
    "protocol_mismatch",
    "duplicate_urls",
    "invalid_lastmod",
    "rate_limited"
  ],
  "caveats": [
    "counts_cover_fetched_files_only",
    "cross_site_sitemaps_not_fetched"
  ]
}
```

#### Códigos de estado HTTP

- `200` OK
- `400` Solicitud incorrecta
- `401` No autorizado
- `402` Pago requerido
- `429` Demasiadas solicitudes
- `502` Puerta de enlace incorrecta

## Recursos de referencia

[OpenAPI 3.0](https://domscan.net/v1/openapi.json)
[Postman](https://domscan.net/v1/postman.json)
[MCP](https://domscan.net/es/mcp-domain-checker)
