sitemaps/ endpoint provides an interface for managing XML sitemaps in your shop system. Via the API, new sitemaps can be created, existing ones edited or deleted, and both manual and scheduled generations can be performed. In addition, the interface lets you query status information about past or running generation processes.
Sitemaps can be generated individually for certain subshops and based on freely definable templates. The REST API provides precise control via parameters such as maximum file size or maximum number of URLs per file — so the delivery of the sitemaps can be optimized for your needs.
Using this API requires the corresponding permissions for reading, writing or generating sitemaps.
Supported methods
List of all supported methods.| Command/Info | Endpoints | GET | POST | PUT | DELETE |
|---|---|---|---|---|---|
| Sitemaps | sitemaps/ | ||||
| Sitemap templates | sitemaps/templates | ||||
| Protocols | sitemaps/protocols | ||||
| Generation | sitemaps/generate |
Data fields
Data fields of sitemaps
Sitemaps define which URLs of a shop are to be exported and in which form. Each sitemap is based on a sitemap template and contains additional parameters such as file size, number of entries or subshop assignment. Sitemaps can be created for different subshops and can be exported automatically at defined times. The generated files are stored by default in the directory/sitemaps/<subshopId>. They are publicly accessible and can be retrieved, for example, via a URL like www.your-shop-domain.de/sitemap.xml.
| Name | Type | Usage |
|---|---|---|
| id | Integer | Unique ID of the sitemap. |
| active | Boolean | Indicates whether the sitemap is active for export. |
| name | String | Name of the sitemap. |
| fileName | String | Name of the file that is generated. |
| subshopIds | Array | List of subshop IDs for the sitemap. If empty, the sitemaps are exported for all subshops. |
| templateId | Integer | Unique ID of the used sitemap template. |
| maxFileSize | Integer | Maximum file size of a sitemap file. |
| maxFileEntries | Integer | Maximum number of URLs in a sitemap file. |
| options | Object | Additional settings (currently only exportCharset). |
| writeIntoRobots | Boolean | Indicates whether an entry should be written into the robots.txt file. |
| exportAfterImport | Boolean | Indicates whether the sitemap should be exported after the import of product data. |
| exportPlan | Array | Array of integers (hours) at which sitemaps are exported. |
| exportStatus | Integer | Status of the export process (e.g. finished, starting, failed). Possible values: 0 = Idle1 = Finished2 = Error3 = Starting4 = Running |
| protocolId | Integer | Unique ID of the protocol. |
| lastExportStarted | String | Time of the last export start. |
| lastExportFinished | String | Time of the last successful export. |
| createdAt | String | Time of creation (ISO 8601 format, UTC). |
| updatedAt | String | Time of the last update (ISO 8601 format, UTC). |
Example
Notes about splitting sitemaps
In order to optimize the loading time of search engines and to comply with technical specifications, the generation of sitemaps can be split automatically across multiple files. This happens when one of the following limits is exceeded:- Maximum number of URLs per file: by default 50,000 URLs.
- Maximum file size per file: by default 50 MB.
maxFileEntries and maxFileSize fields. If one of these limits is exceeded, the system automatically creates a new sitemap file with a sequential counter in the file name.
Data fields of sitemap templates
Sitemap templates describe the structure and content of a sitemap. They specify which resources (e.g. products, categories or content) are exported and which fields are included — such asloc, lastmod, priority or changefreq.
Every sitemap must be based on a template. Changes to a template affect all sitemaps built on it. This way different export configurations can be reused efficiently and managed centrally.
| Name | Type | Usage |
|---|---|---|
| id | Integer | Unique ID of the sitemap template. |
| name | String | Name of the sitemap template. |
| content | String | The content of the template. The template language may be used here. |
| createdAt | String | Time of creation. |
| updatedAt | String | Time of the last update. |
Example
Methods for sitemaps
Through the following endpoints existing sitemaps in the system can be retrieved, edited, created or deleted. In addition, status information about the last export and associated protocols can be queried. To use these endpoints, the corresponding permissions to access sitemap data must be available.GET sitemaps
This method lets you retrieve a list of all sitemaps existing in the system. The response contains the corresponding settings for each sitemap as well as — if already performed — information about generated files. The data can be filtered or sorted by various criteria, e.g. by subshop, export status or file name. To use this endpoint, the corresponding permissions to read sitemaps must be available.Example
Response
Filter fields
id, active, name, fileName, templateId, subshopIds, maxFileSize, maxFileEntries, exportAfterImport, exportStatus, lastExportStarted, lastExportFinished, createdAt, updatedAt
Sort fields
id, active, name, fileName, templateId, subshopIds, maxFileSize, maxFileEntries, exportAfterImport, exportStatus, lastExportStarted, lastExportFinished, createdAt, updatedAt
Error codes
| Error | Type | Reason |
|---|---|---|
| 401 Unauthorized | Not authorized: you are not logged in or you do not have the required permissions to read sitemaps. | |
| 400 Bad Request | ”invalidValue” | |
| 400 Bad Request | ”invalidCharacters” | size is not an integer.A filter value is invalid. |
| 400 Bad Request | ”unknownDataField” | A filter or sort field is invalid. |
| 400 Bad Request | ”unknownOperation” | A filter type is invalid. |
| 400 Bad Request | ”syntaxError” | sort contains more than one or no ”:”. |
GET sitemaps/{id}
This method can be used to retrieve a single sitemap entry by its ID. The response contains all configuration data of the sitemap, including subshop assignment, export status and generation settings. To use this endpoint, the corresponding permissions to read sitemaps must be available.Example
Response
Error codes
| Error | Type | Reason |
|---|---|---|
| 401 Unauthorized | Not authorized: you are not logged in or you do not have the required permissions to read sitemaps. | |
| 400 Bad Request | ”invalidValue” | id is invalid. |
| 404 Not Found | Sitemap with id={id} was not found. |
GET sitemaps/{id}/status
This method can be used to query the current export status of a specific sitemap. It returns the respective status per subshop, e.g. whether an export was completed successfully or failed. Although the endpoint currently does not track real processes, it provides structured status data. To use this endpoint, the corresponding permissions to read sitemaps must be available.Example
Response
Error codes
| Error | Type | Reason |
|---|---|---|
| 401 Unauthorized | Not authorized: you are not logged in or you do not have the required permissions to read sitemaps. | |
| 400 Bad Request | ”invalidValue” | id is invalid. |
| 404 Not Found | The sitemap was not found. |
GET sitemaps/protocols
This method can be used to retrieve a list of all protocol entries for sitemaps. The protocols contain meta information about past export operations — such as when a sitemap was exported, which subshop was affected and which status the export had. To use this endpoint, the corresponding permissions to read sitemaps must be available.Example
Response
Filter fields
id, sitemap, template, subshopIds, exportStatus, lastExportStarted, lastExportFinished, createdAt, updatedAt
Sort fields
id, sitemap, template, exportStatus, lastExportStarted, lastExportFinished, createdAt, updatedAt
Error codes
| Error | Type | Reason | ||
|---|---|---|---|---|
| 401 Unauthorized | You are not an administrator and do not have permission to read sitemaps. | |||
| 400 Bad Request | ”invalidValue” | size ∉ [1;300] | pageToken is not a number or is less than 0. | |
| 400 Bad Request | ”invalidCharacters” | size is not an integer. Filter value is invalid. | ||
| 400 Bad Request | ”unknownDataField” | A filter or sort field is invalid. | ||
| 400 Bad Request | ”unknownOperation” | A filter type is invalid. | ||
| 400 Bad Request | ”syntaxError” | sort contains more than one or no ”:”. |
POST sitemaps
This method lets you create a new sitemap entry with all relevant parameters such as file name, template assignment, export times and affected subshops. To use this method, the corresponding permissions to create sitemap data must be available.Example
Request body
Response
Error codes
| Error | Type | Reason |
|---|---|---|
| 401 Unauthorized | Not authorized: you are not logged in or you do not have the required permissions to create sitemaps. | |
| 400 Bad Request | Request body could not be loaded. | |
| 400 Bad Request | ”invalidValue” | templateId is invalid. |
| 400 Bad Request | ”invalidFormat” | name or fileName is not a string.active, exportAfterImport or writeIntoRobots is not a boolean.templateId, maxFileEntries or maxFileSize is not an integer.exportPlan is not an array of integers.subshopIds is not an array.options is not an object.options.exportCharset exists and is not a string. |
| 400 Bad Request | ”missing” | name, active, fileName, templateId, exportAfterImport, exportPlan, maxFileEntries, maxFileSize, writeIntoRobots or subshopIds are missing. |
| 400 Bad Request | ”unknownDataField” | An unknown field was provided in the request body. |
| 400 Bad Request | ”duplicateEntry” | The new file name has already been used. |
PUT sitemaps/{id}
This method lets you update an existing sitemap by its unique ID. You can change both technical parameters (e.g. file name, template assignment, export options) and organizational settings (e.g. affected subshops, schedules). To use this method, the corresponding permissions to write sitemap data must be available.Example
Request body
Response
Error codes
| Error | Type | Reason |
|---|---|---|
| 401 Unauthorized | Not authorized: you are not logged in or you do not have the required permissions to edit sitemaps. | |
| 400 Bad Request | Request body could not be loaded. | |
| 400 Bad Request | ”invalidValue” | id is invalid. templateId is invalid. |
| 400 Bad Request | ”invalidFormat” | name or fileName is not a string. active, exportAfterImport or writeIntoRobots is not a boolean. templateId, maxFileEntries or maxFileSize is not an integer. exportPlan is not an array of integers. subshopIds is not an array. options is not an object. options.exportCharset exists and is not a string. |
| 400 Bad Request | ”unknownDataField” | An unknown field was provided in the request body. |
| 400 Bad Request | ”duplicateEntry” | The new file name has already been used. |
| 404 Not Found | Sitemap with id={id} was not found. |
DELETE sitemaps/{id}
This method permanently deletes an existing sitemap from the system by its ID. To use this endpoint, the corresponding permissions to delete sitemap data must be available.Example
Response
Error codes
| Error | Type | Reason |
|---|---|---|
| 401 Unauthorized | Not authorized: you are not logged in or you do not have the required permissions to delete sitemaps. | |
| 400 Bad Request | ”invalidValue” | id is invalid. |
| 404 Not Found | Sitemap with id={id} was not found. |
Methods for templates
The following endpoints let you manage sitemap templates, on the basis of which individual sitemaps are generated. A template defines the content structure of a sitemap and typically contains a loop that iterates through relevant shop data. Through the API, templates can be retrieved, created, updated and deleted. To use these functions, the corresponding permissions to read and write sitemaps must be available.GET sitemaps/templates
This endpoint can be used to retrieve a list of all sitemap templates available in the system. These templates define the structure and content of the sitemaps to be exported later and serve as the basis for generating the XML files. To use the endpoint, the corresponding permissions to read sitemap data must be available.Example
Response
Filter fields
id, name, content, createdAt, updatedAt
Sort fields
id, name, content, createdAt, updatedAt
Error codes
| Error | Type | Reason |
|---|---|---|
| 401 Unauthorized | Not authorized: you are not logged in or you do not have the required permissions to read sitemaps. | |
| 400 Bad Request | ”invalidValue” | |
| 400 Bad Request | ”invalidCharacters” | size is not an integer.A filter value is invalid. |
| 400 Bad Request | ”unknownDataField” | A filter or sort field is invalid. |
| 400 Bad Request | ”unknownOperation” | A filter type is invalid. |
| 400 Bad Request | ”syntaxError” | sort contains more than one or no ”:”. |
GET sitemaps/templates/{id}
This endpoint can be used to load a single sitemap template by its ID. The response contains all relevant information about the template, such as name, content and timestamps of the last changes. To access this endpoint, the corresponding permissions to read sitemaps are required.Example
Response
Error codes
| Error | Type | Reason |
|---|---|---|
| 401 Unauthorized | Not authorized: you are not logged in or you do not have the required permissions to read sitemaps. | |
| 400 Bad Request | ”invalidValue” | id is invalid. |
| 404 Not Found | Sitemap template with id={id} was not found. |
POST sitemaps/templates
This endpoint can be used to create a new sitemap template. The template contains both the name and the template script with which the contents of the sitemap are generated. To create new templates, the corresponding permissions to create sitemaps are required.Example
Request body
Response
Error codes
| Error | Type | Reason |
|---|---|---|
| 401 Unauthorized | Not authorized: you are not logged in or you do not have the required permissions to create sitemaps. | |
| 400 Bad Request | Request body could not be loaded. | |
| 400 Bad Request | ”invalidFormat” | name or content is not a string. |
| 400 Bad Request | ”invalidValue” | content is empty. |
| 400 Bad Request | ”missing” | name or content is missing. |
| 400 Bad Request | ”unknownDataField” | An unknown field was provided in the request body. |
| 503 Service Unavailable | ”internalError” | Creating the template failed. |
PUT sitemaps/templates/{id}
This endpoint lets you update an existing sitemap template. You can change both the name and the content of the template. Changes to templates affect the sitemaps based on them as soon as those are regenerated. To use this endpoint, the corresponding permissions to edit sitemaps are required.Example
Request body
Response
Error codes
| Error | Type | Reason |
|---|---|---|
| 401 Unauthorized | Not authorized: you are not logged in or you do not have the required permissions to edit sitemaps. | |
| 400 Bad Request | Request body could not be loaded. | |
| 400 Bad Request | ”invalidValue” | id is invalid. content is empty. |
| 400 Bad Request | ”invalidFormat” | name or content is not a string. |
| 400 Bad Request | ”unknownDataField” | An unknown field was provided in the request body. |
| 404 Not Found | The template was not found, or the update failed. |
DELETE sitemaps/templates/{id}
This endpoint lets you delete an existing sitemap template by its ID. Deletion is only possible if the corresponding template exists. For this action, permissions to delete sitemaps must be available.Example
Response
Error codes
| Error | Type | Reason |
|---|---|---|
| 401 Unauthorized | Not authorized: you are not logged in or you do not have the required permissions to delete sitemaps. | |
| 400 Bad Request | ”invalidValue” | id is invalid. |
| 409 Conflict | The template is still used by a sitemap and cannot be deleted. | |
| 404 Not Found | Template with id={id} was not found. |
Methods for generation
These methods let you control sitemap generation in a targeted way. Depending on the use case, you can generate individual sitemaps directly, trigger scheduled generations, or regenerate sitemaps after importing product data. Execution always requires the corresponding permissions to publish sitemaps.POST sitemaps/generate/hour/{hour}
This method starts the generation of sitemaps that must be generated at a specific hour. The path parameter{hour} specifies the hour in 24-hour format (0 to 23).
The generation is performed asynchronously, which means the response does not contain immediate results.
To use this endpoint, the corresponding permissions to publish sitemaps are required.
Example
Response
Error codes
| Error | Type | Reason |
|---|---|---|
| 401 Unauthorized | Not authorized: you are not logged in or you do not have the required permissions to publish sitemaps. | |
| 404 Not Found | The hour parameter is missing or invalid. | |
| 503 Service Unavailable | ”serviceUnavailable” | FeedBuilderUrl does not exist, or the generation failed. |
POST sitemaps/generate/import
This endpoint generates all sitemaps that are scheduled for export after a successful product data import. Execution is asynchronous and the response does not contain any result content. To use this endpoint, the corresponding permissions to publish sitemaps must be available.Example
Response
Error codes
| Error | Type | Reason |
|---|---|---|
| 401 Unauthorized | Not authorized: you are not logged in or you do not have the required permissions to publish sitemaps. | |
| 503 Service Unavailable | ”serviceUnavailable” | FeedBuilderUrl does not exist, or the generation failed. |
POST sitemaps/{id}/generate
This endpoint starts the generation of a specific sitemap, referenced by its ID. The generation is asynchronous — that is, the response does not return a finished file but only confirms the start of the process. To use the endpoint, the corresponding permissions to publish sitemaps are required. Optionally, the generation can be restricted to specific subshops via thesubshopId query parameter. The parameter can be specified multiple times to select multiple subshops.
Example
Response
Error codes
| Error | Type | Reason |
|---|---|---|
| 401 Unauthorized | Not authorized: you are not logged in or you do not have the required permissions to publish sitemaps. | |
| 400 Bad Request | ”invalidValue” | id is invalid. |
| 404 Not Found | Sitemap with id={id} was not found. | |
| 409 Conflict | Sitemap is inactive or the generation process has already been started. | |
| 503 Service Unavailable | ”serviceUnavailable” | FeedBuilderUrl does not exist, or the generation failed. |
