EndpointNews
Manage Newsdesk articles, categories, and authors.
News Articles (Newsdesk)
| Operation | Method | Endpoint | Scope |
|---|
| Export | GET | /xpanel/xoport/export/json/newsdesk | news:read |
| Import | POST | /xpanel/xoport/import/json/newsdesk | news:write |
| Update | PUT | /xpanel/xoport/import/json/newsdesk | news:write |
| Delete | DELETE | /xpanel/xoport/delete/json/newsdesk | news:delete |
News Categories (newsdesk_categories)
| Operation | Method | Endpoint | Scope |
|---|
| Export | GET | /xpanel/xoport/export/json/newsdesk_categories | news:read |
| Import | POST | /xpanel/xoport/import/json/newsdesk_categories | news:write |
| Delete | DELETE | /xpanel/xoport/delete/json/newsdesk_categories | news:delete |
Authors (newsdesk_authors)
| Operation | Method | Endpoint | Scope |
|---|
| Export (all) | GET | /xpanel/xoport/export/json/newsdesk_authors | news:read |
| Export (single) | GET | /xpanel/xoport/export/json/newsdesk_author/{id} | news:read |
Routes
| Route | Result |
|---|
/export/json/newsdesks | All Articles |
/export/json/newsdesk/{id} | Exactly one article |
/export/json/newsdesks/{id} | All articles starting with this ID |
Query parameters
| Parameter | Type | Description |
|---|
limit | int | Maximum number of records |
offset | int | Start position |
There is no server-side restriction on a news category—use the categories_ids field in the response for this.
Fields per article
| Field | Type | Description |
|---|
newsdesk_id | int | Article ID — required field for PUT requests |
newsdesk_status | int | 1 = published, 0 = inactive |
newsdesk_date_available | datetime | Published from (Y-m-d H:i:s) |
newsdesk_date_added | datetime | Creation date |
newsdesk_last_modified | datetime | Last Modified — Export Only |
newsdesk_sticky | int | 1 = pinned to the top |
sort_order | int | Sort order |
newsdesk_image | string | Article image (file name) |
newsdesk_author | string | Author as free text |
author_id | int | Author from the author management system (0 = none) |
categories_ids | int[] | News categories, e.g., [2, 5] — Multiple assignments allowed |
languages{} | object | Language block, key = language code (de, en …) |
Since v2.121.0: When creating (POST), the import adds every active language for which no separate block was submitted from the master language (the " de" block, or otherwise the first block submitted). If DeepL translation is set up, it will translate these languages during the next run.
Fields per Language (in the " languages" block)
| Field | Type | Description |
|---|
newsdesk_article_name | string | Title |
newsdesk_article_shorttext | html | Teaser / Short Text |
newsdesk_article_description | html | Article Text |
newsdesk_image_text | string | Image Caption / Alternative Text |
newsdesk_article_url | string | External link (optional) |
newsdesk_article_url_name | string | Label for the external link |
seo_name | string | URL slug — generated from the title if empty |
title_tag | string | Meta Title |
desc_tag | string | Meta description |
keywords_tag | string | Meta Keywords |
newsdesk_article_viewed | int | View Count — Export Only |
curl -X POST "https://shop.de/xpanel/xoport/import/json/newsdesk" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"type": "newsdesk",
"data": [{
"newsdesk_status": 1,
"newsdesk_sticky": 0,
"sort_order": 0,
"newsdesk_date_available": "2026-08-12 08:00:00",
"author_id": 0,
"categories_ids": [2],
"languages": {
"de": {
"newsdesk_article_name": "Neue Produktlinie",
"newsdesk_article_shorttext": "Kurz angerissen …
",
"newsdesk_article_description": "Wir erweitern …
",
"title_tag": "Neue Produktlinie | Shop",
"desc_tag": "Wir erweitern unser Sortiment."
},
"en": {
"newsdesk_article_name": "New product line"
}
}
}]
}'
To update, send the same structure via PUT and include the newsdesk_id. Only the fields that are sent will be updated—fields not sent remain unchanged.
categories_ids is a full replacement: If the field is sent, all of the article’s previous category assignments are replaced. If it is omitted, they remain unchanged.- The category assignment is called
categories_ids (array). A newsdesk_categories_id is ignored as an unknown field—the article would be created without a category. - If
`seo_name` is missing, the slug is automatically generated from ` newsdesk_article_name ` (using `strip_seo()`). - If
`seo_name` changes during an update, the import automatically sets up a 301 redirect from the old URL (SEO history). - After the import, the news cache is cleared, and the DeepL translations of the modified articles are marked for re-translation.
- Export-only fields (ignored during import):
newsdesk_last_modified, newsdesk_article_viewed.