# Seo · Content Delivery API

> Content Delivery API reference for seo: GET /seo/llms.txt, GET /seo/llms-full.txt, GET /seo/sitemap.xml, GET /seo/robots.txt, ….

> Markdown version of https://kanorio.com/en/developers/delivery-api/seo. Append `.md` to any developer docs URL for this format. Index: https://kanorio.com/llms.txt · MCP: https://app.kanorio.com/api/mcp

Base URL: `https://{site}/api/v1` · [Errors](https://kanorio.com/en/developers/basics/errors) · [Pagination](https://kanorio.com/en/developers/basics/pagination)

### AI / LLM site index (llms.txt) using externalStorefrontUrl as the base URL

`GET /seo/llms.txt`

- Stability: beta
- Authentication: none

**Parameters**

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `locale` | query | string | no | Locale of the file: page and post titles and summaries from that locale's published translations, URLs with the locale's URL prefix, and a Languages section linking the other locales' files at /{prefix}/llms.txt. One of the site's locales from /site (a code such as `en-US` or the URL prefix such as `en`); omit it for the primary locale. Other values, including locales that are still translating, return 400 UNSUPPORTED_LOCALE. A custom llms.txt applies to the primary locale only. Rewrite /{prefix}/llms.txt on your front end to this endpoint with locale={prefix}. |

**Errors**

| Code | Status | When |
| --- | --- | --- |
| `UNSUPPORTED_LOCALE` | 400 | — |

```bash
curl -X GET "https://{site}/api/v1/seo/llms.txt"
```

### Full site Markdown content (llms-full.txt) using externalStorefrontUrl as the base URL

`GET /seo/llms-full.txt`

- Stability: beta
- Authentication: none

**Parameters**

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `locale` | query | string | no | Locale of the file: page sections and post bodies from that locale's published translations, URLs with the locale's URL prefix, and links to the other locales' files. One of the site's locales from /site (a code such as `en-US` or the URL prefix such as `en`); omit it for the primary locale. Other values, including locales that are still translating, return 400 UNSUPPORTED_LOCALE. A custom llms-full.txt applies to the primary locale only. |

**Errors**

| Code | Status | When |
| --- | --- | --- |
| `UNSUPPORTED_LOCALE` | 400 | — |

```bash
curl -X GET "https://{site}/api/v1/seo/llms-full.txt"
```

### XML sitemap using externalStorefrontUrl as the base URL

`GET /seo/sitemap.xml`

- Stability: beta
- Authentication: none

```bash
curl -X GET "https://{site}/api/v1/seo/sitemap.xml"
```

### robots.txt including AI crawler block rules and Sitemap pointing to externalStorefrontUrl

`GET /seo/robots.txt`

- Stability: beta
- Authentication: none

```bash
curl -X GET "https://{site}/api/v1/seo/robots.txt"
```

### IndexNow key verification file content; external frontends rewrite `/<key>.txt` to this endpoint so Bing/Naver/Seznam/Yandex can verify ownership of the external storefront domain

`GET /seo/indexnow-key.txt`

- Stability: beta
- Authentication: none

```bash
curl -X GET "https://{site}/api/v1/seo/indexnow-key.txt"
```

### Schema.org JSON-LD @graph for a given page path

`GET /seo/jsonld`

- Stability: beta
- Authentication: none

**Parameters**

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `path` | query | string | no | Relative page path starting with / (e.g. /, /about, /blog, /blog/my-post) |
| `locale` | query | string | no | Locale of the structured data: inLanguage, page and post names and descriptions from that locale's published translations, and page URLs with the locale's URL prefix. Pass path in the primary locale's path space (strip the locale prefix). One of the site's locales from /site (a code such as `en-US` or the URL prefix such as `en`); omit it for the primary locale. Other values, including locales that are still translating, return 400 UNSUPPORTED_LOCALE. |

**Errors**

| Code | Status | When |
| --- | --- | --- |
| `INVALID_QUERY` | 400 | — |
| `PAGE_NOT_FOUND` | 404 | — |
| `UNSUPPORTED_LOCALE` | 400 | — |

```bash
curl -X GET "https://{site}/api/v1/seo/jsonld"
```
